BAB 3
PEMBAHASAN
3.1 Pendeteksian Deadlock.
Setelah memodelkan sistem operasi kedalam bentuk graph alokasi sumber daya, dapat dilakukan pengecekan deadlock  dengan  memperhatikan cycle  perputaran  pada  graph  tersebut.  Jika  tidak
ditemukan  cycle  perputaran  maka  dapat  dipastikan  sistem  berada  dalam  kondisi  aman,  tidak akan  terjadi  deadlock  pada  saat  running.  Namun  jika  ditemukan  cycle  perputaran  pada  graph
alokasi  sumber  daya  belum  tentu  terjadi  deadlock,  sistem  dikatakan  berpotensi  mengalami deadlock.
Hal-hal yang terjadi dalam mendeteksi adanya deadlock adalah: 1.
Permintaan sumber daya dikabulkan selama mungkin. 2.
Sistem operasi memeriksa adakah kondisi circular wait secara periodik. 3.
Pemeriksaan  adanya  deadlock  dapat  dilakukan  setiap  ada  sumber  daya  yang hendak digunakan oleh sebuah proses.
4. Memeriksa dengan algoritma tertentu.
Graph  alokasi  sumber  daya  dengan  simpul  sumber  daya  R
j
hanya  memilki  satu  instants dan ditemukan cycle perputaran maka dapat dipastikan sistem akan mengalami deadlock.
3.1.1 Algoritma Deteksi Deadlock
Pemeriksaan  deadlock  dapat  dilakukan  setiap  kali  terjadi  permintaan  sumber  daya,  tergantung pada  besarnya  kemungkinan  deadlock  akan  terjadi.  Pemeriksaan  setiap  kali  adanya  permintaan
sumber  daya  memilki  dua  keuntungan:  pemeriksaan  seperti  ini  akan  menyebabkan  terjadinya deteksi  lebih  awal,  dan  algirotma  relatif  sederhana  karena  didasarkan  pada  perubahan
Universitas Sumatera Utara
incremental ke state sistem itu. Di lain pihak, pemeriksaan sesering itu akan menghabiskan waktu prosesor.
Algoritma  ini  menggunakan  matriks  alokasi  dan  vektor  yang  tersedia,  dan  juga  harus ditentukan  matriks  permintaan  Q  sehingga  q
ij
merepresentasikan  jumlah  sumber  daya  yang berjenis j yang diminta oleh proses i. Algoritma berlangsung dengan menandai proses yang tidak
ber-deadlock.  Pada  saat  awal,  semua  proses  tidak  bertanda.  Kemudian  dilakukan  langkah- langkah berikut ini:
1. Tandai setiap proses yang memiliki baris dalam matriks alokasi yang seluruhnya nol.
2. Inisialisasi vektor W sehingga sama dengan vektor available tersedia.
3. Temukan suatu indeks  i  sehingga proses  i  yang  saat itu tidak  bertanda dan  baris ke-i
pada  Q  lebih  kecil  atau  sama  dengan  W.  Apabila  baris  seperti  itu  tidak  ditemukan,
hentikan algoritma tersebut. 4.
apabila  baris  seperti  itu  ditemukan,  tandai  proses  i  dan  tambahkan  baris  matriks
alokasi yang bersangkutan ke W yaitu memasang W
k
= W
k
+ A
ik.
Kembali kelangkah 3.
Deadlock dapat terdeteksi  bila terdapat proses  yang tidak  bertanda pada akhir algoritma. Algoritma  ini  mencari  proses  yang  permintaan  sumber  dayanya  dapat  dipenuhi  dengan  sumber
daya  yang  tersedia,  dan  kemudian  mengasumsikan  bahwa  sumber  daya-sumber  daya  itu diberikan  dan  proses  akan  berjalan  sampai  selesai  dan  melepaskan  sumber  dayanya.  Kemudian
algoritma  akan  mencari  proses-proses  lainnya  yang  akan  dipenuhi.  Tetapi  algoritma  ini  tidak dapat  menjamin  untuk  mencegah  deadlock,  karena  akan  bergantung  pada  urutan  pemberian
permintaan. Bila  setiap  sumber  daya  hanya  memiliki  satu  instans  bagian,  maka  algoritma  untuk
mendeteksi deadlock dapat menggunakan graph tunggu.
3.1.2 Pendeteksian dengan Graph tunggu