- Deadlock adalah sebuah proses yang memerlukan satu sumber daya atau lebih mengalami penundaan ataupun menunggu sumber daya digunakan oleh proses yang lain.
- Sumber daya bersifat :
- Preemptible : dapat mengambil dari proses lain tanpa ada efek lain
- Non-preemptible : tidak boleh mengambil sumber daya yang masih digunakan oleh proses lain
- Apabila peristiwa deadlock terjadi dalam kurung waktu yang lama maka akan terjadi “starvation”
-
Sebuah
proses melakukan tiga hal yang dilakukan ketika menggunakan sumber daya :
- Meminta (Request) : sebuah proses mengajukan permohonan kepada sumber daya untuk menggunakan jasa sumber daya sebagai alat transportasi.
- Menggunakan (Use) : proses menggunakan jasa sumber daya sebagai alat transportasi.
- Melepas (Release) : proses melepas sumber daya sebagai jasa pengantar.
- Metode penanganan deadlock:
- Deadlock Prevention: Pencegahan adanya faktor-faktor penyebab deadlock.
- Deadlock Avoidance: Menghindari dari situasi yang potensial dapat mengarah menjadi deadlock.
- Deadlock Detection: Jika deadlock ternyata tidak terhindari maka bagaimana mendeteksi terjadinya deadlock, dilanjutkan dengan penyelamatan (recovery).
- Syarat dan Penyebab Deadlock
- Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama.
- Hold and Wait : Situasi dimana suatu proses sedang hold suatu resource secara eksklusif dan ia menunggu mendapatkan resource lain (wait)..
- Circular Waiting : Situasi dimana terjadi saling menunggu antara beberapa proses sehingga membentuk waiting chain (circular).
- No Preemption : Proses tidak dapat dipaksa (pre-empt) untuk melepaskan resource yang sedang di hold.
-
State Safe and State Unsafe
- State safe adalah cara mengatur kebutuhan sebuah proses menurut sumber daya yang paling dibutuhkan oleh proses tersebut sehingga sumber daya tersebut dapat dilepaskan oleh proses.
- State unsafe adalah terjadinya kesalahan dalam pengaturan pengambilan sumber daya oleh proses sehingga sebuah proses mengalami hold and wait, non-preemption.