Menghindari Deadlock Sebuah keputusan yang dibuat secara dinamis apakah alokasi sumber daya sekarang akan ada permintaan, jika diberikan, berpotensi menjadi deadlock Memerlukan pemahaman proses permintaan yang akan terjadi
Dua pendekatan untuk menghindari Deadlock Jangan memulai suatu proses jika akan menimbulkan terjadinya deadlock Jangan memberikan secara incremental permintaan sumberdaya untuk sebuah proses, jika lokasi yang diberikan menimbulkan deadlock
Penolakan (denial) terhadap Alokasi Sumberdaya Dikenal dengan algoritma banker Status sistem alokasi lansung sumberdaya untuk pemrosesan Status safe dimana ada sedikitnya satu urutan yang tidak mengakibatkan deadlock Status unsafe merupakan status yang tidak aman (not safe)
Penentuan Status Aman Status Awal
Penentuan Status Aman kerja P2 untuk Penyelesaian
Penentuan Status Aman kerja P1 untuk Penyelesaian
Penentuan Status Aman kerja P3 untuk Penyelesaian
Determination of an Unsafe State
Penentuan Status Tidak Aman
Menghindari Deadlock Kebutuhan sumberdaya maksimum harus dinyatakan dari awal Proses – proses didalam pertimbangan harus bebas (independent); tidak membutuhkan sinkronisasi Harus ada sejumlah sumber daya yang ditentukan untuk alokasi Tidak boleh proses keluar sambil membawa sumberdaya
Deadlock Detection
Strategi mendeteksi Deadlock Mengabaikan seluruh proses yang di-deadlock Mem-backup masing-masing proses yang telah di-deadlock untuk beberapa tempat pemeriksaan, dan me-restart seluruh proses deadlock yang original bolehterjadi Berturut-turut mengabaikan proses-proses yang deadlock sampai deadlock tidak ada Berturut-turut mem-preempt sumber daya sampai deadlock tidak ada
Kriteria Seleksi Proses yang Deadlock Paling sedikit waktu yang dibutuhkan prosesor Paling sedikit bentuk keluaran yang dihasilkan (diproduk) Estimasi waktu sisa yang paling sedikit Lpaling sedikit jumlah total sumberdaya yang dialokasikan Prioritas terendah
Dining Philosophers Problem
Mekanisme Konkurensi UNIX Pipes Messages Shared memory Semaphores Signals
Sinkronisasi yang primitif dari Thread Solaris Mutual exclusion (mutex) locks Semaphores Multiple readers, single writer (readers/writer) locks Condition variables
Mekanisme Konkurensi Windows 2000 Process Thread File Console input File change notification Mutex Semaphore Event Waitable timer