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
© Copyright 2024 Paperzz