Deadlock
Kamis, 30 September 2010
, Posted by ronaldoccd at 19.15
Deadlock adalah suatu kondisi dimana sekumpulan proses tidak dapat berjalan kembali akibat kompetisi memperebutkan sumber daya. Sebuah proses berada dalam keadaan deadlock apabila semua proses berada dalam keadaan menunggu (di dalam waiting queue) peristiwa yang hanya bisa dilakukan oleh proses yang berada dalam waiting queue tersebut.
Algoritma Banker's ( Banker's algorithm ) digunakan sebagai salah satu cara untuk menangani deadlock. Algoritma Banker's itu sendiri adalah alokasi sumber daya & algoritma kebuntuan menghindari dikembangkan oleh Edsger Dijkstra bahwa tes untuk keselamatan dengan mensimulasikan alokasi yang telah ditentukan sebelumnya jumlah maksimum yang mungkin dari semua sumber daya, dan kemudian membuat "aman-negara" periksa untuk menguji kondisi kebuntuan mungkin untuk semua kegiatan tertunda lainnya, sebelum memutuskan apakah alokasi harus diizinkan untuk melanjutkan.
Algoritma ini dikembangkan dalam proses desain untuk sistem operasi dan awalnya ATAS dijelaskan (dalam bahasa Belanda) dalam EWD108 [1]. Nama ini oleh analogi dengan cara yang bankir menjelaskan kendala likuiditas. Secara umum Algoritma Banker's mempunyai struktur data yaitu tersedia, alokasi, maksimum, dan kebutuhan. Apabila pada sebuah sistem tidak tersedia pencegahan ataupun penghindaran deadlock, kemungkinan besar deadlock dapat terjadi. Pada keadaan seperti ini, sistem harus menyediakan algoritma pendeteksian deadlock algoritma pemulihan deadlock.
Penyebab terjadinya Deadlock :
- Proses Mutual Exclusion.
- Proses memegang dan menunggu.
- Proses Preemption.
- Proses menunggu dengan siklus deadlock tertentu.
- Mengabaikan masalah deadlock.
- Mendeteksi dan memperbaiki.
- Penghindaran yang terus menerus dan pengalokasian yang baik.
- Pencegahan yang secara struktur bertentangan dengan empat kondisi terjadinya deadlock.
Currently have 0 komentar: