DEADLOCK: ALGORITMA PENCEGAHAN DEADLOCK

 Deadlock adalah situasi di mana sekumpulan proses diblokir karena setiap proses memegang sumber daya dan menunggu sumber daya lain yang diperoleh oleh beberapa proses lain. Deadlock adalah masalah umum dalam sistem multiprosesing , komputasi paralel , dan sistem terdistribusi , di mana kunci perangkat lunak dan perangkat keras digunakan untuk menengahi sumber daya bersama dan mengimplementasikan sinkronisasi proses. Deadlock juga dapat terjadi ketika dua atau lebih query dijalankan pada database . Database transaksional mengunci catatan aktif, mencegah kueri lain mengaksesnya. Jika proses tidak dapat mengakses rekaman yang terkunci, kebuntuan database dapat terjadi.

ALGORITMA PENCEGAHAN DEADLOCK

ALGORITMA Banker

Deadlock dapat dicegah dengan beberapa cara, salah satunya dengan Algoritma Banker. Algoritma Banker umumnya digunakan untuk mengetahui apakah urutan aman ada atau tidak. Secara sederhana, ia memeriksa apakah alokasi sumber daya apa pun akan menyebabkan kebuntuan atau tidak, ATAU apakah aman untuk mengalokasikan sumber daya ke suatu proses dan jika tidak, maka sumber daya tidak dialokasikan ke proses itu. 

Ada dua Algoritma yang digunakan dalam algoritma Banker, yaitu : 

  1. Algoritma Safety
  2. Algoritma Request
Contoh : 

Terdapat 5 proses dengan 3 tipe sumber daya, A(10 anggota), B(5 anggota), C(7 anggota). Tentukan besar nilai need pada setiap proses dan available.

Pertama cari terlebih dahulu nilai available dan need . 
  • Untuk available dapat dicari dengan : AVAILABLE = SUMBER DAYA - TOTAL ALLOCATION
  • Untuk need dapat dicari dengan : NEED = MAX - ALLOCATION
  • Lakukan hal yang sama untuk mencari besar need pada setiap proses.


ALGORITMA SAFETY

Kemudian untuk mencari nilai available untuk setiap proses dapat menerapkan algoritma safety dengan aturan : 
IF need < available
 Then execute process
            New available = available + allocation
ELSE don't execute and go forward


Dari tabel di atas kita dapat menetukan nilai available yang baru untuk setiap proses dengan algoritma safety.

✓P0 :  743 < 332 .Tidak, maka lanjut pada proses selanjutnya.
✓ P1 : 122 < 332. 
Ya, maka 
NEW AVAILABLE= 332+200=532
✓ P2 : 600<532. Tidak, maka lanjut pada proses selanjutnya.
✓ P3 : 011 < 532 
Ya, maka
NEW AVAILABLE= 532+211=743
✓P4 : 431 < 743 
Ya, maka
NEW AVAILABLE=743+002=745
✓P0 : 743 < 745
YA, maka
NEW AVAILABLE=745+010=755
✓P2 : 600 < 755
Ya, maka
NEW AVAILABLE=755+302=1057

maka urutan prosesnya adalah : P1, P3, P4, P0, P2 dan proses tersebut dalam keadaan safety.
ALGORITMA REQUEST

Jika ada permintaan pada proses tertentu , maka request dapat diproses dengan syarat : 
  1. Request < Need
  2. Request < Available
  3. Periksa dengan algoritma safety
Jika syarat 1 dan 2 telah terpenuhi maka: 
AVAILABLE NEW= available - request
ALLOCATION NEW= allocation+request
NEED NEW = need - request

Contoh, dari tabel berikut terdapat request untuk P1 (1 0 2) 

Maka akan menjadi 


Selanjutnya periksa dengan algoritma safety apakah proses tersebut dalam keadaan safety atau unsafety. Lakukan seperti contoh algoritma safety sebelumnya.

Comments

Popular Posts