04 Modul 4 - DDD
04 Modul 4 - DDD
Modul 4
Distributed Deadlock Detection
I. Pendahuluan
Sistem terdistribusi adalah sebuah system dimana 1 atau lebih proses yang tidak
singkron (asynchronous), berada dalam site/computer/system yang berbeda, dan saling
berkomunikasi dengan cara mengirim pesan (message passing).
Deadlock adalah kondisi yang umum terjadi di system terdistribusi, yaitu saat sebuah
proses ingin mengakses resources (sumber daya), akan tetapi resource tersebut sedang
digunakan oleh proses lain. Hal ini disebabkan karena pengalokasian resources kepada proses-
proses yang membutuhkan tidak berjalan dengan baik.
- Hold and Wait, sebuah proses (P1) sedang mengakses dan menahan (hold)
setidaknya 1 buah resource (R1) dan meminta untuk mengakses resource lain (R2)
yang juga sedang diakses dan ditahan oleh proses lain (P2);
- Circular wait, adalah kondisi dimana sebuah proses (P1) ingin mengakses sebuah
resource (R1) akan tetapi harus menunggu R1 dilepaskan oleh proses lain (P2).
Disaat bersamaan, P2 ingin mengakses resource 2 (R2) akan tetapi harus menunggu
R2 untuk dilepas oleh P1. Atau dapat disingkat menjadi kondisi dimana satu atau
lebih proses (P) saling menunggu proses lain untuk dapat mengakses sebuah
resource (R) dan menyelesaikan pekerjaannya.
Distributed Deadlock
Distributed Deadlock adalah kondisi dimana satu atau lebih proses (proses bisa
berasal dari site/kompuer/system lain) sedang menunggu resources untuk dilepas oleh
proses lain sehingga dapat diakses. Dikarenakan dalam sebuah system terdistribusi,
proses-proses ini dapat berasal dari site/komputer/system lain, maka untuk
mengindentifikasi, menghindari dan mencegah deadlock menjadi lebih sulit (berbeda
dengan apabila pada sebuah system sentral / tunggal / tidak terdistribusi). Berikut
adalah beberapa cara dalam menangani Deadlock:
- Deadlock ignorance
Abaikan deadlock dan asumsikan bahwa deadlock tidak terjadi.
- Deadlock detection
Saat deadlock terjadi, identifikasi dan selesaikan dengan cara
membatalkan/mematikan/me-restart beberapa proses yang terdampak.
- Deadlock prevention
Deadlock dicegah dengan cara mencegah salah satu dari 4 syarat-syarat deadlock
diatas untuk dapat terjadi.
- Deadlock avoidance
Melakukan pengecekan situasi yang aman ataupun tidak aman (safe or unsafe
situation) sebelum mengalokasikan sebuah resource. Resource hanya dialokasikan
apabila system dalam kondisi yang aman.
Model sistem terdistribusi merupakan sekumpulan dari n proses (p1, p2, ... pn) dalam sebuah
mode asinkron (asynchronous mode), dan berkomunikasi dengan cara saling mengirim pesan.
Pada model ini kita asumsikan bahwa 1 buah proses berjalan pada 1 buah prosesor yang berada
pada 1 buah komputer/site (walaupun realitanya 1 buah komputer bisa memiliki banyak
prosesor). Proses-proses ini tidak saling berbagi memory komputer dengan proses lainnya, dan
berkomunikasi secara individu melalui kirim-kiriman pesan melalui jaringan komputer.
Resource Deadlock
Sebuah proses dapat membutuhkan satu atau lebih resource untuk menyelesaikan
sebuah aktifitas. Dalam resource deadlock, apabila sebuah proses (P1) sedang
menunggu resources (R) yang sedang diakses oleh proses lain, maka proses (P1) harus
mendapat seluruh resource (R) yang dibutuhkan untuk menyelesaikan tugasnya.
Communication Deadlock
Pada WFG berikut terdapat sebuah proses P1 ingin mengakses (request) resource R1
yang sedang diakses/dialokasikan ke (assignment) proses P2 yang juga ingin mengakses (request)
resource R2 yang sedang diakses/dialokasikan ke (assignment) P1.
Deadlock avoidance
Dalam deadlock avoidance pada system terdistribusi, sebuah proses (P) akan
dialokasikan ke resource (R) apabila kondisi system secara global (state of global
system) adalah aman. State of global system adalah kondisi dari seluruh proses dan
resource pada system terdistribusi.
Deadlock detection
Deadlock detection membutuhkan status dari interaksi antara seluruh proses
dengan resource-nya untuk ketersediaan cyclic wait. Ini merupakan pendekatan
yang terbaik untuk system terdistribusi.
Setiap proses harus mengirim pesan berupa request resource (untuk meminta
resource) dan release resource (untuk melepas resource) ke control site. Kemudian
pesan-pesan tersebut digunakan oleh control site untuk meng-update informasi
WFG secara global dan mengecek adanya deadlock.
2. Distributed Control
Semua site/computer bekerja sama untuk membuat WFG global dan kemudian
didistribusikan ke seluruh site/computer yang ada. Deadlock terdeteksi saat sebuah
proses terpaksa menunggu.
3. Hierarchical Control
Site/computer diatur dalam sebuah hirarki dan sebuah site/computer bertanggung
jawab untuk mendeteksi deadlock yang terjadi pada site/computer di hirarki yang
dibawahnya.
b. Ho-Ramamoorthy Algorithm
- Algoritma 2 Fase
o Setiap site/computer memiliki 1 table status yang berisi status dari
seluruh proses didalamnya beserta resources yang sedang
digunakan/locked dan resources yang sedang ditunggu untuk
digunakan/waited for;
o Secara periodic, central site meminta table status dari seluruh
site/computer yang ada dan kemudian membangun WFG berdasarkan
informasi yang didapat. Lalu central site menganalisa kemungkinan
terjadinya siklus deadlock;
o Apabila terdeteksi adanya siklus deadlock, maka central site akan
meminta lagi table status dari seluruh site/computer yang ada dan
kemudian membangun kembali WFG untuk mendeteksi apakah siklus
deadlock masih terdeteksi.
o Kalau iya, maka central site akan mendeklarasikan bahwa system
terdistribusi sedang Deadlock;
o Kalau tidak terdeteksi, maka Central site akan mencoba untuk
mengurangi potensi mendapatkan informasi yang tidak akurat/tidak
konsisten dari site/komputer lain yang pada akkhirnya dapat
menyebabkan deklarasi false deadlock (deadlock palsu) terhadap system
terdistribusi.
- Algoritma 1 Fase
o Setiap site/computer menyimpan 2 table status (table status resource
dan table status proses);
o Secara periodic, central site akan meminta 2 table status tersebut dari
semua site/computer, kemudian membangun WFG apabila ditemukan
ada informasi pada table status resource yang sama dengan informasi
pada table status proses dan mendeteksi kemungkinan adanya siklus
deadlock.
o Kelebihan dari algoritma 1 fase ini:
▪ Tidak ada false deadlock (deadlock palsu) yang akan terdeteksi;
b. Ho-Ramamoorthy Algorithm
Pada algoritma ini, beberapa site/computer dikelompokkan menjadi beberapa
cluster yang tidak terhubung dan ditunjuk 1 buah site/computer sebagai central
control site (CCS) dari semua cluster. Kemudian CCS ini akan menunjuk 1 buah
site/computer sebagai control site (CS) atau kepala dari masing-masing cluster.
Kemudian CCS akan meminta dari setiap CS informasi status yang terjadi di dalam
cluster-nya.
Setiap CS akan mengumpulkan table status dari seluruh site/computer yang berada
di dalam cluster-nya dan kemudian akan menjalankan Algoritma 1 Fase untuk
mendeteksi deadlock yang dapat terjadi di cluster-nya. Informasi deadlock ini
(apabila ada) akan diteruskan dari CS ke CCS, sehingga CCS dapat mendeteksi
deadlock diseluruh system terdistribusi.