Anda di halaman 1dari 34

DEADLOCK MK.

SISTEM OPERASI
PRODI TI UIN JAKARTA
DEADLOCK
Suatu kondisi dimana proses tidak berjalan lagi atau pun
tidak ada komunikasi lagi antar proses.
Deadlock disebabkan karena proses yang satu menunggu
sumber daya yang sedang dipegang oleh proses lain yang
sedang menunggu sumber daya yang dipegang oleh
proses tersebut.
DEADLOCK (CONT.)
Contoh deadlock

Deadlock pada jembatan Deadlock dipersimpangan jalan


DEADLOCK (CONT.)
Beberapa hal yang dapat membuat deadlock pada suatu
persimpangan, yaitu:
Terdapat satu jalur pada jalan.
Mobil digambarkan sebagai proses yang sedang menuju sumber
daya.
Untuk mengatasinya beberapa mobil harus preempt (mundur).
Sangat memungkinkan untuk terjadinya starvation (kondisi proses
tak akan mendapatkan sumber daya).

4
SYARAT TERJADINYA DEADLOCK
Mutual Exclusion. kondisi dimana setiap sumber daya diberikan tepat pada
satu proses pada suatu waktu.
Hold and Wait. Kondisi yang menyatakan proses-proses yang sedang
memakai suatu sumber daya dapat meminta sumber daya yang lain.
Non-pre-emptive. Kondisi dimana suatu sumber daya yang sedang berada
pada suatu proses tidak dapat diambil secara paksa dari proses
tersebut,sampai proses itu melepaskannya.
Circular Wait. Kondisi yang menyatakan bahwa adanya rantai saling meminta
sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.

5
CARA MENANGGULANGI DEADLOCK

Mengabaikan masalah deadlock


Mendeteksi dan memperbaiki
Deadlock avoidance sistem
Deadlock prevention sistem
Mengabaikan masalah deadlock
Strategi Ostrich
Pendekatan yang paling sederhana adalah dengan menggunakan strategi
burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada
masalah sama sekali.
Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan
semua keadaan deadlock harus ditangani. Sementara menurut para ahli
Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh
kegagalan hardware, error pada kompilator atau bugs pada sistem operasi,
maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah
besar dan lebih baik mengabaikan keadaan deadlock tersebut.
Metode ini diterapkan pada sistem operasi UNIX dan MINIX.

7
CARA MENANGGULANGI DEADLOCK

Mengabaikan masalah deadlock


Mendeteksi dan memperbaiki
Deadlock avoidance sistem
Deadlock prevention sistem
Mendeteksi dan memperbaiki
Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah
deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat
dalam deadlock tersebut.
Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari
kondisi deadlock dapat segera dilakukan.
Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang
diperlukan oleh proses-proses yang membutuhkannya.
Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan,
yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Metode
ini banyak digunakan pada komputer mainframe berukuran besar.

9
CARA MENANGGULANGI DEADLOCK
Mengabaikan masalah deadlock
Mendeteksi dan memperbaiki
Deadlock avoidance sistem
Deadlock prevention sistem
Pendekatan metode ini adalah dengan hanya memberi kesempatan ke
permintaan sumber daya yang tidak mungkin akan menyebabkan
deadlock.
Metode ini memeriksa dampak pemberian akses pada suatu proses, jika
pemberian akses tidak mungkin menuju kepada deadlock, maka sumber
daya akan diberikan pada proses yang meminta.
Jika tidak aman, proses yang meminta akan di-suspend sampai suatu
waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika
setelah sumber daya yang sebelumnya dipegang oleh proses lain telah
dilepaskan.
11
CARA MENANGGULANGI DEADLOCK
Mengabaikan masalah deadlock
Mendeteksi dan memperbaiki
Deadlock avoidance sistem
Deadlock prevention sistem
Metode ini merupakan metode yang paling sering digunakan.
Metode Pencegahan dianggap sebagai solusi yang bersih
dipandang dari sudut tercegahnya deadlock. Tetapi pencgahan
akan mengakibatkan kinerja utilisasi sumber daya yang buruk.
Metode pencegahan menggunakan pendekatan dengan cara
meniadakan empat syarat yang dapat menyebabkan deadlock
terjadi pada saat eksekusi Coffman (1971).

