Deadlock
Deadlock adalah suatu kondisi dimana semua proses ingin pakai resources dan tidak ada yang mengalah.
Kondisi dimana
sebelum terjadi suatu deadlock disebut deadlock possible.
Condition for Resource Deadlock
-
Mutual exclusion. Satu proses megang satu proses.
-
Hold and wait. Suatu proses akan menahan satu prose
sambil dia mengerjakan proses lain setelah itu baru di berikan ke proses
lain.Analogi seperti oper makanan atau minuman saat dibagikan secara berderet. Kita
akan ambil bagian kita dulu baru kita oper ke orang sebelah kita.
-
No preemption. Hanya bisa di interupsi ketika proses
lain dilepas. Ada satu proses sedang mengerjakan suatu resource dan ada proses
lain minta, namun tidak diijinkan.
-
Circular wait. Semua proses saling menunggu.
Deadlock Modeling
(a)suatu
proses holding suatu proses, (b)suatu proses merequest resource, (c)Deadlock
terjadi
Strategy for dealing with deadlock
1. Ignore the
problem (use Ostrich Algoritm)
2. Detection &
recovery. Deadlock occur, detect it, then take action.
3. Dynamic
avoidance
4. Deadlock Prevention
Deadlock Prevention
-
Untuk mencegah mutual exclusion, cara nya
adalah melakukan pembatasan hak akses. Ada file yang di deny writenya, jadi
hanya read only. Sehingga tidak menggangu fungsi atau proses write.
-
Kalau hold and wait pencegahannya adalah yang sudah
punya resource jangan ditampilin lagi. Istilahnya di blok.
-
No Preemption. Adanya task manager untuk interup suatu
proses sehingga proses di paksa berhenti.
"Deadlock not always death"
Tidak ada komentar:
Posting Komentar