Saturday, May 9, 2015

Deadlock

A. Pengertian Deadlock
     - dua atau lebih proses saling memperrebutkan satu resources
Permanent blocking adalah saling memblok dan sifatnya bisa permanent (sampai salah satu ada yang mengalah).

(a). kondisi sebelum terjadi deadlock
(b). kondisi setelah terjadi deadlock

B. Kondisi sumber terjadinya deadlock
1. Mutual exclusion : hanya ada satu proses yang bisa menggunkan resources
2. Hold and wait      : satu proses sedang holding / memegang paling sedikit satu resources sembari menunggu resources lain yang sedang dipegang oleh proses lain.
3. No preemption     : satu resources dapat di released hanya jika mendapatkan izin dari proses yang memegang resources tersebut , setelah proses tersebut menyelesaikan tugasnya.
4. Circular Wait       : sekumpulan proses yang saling menunggu satu sama lain , misal ada proses (P0, P1 , .. , P0) maka P0 menunggu resources yang dipegang oleh P1 , P1 menunggu resources yang dipegang oleh P2 , ... , Pn menunggu resources yang dipegang oleh P0.

C. Deadlock Modeling 
Resources allocation graph :
1. Holding a resources      : proses sedang menunggu resources
2. Requesting a resources : proses sedang merequest resources
3. Deadlock
D. Deadlock

Jika request datang seperti urutan diatas dan CPU memproses A, B dan C berurutan à tidak terjadi deadlock tetapi tidak ada paralelisme.

Contoh deadlock :
Jika proses diatas ditambah dengan proses (d) berikut maka akan menyebabkan deadlock
Strategi untuk mengatasi deadlock :
ada beberapa strategi untuk mengatasi deadlock :
1. Abaikan permasalahan (Ostrich Algorithm)
2. Deteksi dan recovery
3. Dynamic avoidance dengan pengalokasian resource dengan hati-hati.
4. Pencegahan

Safe and Unsafe State
Contoh : safe state

Contoh : unsafe state

Contoh : (a) Safe State
               (b) Safe State
                    (c) Unsafe State

E. Banker's Agorithm dengan multiple resources

F. Deadlock Prevention
Kesimpulan dari deadlock prevention
Link :

No comments:

Post a Comment