Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
DEADLOCK
2
Deadlock Terjadi jika proses menunggu suatu kejadian tertentu yang tidak pernah terjadi Sekumpulan proses berkondisi deadlock bila setiap proses yang ada di kumpulan menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu.
3
Contoh Deadlock di Persimpangan Jalan
4
Pengoperasian I/O meminta (request) : meminta pelayanan perangkat masukan/keluaran memakai (use) : memakai perangkat masukan / keluaran melepaskan (release) : melepaskan pemakaian perangkat masukan/keluaran
5
Kondisi untuk Terjadinya Deadlock
mutual exclusion (mutual exclusion conditional) tiap resource saat itu diberikan pada tepat 1 proses. kondisi genggam dan tunggu (hold and wait) proses-proses yang sedang menggenggam resource, menunggu resource-resource baru. kondisi non-preemption (non-preemption condition) Resource-resource yang sebelumnya diberikan tidak dapat diambil paksa dari proses itu. Resource harus secara explisit dilepaskan dari proses yang menggenggamnya. kondisi menunggu secara sirkuler (circular wait condition) harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu resource yang digenggam oleh anggota berikutnya pada rantai itu.
6
Kondisi untuk Terjadinya Deadlock
Terjadi deadlock maka ketiga kondisi itu ada, tetapi adanya ketiga kondisi itu belum tentu terjadi deadlock. Deadlock benar-benar terjadi bila syarat keempat terpenuhi. Kondisi keempat merupakan keharusan bagi terjadinya deadlock. Deadlock bisa terjadi pada saat proses akan mengakses objek seperti file,device, dll secara tidak semestinya. Objek tersebut dinamakan resource.
7
Jenis Resource preemtable resource Non-preemtable resource
resource yang dapat diambil dan dilepas dari proses yang sedang memakainya tanpa memberikan efek apapun pada proses tersebut. Non-preemtable resource resource tidak dapat diambil dari proses yang sedang membawanya, karena akan mengakibatkan kegagalan komputasi, contoh : printer, bila suatu proses sedang menggunakan printer untuk mencetak, maka proses lain tidak dapat menggunakan printer tersebut.
8
Metode Mengatasi Deadlock
Mengabaikan masalah deadlock Mendeteksi dan memperbaiki Pencegahan deadlock (prevention) Menghindari deadlock (avoidance)
9
1. Mengabaikan Masalah Deadlock
Algoritma Ostrich Menghadapi deadlock dengan berpura-pura tidak ada masalah apapun Dipakai jika yakin deadlock akan sangat jarang terjadi dan biaya untuk deteksi atau pemulihan deadlock tinggi
10
2. Deteksi Deteksi deadlock adalah teknik untuk menentukan apakah deadlock terjadi serta mengidentifikasi proses-proses dan resource-resource yang terlibat deadlock. Periode yang biasa dilakukan adalah memonitor permintaan dan pelepasan resorce.
11
Deteksi Bila sistem terdapat deadlock maka deadlock harus diputuskan.
Biasanya beberapa proses akan kehilangan sebagian atau semua kerja yang telah dilakukan. Hal ini lebih baik daripada terjadinya deadlock yang berarti semua proses tidak menghasilkan apapun
12
Perbaikan/Pemulihan Preemption Melacak kembali
Mengambil sementara resource dari proses yang menggunakannya Sangat sulit dilakukan Melacak kembali Proses yang diambil resourcenya ketika dilakukan preemption akan berhenti dibutuhkan langkah untuk melanjutkan proses tersebut. Sulit dilakukan sehingga umumnya proses dimulai lagi dari awal Menghentikan proses yang menyebabkan deadlock – cara paling umum digunakan
13
Kriteria Pemilihan Proses Yang Akan Disingkirkan
paling jarang memakai prosesor paling sedikit hasil programnya paling banyak memakai resource sampai saat ini alokasi resource totalnya / maksimum resourcenya yang dibutuhkan paling sedikit Yang memiliki prioritas terkecil
14
3. Pencegahan Deadlock (Prevention)
Sedapat mungkin tidak mempergunakan mutual exclusion (1 resource diberikan tepat ke 1 proses) Jika proses sedang memegang resource tertentu, untuk permintaan berikutnya proses harus melepas dulu resource yang dipegangnya.
15
3. Pencegahan Deadlock (Prevention)
Tiap proses harus meminta semua resource yang diperlukan secara sekaligus dan tidak berlanjut sampai semuanya diberikan. Beri pengurutan linier terhadap tipe-tipe resource pada semua proses, yaitu jika proses telah dialokasikan suatu tipe resource, proses hanya boleh meminta ulang tipe resource pada urutan berikutnya.
16
4. Menghindari Deadlock (Avoidance)
Menghindari deadlock dengan cara hanya memberi akses ke permintaan resource yang tidak mungkin menimbulkan deadlock. jika pemberian akses resource tidak mungkin menuju deadlock, resource diberikan ke peminta. Jika tidak aman (memungkinkan timbulnya deadlock), proses yang meminta di suspend sampai suatu waktu permintaannya aman diberikan. Kondisi aman biasanya terjadi setelah 1 resource / lebih yang semula dipegang oleh proses-proses aktif lain dilepaskan.
17
Menghindari Deadlock (Avoidance)
Agar dapat mengevaluasi safe-nya state sistem, penghindaran deadlock mengharuskan semua proses menyatakan jumlah kebutuhan resource maksimum sebelum eksekusi. Begitu eksekusi dimulai, tiap proses meminta resource saat diperlukan sampai batas maksimum yang dinyatakan di awal. Proses-proses yang menyatakan kebutuhan resource melebihi kapasitas total sistem tidak dapat dieksekusi. Menggunakan algoritma banker
18
Algoritma Banker Adanya safe state (kondisi aman) dan unsafe state (kondisi tidak aman) Digambarkan sebagai seorang bankir yang memberi pinjaman ke sekelompok peminjam Setiap peminjam memiliki batas pinjaman maksimum dan pengembalian wajib tepat waktu Peminjaman secara bertahap, dan bankir memastikan bahwa dana selalu tersedia bagi peminjam yang lain (safe state)
19
Algoritma Bankir 1.Tersedia (Available) Jumlah resource/dana harus tersedia. 2.Maksimum Jumlah resource maksimum yang diminta oleh setiap proses. 3.Alokasi (Allocation) Jumlah resource yang dialokasikan untuk kebutuhan setiap proses. 4.Kebutuhan (Need) [Maksimum] – [alokasi], sisa resource yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan.
20
Safe State Kondisi aman (safe state) jika tidak deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses secara hati-hati mengikuti suatu urutan tertentu.
21
Safe State Contoh : Sistem dengan 10 resource setipe
proses A memerlukan resource maksimum sebanyak 10, sedang saat ini menggenggam 2 resource proses B memerlukan resource maksimum sebanyak 3, sedang saat ini menggenggam 1 resource. Proses C memerlukan resource maksimum sebanyak 7, sedang saat ini menggenggam 3 resource. Masih tersedia 4 resource .
22
Safe State Contoh :
23
Safe State Contoh : State dinyatakan aman / selamat (safe) karena terdapat barisan pengalokasian yang dapat memungkinkan semua proses selesai. Dengan penjadwalan secara hati-hati, sistem dapat terhindarkan dari deadlock. Barisan tersebut adalah :
27
Unsafe State State tak aman (unsafe state) : jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. Contoh : State dibawah ini sama dengan state safe sebelumnya, tapi dapat berubah menjadi state tidak aman bila alokasi resource tak terkendali.
32
4. Deadlock Avoidance Banker’s Algorithm: Some terminology:
let X and Y be two vectors. Then we say X ≤ Y if and only if X[i] ≤ Y[i] for all i. Example: then V2 ≤ V1, but V3 ≤ V1, i.e. V3 is not less than or equal to V1 1 7 3 2 V1 = 3 2 1 V2 = 10 2 1 V3 =
33
Deadlock Avoidance Banker’s (Safety) Algorithm: find a safe sequence, i.e. is the system in a safe state? Let Work and Finish be vectors length m and n respectively. Initialize Work = Available, and Finish[i]=false for i=0,...,n-1 Find a process i such that both Finish[i]==false, and Needi ≤ Work If no such i exists, go to step 4. Work = Work + Alloci Finish[i] = true Go to step 2. 4. If Finish[i]==true for all i, then the system is in a safe state Intuition: if all prior processes give up all their resources, is there enough to meet the max needs of next process in the sequence?
34
Algoritma Bankir Tersedia (Available) Jumlah resource/dana harus tersedia. Maksimum Jumlah resource maksimum yang diminta oleh setiap proses. Alokasi (Allocation) Jumlah resource yang dialokasikan untuk kebutuhan setiap proses. Kebutuhan (Need) [Maksimum] – [alokasi], sisa resource yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan.
35
Deadlock Avoidance Example Alloc[i,j] Max[i,j] Need[i,j] Avail[j]
3 resources (A,B,C) with total instances available (10,5,7) 5 processes At time t0, the allocated resources Alloc[i,j], Max needs Max[i,j], and Available resources Avail[j], are: Alloc[i,j] A B C Max[i,j] A B C Need[i,j] A B C where Need[i,j] is computed given Alloc[i,j] and Max[i,j] Avail[j] A B C P0 P1 P2 P3 P4
36
Solusi Terapkan algoritma Banker untuk menyelidiki apakah terdapat safe sequence Langkah-langkah : Periksa P0 Need0=<7,4,3> ≤/ Available = <3,3,2> -> Tidak dapat dipenuhi (Unsafe) Periksa P1 Need1 = <1,2,2> ≤ Available = <3,3,2> -> Dapat dipenuhi (safe) Available' = Available + Alloc1 = <3,3,2> + <2,0,0> = <5,3,2> Periksa P2 Need2 =<6,0,0> ≤/ Available’ = <5,3,2> -> Tidak dapat dipenuhi (Unsafe) Periksa P3 Need3 = <0,1,1> ≤ Available’ = <5,3,2> -> Dapat dipenuhi (safe) Available’' = Available’ + Alloc3 = <5,3,2> + <2,1,1> = <7,4,3> Periksa P4 Need4 = <4,3,1> ≤ Available’’ = <7,4,3> -> Dapat dipenuhi (safe) Available’’' = Available’’+ Alloc4 = <7,4,3> + <0,0,2> = <7,4,5> Periksa P0 Need0 = <7,4,3> ≤ Available’’’ = <7,4,5> -> Dapat dipenuhi (safe) Available’’’' = Available’’’+ Alloc0 = <7,4,5> + <0,1,0> = <7,5,5> Periksa P2 Need2 = <6,0,0> ≤ Available’’’’ = <7,5,5> -> Dapat dipenuhi (safe) Available’’’’' = Available’’’’+ Alloc2 = <7,5,5> + <3,0,2> = <10,5,7> Safe Sequence <P1, P3, P4, P0, P2>
37
Deadlock Avoidance Banker’s Algorithm determines whether the system is in a safe state Suppose we have a new request, and the current system is in a safe state Should we grant the new request? Yes, if it leaves the system in a safe state.
38
Deadlock Avoidance Resource-Request Algorithm associated with the Banker’s Algorithm Let Requesti be a new request vector for resources for process Pi If Requesti ≤ Needi , go to step 2. Else, the new request exceeds the maximum claim. Exit. If Requesti ≤ Available, go to step 3. Else, process Pi must wait because there aren’t enough available resources Temporarily modify Available[j], Need[i,j], and Alloc[i,j] Avail -= Requesti Alloci += Requesti Needi -= Requesti Execute the Banker’s Safety algorithm to see if the system is in a safe state. If so, grant the request and permanently update Avail, Need, and Alloc. If not, Pi must wait for more resources to be freed before Requesti can be granted. Restore the old state.
39
Deadlock Avoidance Example 3 from previous lecture: Alloc[i,j]
3 resources (A,B,C) with total instances available (10,5,7) 5 processes At time t0, the allocated resources Alloc[i,j], Max needs Max[i,j], and Available resources Avail[j], are: Alloc[i,j] A B C Max[i,j] A B C Need[i,j] A B C where Need[i,j] is computed given Alloc[i,j] and Max[i,j] Avail[j] A B C P0 P1 P2 P3 P4 Banker’s Algorithm found that this was in a safe state, with safe sequence <P1, P3, P4, P0, P2>
40
Deadlock Avoidance Suppose we have a new request from process P1, Request1 = <1,0,2>. Can the system satisfy this request without becoming unsafe? Execute the Resource-Request Algorithm. Request1 ≤ Need1 = <1,2,2> Request1 ≤ Available = <3,3,2> Temporarily recompute Avail, Need, and Alloc see next slide
41
Deadlock Avoidance Alloc’[i,j] Max[i,j] Need’[i,j] Avail’[j]
temporarily modified Alloc’[i,j] A B C Max[i,j] A B C Need’[i,j] A B C Avail’[j] A B C P0 P1 P2 P3 P4 Execute Banker’s Algorithm on this revised state. We find that the sequence <P1,P3,P4,P0,P2> is safe. Thus we can grant the Request1 immediately, and permanently update the matrices and vectors.
42
Deadlock Avoidance Given this new state, suppose we have a 2nd request: from P4, such that Request4 = <3,3,0>. Show that this cannot be granted because Request4 ≤ Available = <2,3,0>. That is, there are not enough available resources. from P0, such that Request0 = <0,2,0>. Show that this cannot be granted because no safe sequence can be found.
43
Latihan Tentukan Matrix Need
Jika total instans untuk R1=7, R2=7, dan R3=10 Tentukan Matrix Need Apakah kondisi saat ini safe state ? Gunakan algoritma Banker dan tuliskan safe sequence nya. Jika P1 melakukan request < 0, 0, 1>, akankah request tersebut diberikan
44
PR Buku Text (Silberschatz dkk) Edisi 9 : Hal 340, Problem 7.3
Catatan : Ditulis tangan, kecuali halaman cover Hasil pekerjaan difoto / discan lalu di PDF kan Nama file : Tugas[Kelas]_Deadlock_[Nama]_[NIM].pdf
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.