Deadlock sering dianalogikan dengan keadaan jalan raya yang mogok(macet) ataupun jalan buntu.
Masalah deadlock terjadi karena penggunaan sumberdaya (resources) yang digunakan secara bersama-sama.
Penyebab terjadinya deadlock adalah :
a. mutual exclusion, yaitu suatu keadaan dimana hanya ada satu proses saja yang boleh memakai resource, proses yang lain harus menunggu sampai proses tadi benar-benar selesai. contoh mutual exclusion adalah “buffering” ketika kita menonton video.
b. Hold and Wait,yaitu keadaan dimana suatu proses ‘kelaparan’ sumberdaya. Suatu proses menunggu suatu sumberdaya dalam waktu yang lama hingga sumberdaya tersebut tidak terpakai oleh proses lainnya.
c. No Pre-emption, yaitu keadaan dimana suatu sumberdaya tidak boleh diambil(dipakai) begitu saja/secara paksa oleh proses yang lainnya sehingga suatu proses harus menunggu hingga proses yang sedang memakai sumberdaya benar-benar telah selesai.
d. circular wait, yaitu suatu keadaan dimana proses yang lain membutuhkan sumberdaya yang sedang dipakai oleh suatu proses sehingga timbul antrian melingkar (waiting chain) seperti halnya rantai.
Keempat penyebab timbulnya deadlock hampir sama yaitu penggunaan sumber daya dan waktu tunggu oleh suatu proses atau lebih.
a. mutual exclusion, yaitu suatu keadaan dimana hanya ada satu proses saja yang boleh memakai resource, proses yang lain harus menunggu sampai proses tadi benar-benar selesai. contoh mutual exclusion adalah “buffering” ketika kita menonton video.
b. Hold and Wait,yaitu keadaan dimana suatu proses ‘kelaparan’ sumberdaya. Suatu proses menunggu suatu sumberdaya dalam waktu yang lama hingga sumberdaya tersebut tidak terpakai oleh proses lainnya.
c. No Pre-emption, yaitu keadaan dimana suatu sumberdaya tidak boleh diambil(dipakai) begitu saja/secara paksa oleh proses yang lainnya sehingga suatu proses harus menunggu hingga proses yang sedang memakai sumberdaya benar-benar telah selesai.
d. circular wait, yaitu suatu keadaan dimana proses yang lain membutuhkan sumberdaya yang sedang dipakai oleh suatu proses sehingga timbul antrian melingkar (waiting chain) seperti halnya rantai.
Keempat penyebab timbulnya deadlock hampir sama yaitu penggunaan sumber daya dan waktu tunggu oleh suatu proses atau lebih.
Berikut adalah beberapa cara untuk menangani deadlock :
1. Cara pencegahan (prevention), yaitu mencegah terjadinya deadlock. Dalam hal ini, penyebab deadlock harus diketahui sebelumnya kemudian memastikan bahwa slah satu keadaan yang penting tidak akan meninmbulkan deadlock.
2. Cara penolakan/menghindari (avoidance), yaitu melakukan pendataan terhadap proses-proses yang kira-kira akan menghabiskan sumberdaya.
3. Detection and Recovery, yaitu mendeteksi dan memperbaiki. Mendeteksi sistem apasaja yang terlibat jika terjadi deadlock, setelah mendeteksi, sistem diperbaiki.
4. Mengabaikan deadlock, yaitu membiarkan deadlock seolah tidak terjadi apa-apa dan membiarkan deadlock tersebut mematikan program. Hal ini merupakan algoritma Ostrich untuk menangani deadlock.
1. Cara pencegahan (prevention), yaitu mencegah terjadinya deadlock. Dalam hal ini, penyebab deadlock harus diketahui sebelumnya kemudian memastikan bahwa slah satu keadaan yang penting tidak akan meninmbulkan deadlock.
2. Cara penolakan/menghindari (avoidance), yaitu melakukan pendataan terhadap proses-proses yang kira-kira akan menghabiskan sumberdaya.
3. Detection and Recovery, yaitu mendeteksi dan memperbaiki. Mendeteksi sistem apasaja yang terlibat jika terjadi deadlock, setelah mendeteksi, sistem diperbaiki.
4. Mengabaikan deadlock, yaitu membiarkan deadlock seolah tidak terjadi apa-apa dan membiarkan deadlock tersebut mematikan program. Hal ini merupakan algoritma Ostrich untuk menangani deadlock.