download

T0452 / 07 - 01
DEADLOCK
Situasi Deadlock terjadi, jika:
• Proses diberi akses eksklusif ke device.
• Device ini juga disebut resource/ sumber daya.
• Contoh: dua proses hendak merekam dokumen yang di
scan kedalam sebuah CD
Resources
• Preemptable.
• Non Preemptable
T0452 / 07 - 02
Urutan langkah untuk menggunakan resource:
• Request resource
• Use resource
• Release resource
Perolehan Resource
• Menggunakan semaphore untuk setiap resource
Syarat Kondisi Deadlock :
• Kondisi mutual exclusion
• Kondisi hold and wait
• Kondisi No Preemption
• Kondisi circular wait
Pemodelan Deadlock
• Model Holt ( 1972 )
T0452 / 07 - 03
(a). Proses A menggunakan resource R.
(b). Proses B meminta/menunggu resource S
(c). Deadlock, proses C dan D meminta resource T dan U
Strategi untuk menghadapi Deadlock :
1. Ignore( abaikan )
2. Detection and Recovery
3. Dynamic avoidance, dengan cara mengalokasikan
resource
secara berhati – hati
4. Prevention, dengan cara menghilangkan salah satu kondisi
Deadlock
T0452 / 07 - 04
T0452 / 07 - 05
Algoritma Ostrich
• “Stick your head in the sand and pretend there is no
problem at all” (menganggap tidak ada masalah).
• Layak, jika:
• Deadlock jarang terjadi
• Biaya pencegahan (prevention) sangat mahal.
•Deteksi Deadlock dan Pemulihan
(Deadlock Detection and Recovery)
•Deteksi deadlock dengan satu resource untuk setiap jenis
T0452 / 07 - 06
• Contoh: sebuah sistem dengan 7 proses (A – G) dan 6
resource (R – W), dengan status pemilikan dan permintaan
resource sbb:
• A holds R, wants S
• B holds nothing, wants T
• C holds nothing, wants S
• D holds U, wants S and T
• E holds T, wants S and T
• F holds W, wants S
• G holds V, wants U
T0452 / 07 - 07
Tanda panah akan diberi tanda untuk mengetahui sudah
dilewati dan menggunakan struktur data, L, daftar simpul:
• Untuk setiap simpul / node, N dalam graph, kerjakan 5
langkah berikut dengan N sebagai simpul awal.
• Inisialisasi L menjadi daftar kosong, dan semua tanda panah
belum di-tandai.
• Tambahkan simpul yang dikunjungi ke daftar L dan periksa
apakah simpul muncul dua kali dalam daftar L. Jika ya,
maka dalam graph terdapat siklus dan algoritma selesai.
• Dari simpul yang sudah anda tentukan, ikuti jika ada tanda
panah keluar yang belum di-tandai. Jika ada, kerjakan
langkah 5; jika tidak kerjakan langkah 6.
• Pilih sebuah tanda panah keluar secara acak dan beri tanda.
Kemudian ikuti ke simpul berikutnya dan kerjakan langkah 3.
• Kita sampai ke jalan buntu. Kembali ke simpul sebelumnya
dan kerjakan langkah 3. Jika simpul ini adalah simpul awal
maka graph tidak terdapat siklus dan algoritma selesai.
T0452 / 07 - 08
• Deteksi deadlock dengan banyak resource untuk setiap jenis
• Existing resource vector
• Available resource vector
• Current allocation matrix
• Request matrix
Empat struktur data yang diperlukan untuk algoritma
deteksi deadlock
T0452 / 07 - 09
Algoritma deteksi deadlock sbb:
• Cari proses Pi yang belum di-tandai, dimana baris ke-i
mempunyai R ≤ A.
• Jika proses yang dicari ditemukan, tambahkan C dari baris
ke-i ke A, tandai proses dan kembali ke langkah 1.
• Jika proses yang dicari tidak ada, algoritma selesai.
Contoh:
T0452 / 07 - 010
• Pemulihan dari Deadlock
Jika deadlock terjadi, apa yang harus dilakukan agar
sistem bekerja kembali?
•
•
•
Pemulihan melalui preemption
Pemulihan melalui rollback
Pemulihan melalui killing process