Jumat, 28 November 2014

Deadlock

     Deadlock adalah keadaan di mana dua atau lebih proses tidak dapat berjalan karena saling menunggu resources dari yang lainnya.

     Deadlock mungkin terjadi karena :
  • Mutual Exclusion : Hanya satu proses yang dapat menggunakan sumber daya pada satu kali waktu.
  • Hold-and-wait : Suatu proses dapat menahan sumber daya yang dialokasikan sambil menunggu sumber daya lainnya dapat dipakai.
  • No preemption : Tidak ada sumber daya yang dapat dilepaskan dari proses yang sedang menggunakannya.
     Sedangkan penyebab deadlock adalah :
  1. Circular wait 
          Circular wait adalah situasi di mana dua atau lebih proses saling menunggu hasil output dari masing - masing proses. Misal P1 menunggu data dari P2 sedangkan P2 juga menunggu data dari P1. Maka dari itu semua proses tidak bisa berjalan.


Pencegahan Deadlock

  • Pada Mutual Exclusion  
          Exclusive access hanya untuk write saja, proses-proses lain tetap bisa read
  • Pada Hold and Wait 
          Semua resource yang dibutuhkan diminta sejak awal
  • Pada No Preemption 
          Proses melepaskan resource dan nanti memintanya kembali
  • Pada Circular Wait 
          Membuat urutan pengaksesan resource

0 komentar:

Posting Komentar