Jumat, 08 Mei 2015

Deadlock



Deadlock merupakan suatu kondisi ketika terdapat proses-proses yang :
a.       Saling memperebutkan
b.      Saling menunggu
c.       Saling menghalangi



Kondisi Resource Deadlock
a.       Mutual exclusion: kondisi pada saat resource hanya dapat digunakan oleh resource
  1. Hold and wait:  kondisi pada saat proses tersebut sedang menggunakan resource, tapi proses tersebut juga sedang menggunakan resource
  2. No preemption:  kondisi pada saat tidak dapat meng-interrupt proses yang sedang menggunakan resource, ajdi harus menunggu samapai proses tersebut  melepas resourcenya
  3. Circular wait:  kondisi ketika proses saling menuggu resource yang lain, sehingga membentuk lingkaran
Solusi untuk mengatasi jenis-jenis deadlock        :
1.       Mutual exclusion
Dengan mmebuat perancangan atau key, yang memungkin dimana hanya ada satu yang dapat menulis, tapi bisa terdapat multiple access yang dapat mebaca
2.       Hold and wait
Setiap proses yang hendak meminta resource lain hendaknya melepas resource yang ia pakai terlebih dahulu, sebelum meminta resource lain
3.       No preemption
Jika terdapat suatu proses yang meminta resource dari proses lain, OS hendaknya me-preempt proses yang meminta resource, dan mengalihkannya untuk menggunakan resource yang lain
4.       Circular wait
Solusinya mirip dengan hold and wait, dimana hendaknya proses yang meminta resource harus melepaskan resourcenya terlebih dahulu sebelum meminta resource yang lain

Gambar deadlock modelling       :

Contoh deadlock              :


Solusi deadlock :

Srategi untuk mengatasi deadlock            :
1.       Gunakan Ostrich algorithm untuk menolak masalah (Resource graph allocation)
2.       Lakuakan deteksi dan pemulihan
3.       Hindari pengalokasian resource secara dinamis
4.       Lakukan pencegahan dengan memikirkan kondisi kondisi yang mungkin terjadi.

Cara melakukan deadlock avoidance :
1.       Kita perlu mengetahui terlebih dahulu maximum resource yang ada agar disesuaikan dengan jumlah resource yang dibutuhkan
2.       Buat blocking ketika resource sedang digunakan
3.       Tentukan jumlah pengalokasian

Deadlock avoidance dengan menggunakan Safe and Unsafe state :



Tidak ada komentar:

Posting Komentar