Konsep Deadlock Kelompok 54.7 Ferry Sulistiyanto (1203000455) Ibnu Mubarok (1203000544) E-mail :
[email protected]
Pokok Bahasan Deadlock problem Tipe resource Karakteristik deadlock Pengendalian deadlock Banker’s Algorithm Deadlock recovery
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
2
Deadlock Problem Apa itu deadlock? Analogi : Traffic stuck, antrian kendaraan yang saling menunggu Menunggu keadaan yang tidak akan pernah terjadi kebuntuan.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
3
Resource Resource adalah komoditas/bahan yang dibutuhkan oleh proses untuk dapat melakukan task tertentu. Tipe-tipe resource Reusable resource Consumable resource
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
4
Karakteristik Deadlock Situasi deadlock dapat terjadi bila terdapat 4 kondisi yang berjalan serentak pada sistem. Mutual Exclusion Sebuah resource hanya dapat digunakan oleh sebuah proses pada suatu waktu tertentu. (resource yang nonshareable.) Hold and Wait terdapat proses yang sedang menunggu dan memegang resource.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
5
Karakteristik Deadlock (cont.) Non-preemption Resource tidak dapat digunakan sebelum proses yang menggunakan telah selesai menggunakan dan kemudian melepaskannya. Circular wait Proses-proses berada dalam lingkaran. Terjadi saling menunggu resource yang sedang digunakan oleh proses berikutnya dalam lingkaran tersebut.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
6
Pengendalian Deadlock Mengabaikan, menganggap bahwa deadlock tidak akan pernah terjadi. Membiarkan terjadinya deadlock, lalu kemudian segera diperbaiki/recover. Menggunakan protokol untuk meyakinkan bahwa sistem tidak akan pernah deadlock.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
7
Ostrich Algorithm Algoritma paling sederhana. Mengabaikan terjadinya kondisi deadlock. Jadi apa yang harus kita lakukan jika terjadi deadlock menurut Ostrich algorithm?
Cukup di restart!
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
8
Mendeteksi dan memperbaiki Mendeteksi apabila dalam sebuah proses terjadi kondisi yang mengarah ke circular wait. Apabila deadlock terjadi tentukan proses mana saja yang terlibat. Setelah deadlock terdeteksi, biarkan proses yang mengalami deadlock selesai menggunakan resource, agar resource bisa digunakan. Atau stop semua proses yang terlibat deadlock.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
9
Penggunaan Protokol Deadlock Prevention Menggunakan method supaya tidak terjadi salah satu kondisi yang menyebabkan deadlock. Deadlock Avoidance Menghindari situasi yang dapat mengarah kepada terjadinya deadlock, sistem harus diberikan informasi tambahan yang menyatakan resource mana yang diminta proses, dan digunakan selama proses berjalan.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
10
Deadlock prevention Salah satu faktor-faktor penyebab deadlock harus dapat dicegah. Mutual Exclusion Sifat alamiah sebuah resource (tidak bisa dicegah).Namun, ada beberapa resource yang dapat di-spool. Hold and Wait Harus dipastikan bahwa ketika sebuah proses merequest resource, proses itu tidak sedang memegang resource lain.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
11
Deadlock prevention (cont.) Non preemption Mencegah supaya tidak ada proses dalam keadaan menunggu-mendapat-resource yang sedang digunakan oleh proses lain. (seluruh proses menjadi preemption). Circular waiting Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu. Melakukan penomoran resource.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
12
Deadlock avoidance Menyeleksi request resource dari proses-proses, apabila request itu ‘berbahaya’ maka requestnya akan ditunda dahulu hingga keadaan sudah aman. Membutuhkan informasi tambahan mengenai aliran resource yang diminta. Algoritma yang digunakan Algoritma Banker.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
13
Deadlock detection Jika tidak terdapat deadlock prevention atau avoidance dalam suatu sistem diperlukan suatu mekanisme untuk mengetahui terjadinya deadlock. Menggunakan algoritma untuk mendeteksi adanya deadlock. Memeriksa penggunaan resource oleh proses- proses
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
14
Save vs Unsafe state Ketika terjadi resource request, sistem harus memastikan proses berada dalam safe state Safe state Æ sistem dapat mengalokasikan resource untuk tiap-tiap proses dan mencegah terjadinya deadlock Unsafe state Æ sistem tidak dapat mengatur alokasi resource untuk tiap proses
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
15
Safe vs Unsafe state (cont.) Jika sistem berada dalam kondisi safe state, berarti tidak terjadi deadlock. Jika dalam kondisi unsafe state, kemungkinan bisa terjadi deadlock.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
16
Banker’s algorithm Setiap proses harus mengklaim berapa jumlah maksimum resource yang akan digunakan. Jika resource tidak tersedia maka permintaan ditunda. Setiap proses yang telah selesai harus mengembalikan resource yang dipakai.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
17
Banker’s Algorithm Proses
Alokasi
Maks
Tersedia
P1
2
5
P2
4
8
P3
2
3
P1
2
5
P2
4
8
P3
-
-
P1
-
-
P2
4
8
P3
-
-
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
2
4
6
18
Kelemahan Banker’s algorithm Proses kebanyakan belum mengetahui jumlah maksimum resource yang dibutuhkan. Jumlah proses tidak tetap. Beberapa resource dapat diambil dari sistem sewaktuwaktu. Algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas. © 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
19
Deadlock Recovery Pemulihan deadlock dapat dilakukan melalui: Hapus semua proses yang terlibat dalam deadlock. Rollback dan restart proses. Secara bertahap hapus proses-proses yang terlibat deadlock hingga tidak ada deadlock lagi. Secara berurutan, preempt resourceresource sampai tidak ada deadlock.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
20
Summary Deadlock berpotensi terjadi pada sistem dengan multiproses akibat penggunaan resource bersama yang mengakibatkan konflik. Ada beberapa cara untuk menghandle deadlock ini, namun tidak ada solusi umum mengenai deadlock. Masing-masing teknik mempunyai kelemahan.
© 2004 Ferry & Ibnu. Silakan mengedarkan dan memperbanyak slide ini tanpa mengubah isinya.
21