Deadlock Materi Model system Karakteristik deadlock Metode penanganan

  • Slides: 46
Download presentation
Deadlock

Deadlock

Materi • • Model system Karakteristik deadlock Metode penanganan deadlock Pencegahan deadlock Pengabaian deadlock

Materi • • Model system Karakteristik deadlock Metode penanganan deadlock Pencegahan deadlock Pengabaian deadlock Pendeteksian deadlock Perbaikan dari deadlock Kombinasi penanganan deadlock

Sumber Pembelajaran Mandiri • Buku • • Textbook Silberschatz chapter 7 • • https:

Sumber Pembelajaran Mandiri • Buku • • Textbook Silberschatz chapter 7 • • https: //www. youtube. com/watch? v=Lm-i 4 JW 1 NUY File : Diktat Deadlock. pdf • Video https: //www. youtube. com/watch? v=SLx 6 w 0 IMJkw • Slide

Permasalahan Deadlock • Kondisi dimana masing-masing proses membawa resource dan saling menunggu mendapatkan resource

Permasalahan Deadlock • Kondisi dimana masing-masing proses membawa resource dan saling menunggu mendapatkan resource yang dibawa proses lain • Contoh • Sistem mempunyai 2 tape drive • P 1 dan P 2 masing-masing membawa satu tape drive dan masing-masing memerlukan tape drive lainnya. • Contoh lain • semaphore A dan B diinisialisasi 1

Contoh Jembatan Penyebrangan • Jalur hanya untuk satu arah • Setiap bagian jembatan dianggap

Contoh Jembatan Penyebrangan • Jalur hanya untuk satu arah • Setiap bagian jembatan dianggap sebagai resource • Jika terjadi deadlock, dapat dipecahkan jika satu mobil mundur (melepas resource dan rollback) • Beberapa mobil harus mundur jika terjadi deadlock • Kemungkinan starvation

Model Sistem • Jenis Resource R 1, R 2, . . . , Rm

Model Sistem • Jenis Resource R 1, R 2, . . . , Rm CPU cycles, memory space, I/O devices • • Setiap jenis resource Ri mempunyai anggota Wi Setiap proses yang menggunakan resource melakukan hal di bawah ini: o request o use o release

Karakteristik Deadlock dapat terjadi jika terdapat 4 kondisi yang terjadi secara simultan • Mutual

Karakteristik Deadlock dapat terjadi jika terdapat 4 kondisi yang terjadi secara simultan • Mutual exclusion: hanya satu proses pada satu waktu yang dapat menggunakan satu resource. • Hold and wait: sebuah proses membawa sedikitnya satu resource sedang menunggu mendapatkan resource tambahan yang dibawa oleh proses-proses lain • No preemption: sebuah resource dapat dibebaskan hanya oleh proses yang membawanya, setelah proses menyelesaikan task/pekerjaan • Circular wait: terdapat sekumpulan {P 0, P 1, …, P 0} dari proses yang menunggu dimana P 0 menunggu resource yang dibawa oleh P 1, P 1 menunggu resource yang dibawa oleh P 2 , …, Pn– 1 menunggu resource yang dibawa oleh Pn, dan P 0 menunggu resource yang dibawa oleh P 0

Resource-Allocation Graph Sekumpulan vertek V dan sekumpulan edge/garid E. • • • V dibagi

Resource-Allocation Graph Sekumpulan vertek V dan sekumpulan edge/garid E. • • • V dibagi menjadi dua jenis: o P= {P 1, P 2, …, Pn}, sekumpulan semua proses dalam sistem o R= {R 1, R 2, …, Rm}, sekumpulan semua jenis resource yang berada dalam sistem request edge – garis berarah P 1 → Rj assignment edge – garis berarah Rj → P

Resource-Allocation Graph (Cont. ) • Proses • Jenis resource dengan 4 anggota • Pi

Resource-Allocation Graph (Cont. ) • Proses • Jenis resource dengan 4 anggota • Pi meminta anggota dari Rj Pi Rj • Pi membawa satu anggota dari Rj Pi Rj

