Anda di halaman 1dari 6

Sistem Terdistribusi

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.

Syarat-syarat terjadinya Deadlock:


- Mutual exclusion, hanya 1 proses yang dapat mengakses 1 resource dalam 1 satuan
waktu;

- 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);

- No pre-emption, system terdistribusi tidak boleh merelokasi sebuah resource


setelah dialokasikan, resource tersebut harus dilepaskan oleh proses yang sedang
mengaksesnya (hold) secara sukarela, baru setelah itu dimasukkan kedalam daftar
resource yang tersedia (available resources list); dan

- 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.

II. Resource vs Communication Deadlock


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).

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

Sebuah proses menggunakan media komunikasi untuk berkomunikasi dengan proses


lain. Dalam sebuah communication deadlock, sebuah proses (P) sedang menunggu
pesan dari proses lain (M), akan tetapi tidak ada proses lain yang mengirim pesan (M)
hingga proses-proses tersebut menerima pesan yang sedang ditunggunya.
III. Wait-for-Graph (WFG)
WFG adalah diagram yang menggambarkan interaksi antara sebuah proses dengan
resource serta interaksi antara resource tersebut dengan proses dan resource lainnya. Contoh:

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.

IV. Strategi Penanganan Deadlock


Deadlock prevention
Deadlock prevention dicapai dengan cara meminta sebuah proses (P1) untuk
mengumpulkan seluruh resource (R) yang dibutuhkannya, sebelum mulai
mengeksekusi tugasnya atau dengan cara mendahului proses lain (P2) yang akan
mengakses resource (R) yang dibutuhkan oleh P1. Pendekatan ini tidak kompeten
dan tidak realistis dalam system terdistribusi.

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.

V. Deadlock Detection and Resolution Issues


1. Detection of existing deadlock (mendeteksi deadlock yang terjadi)
Pendeteksian sebuah deadlock dilakukan dengan cara:
i. Membuat diagram WFG; dan
ii. Pendeteksian adanya siklus WFG

Pada sebuah system terdistribusi, setiap computer/site/system dapat saja memiliki


informasi WFG yang tidak konsisten atau bahkan sudah kadaluwarsa, sehingga
menyulitkan proses pendeteksian deadlock.
2. Resolution of detected deadlocks (penyelesaian deadlock yang terdeteksi)
Penyelesaian deadlock biasanya dimulai dengan mendeteksi penyebab dan alur
terjadinya deadlock. Kemudian, menggunakan resource lain yang ada untuk
memblok proses (P1) yang sedang deadlock. Sehingga proses yang lain dapat
menyelesaikan tugasnya, dan proses (P1) dapat dibebaskan setelah resource yang
dibutuhkan tersedia.

VI. Control Detection for Distributed Deadlock Detection


1. Centralized Control
Sebuah site/computer ditunjuk untuk menjadi control site dan bertanggung jawab
untuk merekonstruksi dan menjaga WFG secara global. Sifat dari control site adalah,
sebagai berikut:
a. Single point of failure (pusat kegagalan tunggal);
b. Tingginya traffic pesan dari dan menuju control site; dan
c. Traffic pesan independent dari rata-rata formasi deadlock.

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.

VII. Centralized Deadlock Detection Algorithm


a. Completely Centralized Algorithm
Sebuah centralized detection deadlock algorithm yang sangat sederhana, dimana
sebuah control site menyimpan WFG secara global dan mendeteksi kemungkinan
adanya deadlock. Setiap proses harus mengirim pesan berupa request resource
(untuk meminta resource) dan release resource (untuk melepas resource) ke
control site, termasuk untuk resource yang sifatnya local (berada dalam
site/computer yang sama dengan proses yang membutuhkannya). Kemudian
pesan-pesan tersebut digunakan oleh control site untuk meng-update informasi
WFG secara global dan mengecek adanya deadlock setiap kali update WFG
dilakukan. Algoritma ini sangat sederhana dan mudah untuk diimplementasi, akan
tetapi sangat tidak efisien karena sangat tersentralisasi pada control site. Hal ini
menyebabkan tingginya delay/keterlambatan dalam menjawab pesan request
resource dari suatu proses kepada resource localnya sendiri. Selain itu juga
menyebabkan penuhnya jalur komunikasi dari dan ke control site.

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;

▪ Lebih cepat dibandingkan algoritma 2 fase;

▪ Lebih sedikit pesan yang terkirim antara central site dengan


site/komputer lainnya.

VIII. Distributed Deadlock Detection Algorithm


a. Path Pushing Algorithm
Pada algoritma ini, setiap site/computer akan memulai dengan membuat WFG
lokalnya terlebih dahulu, setelah itu informasi WFG tersebut akan diteruskan ke
site/computer lain yang berada didekatnya. Aktifitas ini berlanjut terus hingga
terbentuklah WFG global yang mencakup seluruh site/computer pada system
terdistribusi. Kemudian dari WFG global inilah Analisa dilakukan untuk mendeteksi
apakah deadlock terjadi atau tidak.
b. Edge Chasing Algorithm
Pada algoritma ini, potensi terjadinya deadlock pada WFG global dideteksi dengan
cara mengirim pesan khusus bernama probe S yang dikirim oleh proses P yang tidak
bisa mengakses resource R (terblokir/blocked). Deadlock dapat dicegah apabila
sebuah site/computer menerima pesan probe S ini.

c. Diffusion Computation-Based Algorithm


Untuk identifikasi deadlock, sebuah proses (P1) menginisiasi pendeteksian deadlock
dengan cara mengirim pesan (S1) ke semua proses lain yang terhubung sesuai
diagram WFG. Pesan (S1) ini kemudian diteruskan secara bertahap ke proses-proses
lainnya hingga diterima oleh proses (P2) yang sedang terblokir. P2 kemudian juga
mengirim pesan (S2) ke proses lainnya yang terhubung sesuai diagram WFG. Setelah
P2 mendapatkan balasan dari pesan S2 yang dikirimnya, maka P2 akan membalas
pesan S1 ke P1. Setelah P1 menerima semua pesan balasan dari pesan S1 yang
dikirimnya, barulah P1 mendeklarasikan telah terjadi deadlock di seluruh system
terdistribusi.

d. Global State Detection-Based Algorithm


Deteksi deadlock dilakukan dengan cara melakukan snapshot dari seluruh system
terdistribusi secara berkala dan kemudian dianalisa untuk kemungkinan adanya
kondisi deadlock.

IX. Hierarchical Deadlock Detection Algorithm


a. Menasce-Muntz Algorithm
Pada algoritma ini, semua site/computer diatur dalam bentuk hirarki seperti sebuah
pohon dan disebut dengan istilah controller. Controller yang berada di paling bawah
bertugas untuk mengelola resource-nya, dan yang diatasnya bertugas untuk
mendeteksi deadlock.
Saat terjadi perubahan WFG pada controller yang paling bawah (disebabkan oleh
adanya perubahan alokasi resource, resource waiting oleh sebuah proses ataupun
resource release dari sebuah proses), maka informasi perubahan tersebut
diinformasikan ke controller yang diatasnya. Controller yang diatasnya akan
memperbaharui informasi WFG yang dia miliki, kemudian mendeteksi kemungkinan
terjadinya deadlock. Informasi ini kemudian diteruskan lagi ke controller yang
diatasnya apabila diperlukan.

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.

Anda mungkin juga menyukai