Page 102 - C:\Users\RENO\Documents\MK Sistem Operasi\Folder Baru\
P. 102
Ilustrasi di atas dapat kita lihat programnya sebagai berikut :
Strukur data :
VAR chopstick : ARRAY [0..4] of semaphore {diinisialkan 1}
REPEAT
Wait(chopstick[1]);
Wait(chopstick[i+5 mod 5]);
...
Makan
...
signal(chopstick[1]);
signal(chopstick[i+5 mod 5]);
...
Berfikir
...
UNTIL false.
6.4. Deadlock
Deadlock pada sebuah sistem operasi merupakan proses saling menunggu
sumber daya yang dibawa oleh proses lain. Contohnya, terdapat semaphore A dan B
yang diinisialkan dengan 1 dan terdapat proses P0 dan P1, masing-masing membawa
semaphore A dan B. Kemudian P0 dan P1 meminta semaphore B dan A dengan
menjalankan operasi wait. Hal ini mengakibatkan proses di blok dan terjadi deadlock.
(A). Model Deadlock
Model deadlock dua proses dan dua sumber daya
Pada model deadlock dua proses dan dua sumber daya ini dapat digambarkan
sebagai graph. Misalnya terdapat dua proses yaitu P0 dan P1, dua sumber daya kritis
yaitu R0 dan R1. Proses P0 dan P1 harus mengakses kedua sumber daya tersebut, maka
model deadlocknya dapat kita lihat seperti gambar 6.1 berikut :
P0
R1
R0 P1
Gambar 6.1 Model Deadlock
Sumber: http://www.ilmukomputer.com
88