Contoh Resource Allocation Graph

Contoh Resource Allocation Graph

Resource Allocation Graph dengan Deadlock

Resource Allocation Graph dengan Deadlock

Resource Allocation Graph dengan Siklus tetapi Tidak Terjadi Deadlock

Resource Allocation Graph dengan Siklus tetapi Tidak Terjadi Deadlock

Fakta Dasar • Jika graph tidak terdapat siklus → tidak terjadi deadlock. • Jika

Fakta Dasar • Jika graph tidak terdapat siklus → tidak terjadi deadlock. • Jika graph terdapat siklus → • Jika hanya satu anggota tiap jenis resource, maka terjadi deadlock. • Jika terdapat beberapa anggota pada satu jenis resource, maka kemungkinan terjadi deadlock.

Metode Penanganan Deadlock • Menjamin bahwa sistem tidak pernah memasuki deadlock state. • Mengijinkan

Metode Penanganan Deadlock • Menjamin bahwa sistem tidak pernah memasuki deadlock state. • Mengijinkan sistem memasuki deadlock state dan kemudian dilakukan perbaikan. • Mengabaikan permasalahan deadlock dan menganggap deadlock tidak pernah terjadi dalam sistem; digunakan sebagian besar sistem operasi, termasuk UNIX.

Pencegahan Deadlock

Pencegahan Deadlock

Pencegahan Deadlock Mencegah dari kemungkinan 4 karakteristik deadlock. u. Mutual Exclusion – tidak tersedia

Pencegahan Deadlock Mencegah dari kemungkinan 4 karakteristik deadlock. u. Mutual Exclusion – tidak tersedia resource yang dapat digunakan bersama-sama; semua proses membawa resource yang tidak dapat digunakan bersama-sama. → tidak dapat dicegah u. Hold and Wait – harus menjamin bahwa ketika sebuah proses meminta resource, proses tersebut tidak sedang membawa resource u. Sebelum eksekusi proses perlu meminta dan dialokasikan semua resource, atau memperbolehkan proses meminta resource hanya jika proses tidak membawa resource u. Utilitas resource menjadi rendah; kemungkinan starvation

Pencegahan Deadlock (lanj. ) • No Preemption– u Jika sebuah proses membawa beberapa resource

Pencegahan Deadlock (lanj. ) • No Preemption– u Jika sebuah proses membawa beberapa resource dan meminta resource lain yang tidak dapat segera dipenuhi, maka semua resource yang sedang dibawa proses tersebut harus dibebaskan u Resource yang dapat ditunda (preempt resource) ditambahkan ke daftar resource untuk proses yang menunggu u Proses akan di-restart ketika proses hanya mendapatkan kembali resource lama setelah meminta resource baru. • Circular Wait–memberlakukan pemesanan terlebih dahulu untuk total jenis resource yang dibutuhkan dan setiap proses meminta resource sesuai urutan nomor.

Pengabaian Deadlock Sistem harus mempunyai tambahan ketersediaan informasi sebelumnya • Model yangsangat sederhana dan

Pengabaian Deadlock Sistem harus mempunyai tambahan ketersediaan informasi sebelumnya • Model yangsangat sederhana dan sangat berguna. Setiap proses perlu mendeklarasikan jumlah maksimal setiap jenis resource yang dibutuhkan. • Algoritma deadlock-avoidance secara dinamis menguji state dari resource-allocation untuk menjamin tidak pernah terjadi kondisi circular-wait. • State dari resource-allocation ditentukan dengan jumlah resource yang tersedia dan yang dialokasikan dan jumlah maksimal kebutuhan dari proses.

Safe State (state aman) • Jika sebuah proses meminta resource yang tersedia, sistem harus