13
RESOURCE ALLOCATION GRAF
Sebuah sistem komputer terdiri dari berbagai macam sumber-daya
(resources), seperti:
1. Fisik (Perangkat, Memori)
2. Logika (Lock, Database record)
3. Sistem Operasi (PCB Slots)
4. Aplikasi (Berkas)
Mekanisme hubungan dari proses-proses dan sumber-daya yang
dibutuhkan/digunakan dapat di diwakilkan dengan graf.
DIAGRAM GRAF (CONT.)
Graf adalah suatu struktur diskrit yang terdiri dari vertex dan sisi, dimana sisi
menghubungkan vertex-vertex yang ada.
Graf dibagi menjadi dua bagian, yaitu
simple graf dan multigraf.
Salah satu contoh implementasi graf dalam sistem operasi adalah graf alokasi
sumber daya
DIAGRAM GRAF (CONT.)
Graf alokasi sumber daya merupakan graf sederhana dan graf berarah.
Graf alokasi sumber daya adalah bentuk visualisasi dalam mendeteksi maupun
menyelesaikan masalah deadlock.
DIAGRAM GRAF (CONT.)
Komponen Graf Alokasi Sumber daya
1. Proses P= {P0, P1, P2, P3,..., Pi,..., Pm}. Terdiri dari semua proses
yang ada di sistem. Untuk proses, vertexnya digambarkan sebagai
lingkaran dengan nama prosesnya.
2. Sumber daya R= {R0, R1, R2, R3,..., Rj,..., Rn}. Terdiri dari semua
sumber daya yang ada disistem. Untuk sumber daya, vertexnya
digambarkan sebagai segi empat dengan instans yang dapat
dialokasikan serta nama sumber dayanya.
DIAGRAM GRAF (CONT.)
Sisi, E={Pi-> Rj, , Rj-> Pi, } terdiri dari dua jenis, yaitu:
1. Sisi permintaan: Pi -> Rj Sisi permintaan menggambarkan adanya suatu proses Pi
yang meminta sumber daya Rj.
2. Sisi alokasi: Rj -> Pi. Sisi alokasi menggambarkan adanya suatu sumber daya Rj
yang mengalokasikan salah satu instansnya pada proses Pi.
DIAGRAM GRAF (CONT.)

Proses Pi meminta sumber daya Rj

Sumber daya Rj yang


mengalokasikan salah satu Graf Alokasi Sumber daya
DIAGRAM GRAF (CONT.)

Graf dengan deadlock Graf tanpa deadlock


DIAGRAM GRAF (CONT.)
Untuk mengetahui ada atau tidaknya deadlock
(Pendeteksian) dalam suatu graf dapat dilihat dari
perputaran dan resource yang dimilikinya, yaitu:
Jika tidak ada perputaran berarti tidak deadlock.
Jika ada perputaran, ada potensi terjadi deadlock.
Resource dengan instan tunggal dan perputaran mengakibatkan
deadlock.
KONDISI 1
Jika graf tidak berisi lingkaran, maka tidak ada proses yang
deadlock.

22
KONDISI 2
Jika membentuk lingkaran, dan jika tipe resource memiliki banyak
instance, maka deadlock DAPAT ada.

23
jika setiap tipe resource mempunyai satu instance, maka deadlock
telah terjadi.

24
WAIT-FOR GRAPH

P2
P1

P3

P5
P4
WAIT-FOR GRAPH AND RESOURCE-ALLOCATION
GRAPH CONVERSION
Any resource allocation graph with a single copy of resources can be transferred to a
wait-for graph.

P1 P1

