“Sekumpulan Proses dinyatakan terjadi Deadlock bila setiap proses dari kumpulan tersebut menunggu suatu kejadian yang bisa dihasilkan oleh suatu proses yang lain dari kumpulan itu juga”
•Hold and Wait Condition “Proses yang sebelumnya telah menahan satu sumber daya bisa meminta sumber daya yang lain”
•No Preemption Condition “Sumber daya yang telah di pegang oleh suatu proses tidak bisa di ambil alih, sumber daya tersebut harus dilepaskan oleh proses yang menahannya”
•Circular Wait Condition “harus terjadi rantai melingkar (circular chain) dari dua atau lebih proses, yang setiap proses menunggu sumber daya yang di tahan oleh proses yang lain yang terdapat dalam circular chains tersebut”
Kondisi Terjadinya DeadLock
•Mutual Exclusion Condition “satu sumberdaya digunakan oleh tepat satu proses”•Hold and Wait Condition “Proses yang sebelumnya telah menahan satu sumber daya bisa meminta sumber daya yang lain”
•No Preemption Condition “Sumber daya yang telah di pegang oleh suatu proses tidak bisa di ambil alih, sumber daya tersebut harus dilepaskan oleh proses yang menahannya”
•Circular Wait Condition “harus terjadi rantai melingkar (circular chain) dari dua atau lebih proses, yang setiap proses menunggu sumber daya yang di tahan oleh proses yang lain yang terdapat dalam circular chains tersebut”
Deadlock Modeling
•Holt
(1972) “menampilkan bagaimana 4 kondisi
deadlock bisa dijelaskan dalam suatu
graph”
(b)Meminta Resource
(c)Deadlock
Strategi Bila Terjadi Deadlock
(a)Tidak
Memperdulikan
Semua Masalah, “mungkin
bila
kita
tidak
memperdulikan
masalah
pun akan
tidak
memperdulikan
anda”
(b)Detection
and Recocery, “membiarkan
deadlock terjadi,
mendeteksinya,
kemudian
melakukan
aksi”
(c)Dynamic
Avoidance “dengan
hati-hati
melakukan
alokasi
sumberdaya”
(d)Prevention “dengan
melakukan
penghindaran
tersetruktur
dari
4 kondisi
yang dapat
menjadikan
deadlock”
The Ostrich Algorithm
Algoritma yang paling sederhana ;
The Ostrich Algorithm :
“Stick your head in the sand and
pretend there is no problem at all”
Deadlock Detection and Recovery
Contoh
:
a)Process
A holds R and wants S.
b)Process
B holds nothing but wants T.
c)Process
C holds nothing but wants S.
d)Process
D holds U and wants S and T.
e)Process
E holds T and wants V.
f)Process
F holds W and wants S.
g)Process
G holds V and wants U.
Recovery from Deadlock
a.
Recovery melalui preemption
“kemampuan
dalam
melepaskan
resource dari
suatu
proses
dan
kemudian
mengembalikan
lagi
resource tersebut
tanpa
proses
tersebut
mengetahuinya”
b.
Recovery melalui rollback
“Memiliki
proses
checkpoint secara
berkala,
sehingga
ketika
deadlock terjadi
bisa
di
rollback ke
checkpoint tertentu”
c.
Recovery melalui Killing Process
“Cara paling kasar
dan
paling mudah,
dengan
membunuh
satu
atau
lebih
proses
yang terdapat
dalam
lingkaran
deadlock”
Deadlock Prevention
a.
Attacking Multual Exclusion
“spool
everything”
b.
Attacking the Hold and Wait Condition
“Request
all Resources initially”
c.
Attacking the No Preemption Condition
“Take
Resource away”
d.
Attacking the circular wait condition
“order
resaource
numerically”
Semoga bermanfaat dan berbagilah :)