Safe State (state aman) • Jika sebuah proses meminta resource yang tersedia, sistem harus memutuskan apakah alokasi tersebut menyebabkan sistem masih dalamsafe state. • Sistem dalam safe state jika semua proses dalam kondisi aman. • Sekumpulan proses <P 1, P 2, …, Pn> dikatakan aman jika untuk setiap. Pi, resource yang diminta Pi masih dapat dipenuhi dengan resource yang tersedia dan resource yang dibawa oleh semua. Pj, dimana j<i. • Jika resource yang diperlukan Pi tidak segera tersedia, maka Pi dapatmenunggusampaisemua P selesai • Jika Pj selesai, Pi dapat memperoleh resource yang diperlukan, mengeksekusinya, menghasilkan nilai dari resource yang dialokasikan dan terminasi. • Jika Pi diterminasi, Pi+1 dapat memperoleh resource yang diperlukan dan seterusnya.

Fakta Dasar • Jika sistem dalam state aman → tidak terjadi deadlock. • Jika

Fakta Dasar • Jika sistem dalam state aman → tidak terjadi deadlock. • Jika sistem dalam state tidak aman → kemungkinan terjadi deadlock. • Pengabaian → menjamin sistem tidak pernah masuk ke state tidak aman.

Safe, Unsafe , Deadlock State

Safe, Unsafe , Deadlock State

Algoritma Resource-Allocation Graph • Claim edge Pi → Rj mengindikasikan bahwa proses Pj kemungkinan

Algoritma Resource-Allocation Graph • Claim edge Pi → Rj mengindikasikan bahwa proses Pj kemungkinan meminta resource Rj; direpresentasikan dengan garis putus-putus. • Claim edge berubah menjadi request edge jika proses meminta resource. • Jika suatu resource dibebaskan oleh proses, assignment edge berubah menjadi claim edge. • Resource harus ditentukan sebelumnya dalam sistem

Resource-Allocation Graph untuk Pengabaian Deadlock

Resource-Allocation Graph untuk Pengabaian Deadlock

Unsafe State pada Resource-Allocation Graph

Unsafe State pada Resource-Allocation Graph

Algoritma Banker • Untuk banyak anggota resource dalam satu jenis resource (Multiple instances). •

Algoritma Banker • Untuk banyak anggota resource dalam satu jenis resource (Multiple instances). • Setiap proses harus ditentukan sebelumnya penggunaan maksimum. • Jika sebuah proses meminta resource maka proses harus menunggu. • Jika sebuah proses mendapatkan semua resource maka harus dikembalikan dalam suatu batasan waktu.

Struktur Data untuk Algoritma Banker Misalnya n= jumlah proses, dan m = jumlah jenis

Struktur Data untuk Algoritma Banker Misalnya n= jumlah proses, dan m = jumlah jenis resource. • Available: vektor panjang m. jika available[j] = k, terdapat K anggota dari jenis resource Rj tersedia. • Max: matriks n x m. Jika Max [i, j] = k, maka proses Pi mungkin meminta paling banyak k anggota dari jenis resource Rj • Allocation: matriks n xm. Jika Allocation[i, j] = kmaka. Pi sedang dialokasikan kanggota dari Rj. • Need: matriks n xm. Jika Need[i, j] =k, maka. Pi mungkin memerlukan kanggota dari Rj untuk menyelesaikan task/pekerjaan. Need[i, j] = Max[i, j] –Allocation[i, j]. .

Algoritma Safety 1. Misalnya Work dan Finishadalah vektor dengan panjang masing-masing m dan n.

Algoritma Safety 1. Misalnya Work dan Finishadalah vektor dengan panjang masing-masing m dan n. Inisialisasi: Work = Available Finish[i]=false untuki -13 n Finish [i] =false untuki -1, 3, …, n. 2. Cari dan i sebagai berikut: (a) Finish[i] = false (b) Needi � Work Jika tidak ada i yang memenuhi, ke langkah 4. 3. Work= Work + Allocationi Finish[i] =true ke langkah 2. 4. Jika Finish[i] == true untuk semua i, maka sistem dalam • safe state.

Algoritma Resource-Request untuk Proses Pi Request= vektor untuk meminta proses Pi. Jika Requesti [j]