P3 P2 P3 P2
MENGHINDARI DEADLOCK
Metode alternative untuk menghindari deadlock adalah menggunakan informasi
tambahan tentang bagaimana sumber daya diminta.
Dengan mengetahui urutan permintaan dan pelepasan sumber daya untuk setiap
proses, dapat diputuskan apakah proses harus menunggu atau tidak.
Algoritma deadlock avoidance secara dinamis memeriksa status sumber daya yang
dialokasikan untuk menjamin tidak pernah terjai kondisi menunggu sirkular.
Ketika suatu proses meminta sumber daya, system harus menentukan apakah
alokasi sumber daya pada proses mengakibatkan system dalam keadaan SAFE
STATE.
SAFE STATE : Jika system dapat mengalokasikan sumber daya setiap proses secara
berurutan dan menghindari deadlock.
CONTOH KONDISI SAFE

28
CONTOH KONDISI UNSAFE

29
ILUSTRASI
PROSES KEBUTUHAN KEBUTUHAN Jika terdapat 10 sumber daya. Tentukan
MAX SEKARANG pengalokasian agar tidak terjadi deadlock!
P0 10 2
P1 3 1
P2 7 3
Jumlah 6

PROSES KEBUTUHAN KEBUTUHAN


R = 10. Kebutuhan = 6. Sisa R = 4 MAX SEKARANG
4 resource akan dialokasikan untuk P0, P1, P2 P0 10 2+4
P1 3 1
1. Dialokasikan ke P0
R sisa = 0, tidak ada sumber daya yang bisa P2 7 3
digunakan, sehingga system masuk ke unsafe state Jumlah 10
PROSES KEBUTUHAN MAX KEBUTUHAN
2. Dialokasikan ke P1 Rsisa = 2 SEKARANG
Diakhir siklus, P1 akan melepaskan resource, sehingga akan P0 10 2
diperoleh Rsisa = 5 P1 3 1+2
PROSES KEBUTUHAN MAX KEBUTUHAN P2 7 3
SEKARANG
Jumlah 8
P0 10 2
P1 0 0
P2 7 3
Jumlah 5

3. Dialokasikan ke P2 Rsisa = 1 PROSES KEBUTUHAN MAX KEBUTUHAN


SEKARANG
Diakhir siklus, P1 akan melepaskan resource, sehingga akan
diperoleh Rsisa = 5 P0 10 2
P1 0 0
PROSES KEBUTUHAN MAX KEBUTUHAN
P2 7 3+4
SEKARANG
Jumlah 9
P0 10 2
P1 0 0
P2 0 0
Jumlah 2
4. Dialokasikan ke P0 Rsisa = 0 PROSES KEBUTUHAN MAX KEBUTUHAN
SEKARANG
Diakhir siklus, P0 akan melepaskan resource, sehingga akan
diperoleh Rsisa = 10 P0 10 2+8
P1 0 0
PROSES KEBUTUHAN MAX KEBUTUHAN P2 0 0
SEKARANG
Jumlah 10
P0 0 0
P1 0 0
P2 0 0
Jumlah 10
LATIHAN
1. Diasumsikan proses P0 memegang sumber daya R2 dan
R3, meminta sumber daya R4; P1 menggunakan R4 dan
meminta R1; P2 menggunakan R1 dan meminta R3.
Gambarkan Wait-for Graph. Apakah sistem terjebak
dalam deadlock ? Jika ya, tunjukkan proses mana yang
menyebabkan deadlock. Jika tidak, tunjukkan urutan
proses untuk selesai.

33
2. User x telah menggunakan 7 printer dan harus
menggunakan 10 printer. User y telah menggunakan 1
printer dan akan memerlukan paling banyak 4 printer.
User z telah menggunakan 2 printer dan akan
menggunakan paling banyak 4 printer. Setiap user pada
saat ini meminta 1 printer. Kepada siapakah OS akan
memberikan grant printer tersebut dan tunjukkan "safe
sequence" yang ada sehingga tidak terjadi deadlock.

34

Anda mungkin juga menyukai