DEADLOCK
Deadlock atau tabrakan data terjadi karena sekumpulan proses-proses yang di-blok dimana setiap proses membawa sebuah sumber daya dan menunggu mendapatkan sumber daya yang dibawa oleh proses lain.
Misalnya sistem mempunyai 2 resource dan terdapat dua proses P1 dan P2 yang masing masing membawa satu resource dan masing-masing memerlukan resource yang dibawa proses lain sehingga terjadi keadaan saling menunggu resource dan sistem di-blok.
Setiap proses yang menggunakan sumber daya menjalankan urutan operasi sebagai berikut :
- meminta (request) : meminta sumber daya
- memakai (use) : memakai sumber daya
- melepaskan (release) : melepaskan sumber daya
- Deadlock terjadi bila terdapat empat kondisi berikut ini secara simultan.
- Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan sumber daya.
- Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya satu sumber daya menunggu mendapatkan tambahan sumber daya baru yang dibawa oleh proses
- Non-Preemption : sebuah sumber daya dapat dibebaskan dengan sukarela oleh proses yang memegangnya setelah proses menyelesaikan task.
- Menunggu Secara Sirkuler (Circular Wait) : Terdapat sekumpulan yang menunggu sumber daya dimana P0 menunggu sumber daya yang dibawa P1, P1 menunggu sumber daya yang dibawa P2, dan seterusnya,
- CARA MENGHINDARI DEADLOCK
- Save state & Unsave state
- Contoh save & unsave state
PROSES KEBUTUHAN MAX KEBUTUHAN SEKARANG
P1 10 5
P2 4 2
P3 9 2
2. Algoritma Resource Allocation Graph
Deadlock dapat digambarkan lebih presisi dengan menggunakan graph berarah yang disebut resource allocation graph.
Garis berarah dari proses Pi ke tipe sumber daya Rj dinotasikan dengan Pi → Rj artinya proses Pi meminta satu anggota dari tipe sumber daya Rj dan sedang menunggu sumber daya tersebut.
Garis berarah dari tipe sumber daya Rj ke proses Pi dinotasikan dengan Rj → Pi artinya satu anggota tipe sumber daya Rj dialokasikan ke proses Pi.
Notasi-notasi yang digunakan pada resource allocation graph adalah :
- Contoh resource allocation graph
- Himpunan P, R dan E :
R = {R1, R2, R3}
E = {P1 → R1, P2 → R3, R1 → P2, R2 → P2, R2 → P1, R3 → P3}
- Anggota sumber daya :
Dua anggota dari tipe sumber daya R2.
Satu anggota dari tipe sumber daya R3.
- Status proses :
anggota tipe sumber daya R1.
Proses P2 membawa satu anggota R1 dan R2 dan menunggu satu anggota tipe sumber daya R3.
Proses P3 membawa satu anggota R3.
3. Algoritma Banker
Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum dieksekusi harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika suatu proses meminta sumber daya kemungkinan proses harus menunggu. Jika suatu proses mendapatkan semua sumber daya maka proses harus mengembalikan semua sumber daya dalam jangka waktu tertentu.
Diketahui sistem terdapat 5 proses yaitu P0 sampai P4, 3 tipe sumber daya yaitu A (10 anggota), B (5 anggota) dan C (7 anggota). Perhatikan gambaran sistem pada waktu T0.
EmoticonEmoticon