Algoritma Resource-Request untuk Proses Pi Request= vektor untuk meminta proses Pi. Jika Requesti [j] = kmaka proses Pi menginginkan kanggota dari jenis resource Rj. 1. Jika. Requesti ≤ Needi ke langkah 2. Lainnya, terjadi kondisi error, karena proses meminta resource melebihi maksimum. 2. Jika Requesti ≤ Available, ke langkah 3. Lainnya, Pi harus menunggu, karena resource tidak tersedia. 3. Melakukan alokasi resource yang diminta ke Pi dengan memodifikasi state sebagai berikut: Available= Available -Requesti; Allocationi = Allocationi + Requesti; Needi =Needi –Requesi; • Jika safe → resource dialokasikan ke Pi. • Jika unsafe → Pi harus menunggu dan state resourceallocation yang lama harus disimpan

Contoh Algoritma Banker • 5 proses P 0 sampai dengan P 4; 3 jenis

Contoh Algoritma Banker • 5 proses P 0 sampai dengan P 4; 3 jenis resource A(10 anggota), B(5 anggota) dan C(7 anggota). • Snapshot pada waktu. T:

Contoh Algoritma Banker (lanj. ) • Isi dari matrik Need didefinisikan Max – Allocation

Contoh Algoritma Banker (lanj. ) • Isi dari matrik Need didefinisikan Max – Allocation • Sistem dalam safe state jika < P 1, P 3, P 4, P 2, P 0> memenuhi j 1 3 4 2 0 kriteria algoritma safety.

Contoh: P 1 Meminta (1, 0, 2) • Cek apakah Request ≤ Available (apakah,

Contoh: P 1 Meminta (1, 0, 2) • Cek apakah Request ≤ Available (apakah, (1, 0, 2) ≤ (3, 3, 2) → true) Eksekusi algoritma safety menunjukkan bahwa < P 1, P 3, P 4, P 0, P 2 > memenuhi kriteria safety. • Apakah permintaan (3, 3, 0) oleh P 4 dapat dipenuhi? • Apakah permintaan (0, 2, 0) oleh P 0 dapat dipenuhi?

Pendeteksian Deadlock

Pendeteksian Deadlock

Pendeteksian Deadlock • Mengijinkan sistem memasuki deadlock state • Algoritma deteksi • Skema perbaikan

Pendeteksian Deadlock • Mengijinkan sistem memasuki deadlock state • Algoritma deteksi • Skema perbaikan

Satu Anggota untuk Setiap Jenis Resource • Menggunakan graf wait-for • Node (titik) adalah

Satu Anggota untuk Setiap Jenis Resource • Menggunakan graf wait-for • Node (titik) adalah proses-proses. • P Pjika Pmenunggu. P �Pi �Pj jika Pi menunggu Pj • Secara periodik menjalankan algoritma yang mencari siklus pada graf. • Algoritma untuk mendeteksi siklus dalam suatu graf membutuhkan operasi sebesarn 2 , dimana nadalah jumlah vertek dalam graf

Resource-Allocation Graph dan Wait-for Graph

Resource-Allocation Graph dan Wait-for Graph

Beberapa Anggota untuk Setiap Jenis Resource • Available: vektor panjang mmengindikasikan jumlah resource yang

Beberapa Anggota untuk Setiap Jenis Resource • Available: vektor panjang mmengindikasikan jumlah resource yang tersedia untuk setiap jenis resource. • Allocation: matriks n xmmendefinisikan jumlah resource dari setiap jenis resource yang sedang dialokasikan untuk setiap proses. • Request: matriks n xmmengindikasikan permintaan saat ini dari setiap proses. Jika. Request[ij]=k, maka saat ini dari setiap proses. Jika Request [ij] k, maka proses. Pi sedang meminta anggotaklebih banyak untuk jenis resource Rj

Algoritma Deteksi • Misalnya Work dan Finishadalah vektor panjang m dan n, diinisialisasi :

Algoritma Deteksi • Misalnya Work dan Finishadalah vektor panjang m dan n, diinisialisasi : • Work= Available • For i = 1, 2, …, n, jika. Allocationi ≠ 0, maka Finish[i] = false; lainnya, Finish[i] = true. • Temukan indeksi yang memenuhi 2 hal di bawah ini: • Finish[i] == false • Requesti ≤ Work Jika tidak adai yang memenuhi, ke langkah 4. • Work= Work+ Allocationi Finish[i] = true ke langkah 2. • Jika. Finish[i] == false, untuk beberapa i, 1 ≤ i ≤ n, maka sistem dalam deadlock state. Sehingga, jika. Finish[i] == false, maka Pi deadlock. Algoritma memerlukan operasi sebanyak O(m xn) untuk mendeteksi apakah sistem dalam deadlock state.

Contoh Algoritma Deteksi • 5 proses yaitu P 0 s/d P 4; 3 jenis

Contoh Algoritma Deteksi • 5 proses yaitu P 0 s/d P 4; 3 jenis resource A (7 anggota), B (2 anggota), dan C(6 anggota). • Snapshot pada waktu. T: �Snapshot pada waktu T 0: Urutan <P 0, P 2, P 3, P 1, P 4> akan menghasilkan Finish[i] =true untuk semua i.

Contoh Algoritma Deteksi (lanj. ) • P 2 meminta tambahan anggota jenis C. •

Contoh Algoritma Deteksi (lanj. ) • P 2 meminta tambahan anggota jenis C. • State dari sistem ? Apakah resource yang dibawa proses P 0 dapat di-klaim? Tapi resource menjadi tidak mencukupi untuk memenuhi permintaan proses-proses yang lain. Terjadi deadlock, terdiri dari proses P 1, P 2, P 3, dan P 4

Penggunaan Algoritma Deteksi • • • Kapan dan berapa sering, sangat tergantung pada: Berapa

Penggunaan Algoritma Deteksi • • • Kapan dan berapa sering, sangat tergantung pada: Berapa sering deadlock yang sama terjadi? Berapa banyak proses yang perlu di roll back? �Berapa banyak proses yang perlu di roll back? Satu untuk setiap siklus disjoint Jika algoritma deteksi dipanggil secara sewenang, mungkin ada banyak siklus dalam resource graph sehingga kita tidak akan bisa membedakan mana dari banyak proses deadlock yang "menyebabkan" deadlock.

Perbaikan dari Deadlock

Perbaikan dari Deadlock

Perbaikan dari Deadlock: Menghentikan Proses • • • Menghentikan semua proses yang deadlock. •

Perbaikan dari Deadlock: Menghentikan Proses • • • Menghentikan semua proses yang deadlock. • • Bagaimana urutan pemilihan proses yang dihentikan? Menghentikan satu demi satu proses pada satu waktu sampai siklus deadlock dieliminasi. Prioritas proses Berapa lama proses berjalan dan berapa lama lagi selesai Resource dari proses yang digunakan Resource dari proses yangharus dipenuhi Berapa proses yang perlu dihentikan Apakah proses interaktif atau batch?

Perbaikan dari Deadlock: Resource Preemption • Pilih korban – cost minimal. • Rollback kembali

Perbaikan dari Deadlock: Resource Preemption • Pilih korban – cost minimal. • Rollback kembali ke beberapa safe state restart proses pada state tersebut. • Starvation – proses yang dipilih sebagai korban sela sama, termasuk jumlah rollback menjadi faktor cost.

Pendekatan Kombinasi untuk Penanganan Deadlock • Kombinasi 3 pendekatan dasar • Pencegahan (prevention) •

Pendekatan Kombinasi untuk Penanganan Deadlock • Kombinasi 3 pendekatan dasar • Pencegahan (prevention) • Pengabaian (avoidance) �Pengabaian (avoidance) • Pendeteksian (detection) • Memungkinkan menggunakan pendekatan optimal untuk setiap resource dalam sistem. • Melakukan partisi resource dalam kelompok pemesanan secara hierarki. • Menggunakan teknik yang tepat untuk menangai deadlock dalam setiap kelompok.

Deadlock pada Trafik

Deadlock pada Trafik

Terima Kasih

Terima Kasih