Deadlock Edi Sugiarto S Kom Pendahuluan Proses dikatakan

  • Slides: 26
Download presentation
Deadlock Edi Sugiarto, S. Kom

Deadlock Edi Sugiarto, S. Kom

Pendahuluan �Proses dikatakan deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah

Pendahuluan �Proses dikatakan deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. �Semua deadlock yang terjadi melibatkan persaingan untuk mendapatkan sumber daya eksklusif oleh dua proses atau lebih. �Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh dua proses

Model Deadlock �Urutan kejadian perangkat M/K adl : ◦ Meminta (request) : meminta layanan

Model Deadlock �Urutan kejadian perangkat M/K adl : ◦ Meminta (request) : meminta layanan perangkat M/K. ◦ Memakai (use) : memakai perangkat M/K ◦ Melepaskan (release) : melepaskan pemakaian perangkat M/K

�Model permintaan dan alokasi 2 proses dan 2 sumber daya digambarkan sbb : P

�Model permintaan dan alokasi 2 proses dan 2 sumber daya digambarkan sbb : P 0 R 1 R 0 P 1

�Model deadlock dan alokasi 2 proses dan 2 sumber daya digambarkan sbb : P

�Model deadlock dan alokasi 2 proses dan 2 sumber daya digambarkan sbb : P 0 R 1 R 0 P 1

Syarat terjadinya deadlock �Coffman, et al. [cof-71] menyatakan empat syarat terjadinya deadlock : ◦

Syarat terjadinya deadlock �Coffman, et al. [cof-71] menyatakan empat syarat terjadinya deadlock : ◦ Mutual exclusion �Sumber daya saat itu diberikan pada tepat satu proses ◦ Hold and wait condition �Proses menggunakan dan menunggu sumber daya baru ◦ Non preemption condition �Sumber daya yg diberikan tidak dpt diambil alih dari proses yg menggunakan / menggam ◦ Circular wait condition �Pada rantai sirkuler, dua atau lebih proses saling menunggu sumber daya yang digenggam proses lain pada rantai tsb

Metode Mengatasi Deadlock �Beragam metode mengatasi deadlock dapat dikelompokkan menjadi tiga, yakni : ◦

Metode Mengatasi Deadlock �Beragam metode mengatasi deadlock dapat dikelompokkan menjadi tiga, yakni : ◦ Metode pencegahan terjadinya deadlock (deadlock prevention) ◦ Metode penghindaran terjadinya deadlock (deadlock avoidance) ◦ Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery)

Pencegahan Deadlock �Havender[HAV-68] mengemukakan jika beberapa syarat dari empat syarat terjadinya deadlock tidak terpenuhi

Pencegahan Deadlock �Havender[HAV-68] mengemukakan jika beberapa syarat dari empat syarat terjadinya deadlock tidak terpenuhi maka tidak akan terjadi deadlock. �Havender menyarankan strategi-strategi untuk meniadakan syarat-syarat sbb : ◦ Proses harus meminta semua sumber daya sekaligus dan tidak berlanjut hingga semua diberikan. ◦ Proses yg memegang sumber daya harus melepas sumber daya tsb jika akan menggunakan sumber daya lain. ◦ Memberikan pengurutan linear terhadap tipe-tipe sumber daya pada semua proses

�Meniadakan Mutual Exclusion ◦ Penyebab deadlock salah satunya adalah terdapatnya pengaksesan secara eksklusif thd

�Meniadakan Mutual Exclusion ◦ Penyebab deadlock salah satunya adalah terdapatnya pengaksesan secara eksklusif thd sumber daya. ◦ Jika tidak ada sumber daya eksklusif untuk satu proses tunggal maka tidak akan terjadi deadlock ◦ Cara lain adalah melakukan spooling �Masalah dlm teknik ini ◦ Tdk semua sumber daya eksklusif dapat di spooling ◦ Mutex tidak lagi tdp di level perangkat namun terjadi pada level lokasi memori.

�Meniadakan syarat hold and wait ◦ Dapat dilakukan dengan cara �Mengalokasikan semua sumber daya

�Meniadakan syarat hold and wait ◦ Dapat dilakukan dengan cara �Mengalokasikan semua sumber daya atau tidak sama sekali �Hold and release ◦ Masalah yang dihadapi �Sukar mengetahui lebih dahulu sumber daya yg dibutuhkan suatu proses �Cara ini mengakibatkan penggunaan sumber daya tidak efisien

�Meniadakan Non-Preemptive ◦ Meniadakan non-preemptive artinya mencegah proses-proses lain harus menunggu. �Masalah yang ditimbulkan

�Meniadakan Non-Preemptive ◦ Meniadakan non-preemptive artinya mencegah proses-proses lain harus menunggu. �Masalah yang ditimbulkan ◦ Tidak mungkin meniadakan non-preemptive sebagai contoh : saat proses A menulis ke printer, tiba 2 dihentikan oleh proses B yang juga menulis ke printer yang sama. Jika kondisi preemptive dimungkinkan maka kedua proses akan mencetak dengan tidak benar.

�Meniadakan Circular Wait Condition ◦ Kondisi ini dapat ditiadakan dengan bermacam cara, antaralain :

�Meniadakan Circular Wait Condition ◦ Kondisi ini dapat ditiadakan dengan bermacam cara, antaralain : �Proses hanya dapat menggam satu sumber daya dalam satu saat. �Penomoran global semua sumber daya �Masalah ◦ Tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak

Penghindaran Deadlock � Gagasan utama penghindaran deadlock adalah memberi akses ke sumber daya yang

Penghindaran Deadlock � Gagasan utama penghindaran deadlock adalah memberi akses ke sumber daya yang tidak mungkin menimbulkan deadlock � Biasanya strategi ini diimplementasikan dengan pengalokasian sumber daya dan memeriksa dampak pemberian akses ke suatu proses. � Strategi penghindaran deadlock mengharuskan semua proses menyatakan jumlah kebutuhan sumber daya maksimum sebelum dieksekusi. � Untuk menghindari deadlock diperlukan pengertian mengenai state selamat (safe state) dan state tak selamat (unsafe state)

State Selamat dan State Tak Selamat �State selamat (safe state) ◦ State dikatakan selamat

State Selamat dan State Tak Selamat �State selamat (safe state) ◦ State dikatakan selamat jika tidak deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa terjadi deadlock. ◦ Contoh : �terdapat 10 sumber daya setipe, proses A memerlukan maksimal 10, sedangkan saat ini menggam 2 sumber daya. Proses B memerlukan sumber daya maksimal 3, dan saat ini menggam 1 sumber daya. Proses C memerlukan sumber daya maksimum sebanyak 7 sedang saat ini menggam 3 sumber daya. Masih tersedia 4 sumber daya

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 3 7 Tersedia : 4 Langkah 1 : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 7 7 Tersedia : 0

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 0 Tersedia : 7 Langkah 2 : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 3 3 C 0 Tersedia : 5

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 0

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 0 - C 0 Tersedia : 8 Langkah 3 : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 10 10 B 0 - C 0 Tersedia : 0

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 0 - B 0

Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 0 - B 0 - C 0 Tersedia : 0

 State Tak Selamat (unsafe state) ◦ State dinyatakan sebagai state tak selamat (unsafe

State Tak Selamat (unsafe state) ◦ State dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. ◦ Contoh : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 3 7 Tersedia : 4 Gambar diatas menunjukkan state selamat, namun state ini dapat berubah menjadi state tdk selamat bila alokasi sumber daya tidak terkendali.

Maka state menjadi : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A

Maka state menjadi : Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 4 10 B 3 3 C 3 7 Tersedia : 0 Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 4 10 B 0 - C 3 7 Tersedia : 3 Saat ini hanya tersedia tiga sumber daya sementara dua proses yang sedang aktif masing-masing membutuhkan enam dan empat sumber daya

Deteksi dan Pemulihan Deadlock �Deteksi adanya Deadlock ◦ Deteksi deadlock adalah teknik untuk menentukan

Deteksi dan Pemulihan Deadlock �Deteksi adanya Deadlock ◦ Deteksi deadlock adalah teknik untuk menentukan apakah deadlock terjadi serta mengidentifikasi proses-proses dan sumber daya-sumber daya yang terlibat deadlock. ◦ Umumnya algoritma deteksi yang digunakan adalah menentukan keberadaan circular wait.

�Pemulihan dari Deadlock ◦ Begitu sistem terdapat deadlock, deadlock harus diputuskan dengan menghilangkan satu

�Pemulihan dari Deadlock ◦ Begitu sistem terdapat deadlock, deadlock harus diputuskan dengan menghilangkan satu syarat atau lebih. ◦ Biasanya beberapa proses akan kehilangan sebagian atau semua kerja yang telah dilakukan. ◦ Hal tsb merupakan ongkos yang harus dibayar dibanding terjadinya deadlock.

�Pemulihan dari deadlock dirumitkan oleh faktor-faktor berikut : ◦ Belum tentu dapat menentukan adanya

�Pemulihan dari deadlock dirumitkan oleh faktor-faktor berikut : ◦ Belum tentu dapat menentukan adanya deadlock secepatnya. ◦ Kebanyakan sistem memiliki fasilitas buruk untuk men-suspend proses, menghilangkan dari sistem dan me-resume proses di lain waktu. ◦ Jikapun terdapat kemampuan suspend dan resume yang efektif. Kemampuan ini melibatkan sejumlah overhead.

� Pendekatan berikut dapat digunakan untuk pemulihan deadlock [STA-95] : 1. Abaikan semua proses

� Pendekatan berikut dapat digunakan untuk pemulihan deadlock [STA-95] : 1. Abaikan semua proses yang terlibat deadlock 2. Back-up semua proses yang terlibat deadlock ke suatu checkpoint yang didefinisikan sebelumnya (rollback dan restart). 3. Secara berurutan abaikan (singkirkan) proses hingga deadlock tidak ada lagi 4. Secara berurutan preempt sumber daya-sumber daya sampai tidak ada deadlock lagi.

Strategi Penanggulangan Deadlock Terpadu Prinsip Kebijaksanaan alokasi sumber daya Skema-skema Keunggulan utama Kelemahan utama

Strategi Penanggulangan Deadlock Terpadu Prinsip Kebijaksanaan alokasi sumber daya Skema-skema Keunggulan utama Kelemahan utama Pencegahan Konservatif, Menurunkan efisiensi sumber daya Meminta semua sumber daya sekaligus • baik untuk proses yang melakukan satu aktifitas tunggal • tidak perlu preemption • tidak efisien • memerlukan waktu tunda inisialisasi proses Preemption • cocok ketika diterpaan ke sumber daya yang statenya dapat disimpan dikembalikan dengan mudah • pereempt akan terjadi lebih sering daripada yang diperlukan • dapat menjadi restart siklus Pengurutan sumber daya • layak dipaksakan lewat pemeriksaan saat kompilasi • tidak perlu komputasi saat berjalan karena masalah diselesaikan sewaktu perancangan sistem • preempt tanpa banyak penggunaan • tak mengjinkan permintaan sumber daya yang meningkat Deteksi Lebih bebas, sumber daya yang diminta diberikan bila mungkin Dijalankan secara periodik • Tak pernah terdapat waktu tunda inisialisasi proses • memberi fasilitas penanganan online Kehilangan preempt yang Inheren penghindaran Memilih jalan tengah antara deteksi dan pencegahan Memanipulasi untuk menemukan pada setidaknya satu jalur selamat • Tidak memerlukan preemption • Kebutuhan sumber daya masa datang harus diketahui • proses-proses dapat diblock untuk periode yang lama

�Pada tabel diatas Isloor[ISL-80] memperlihatkan keunggulan dan kelemahan skema penanggulangan deadlock. �Silberschatz [SIL-94] menyarankan

�Pada tabel diatas Isloor[ISL-80] memperlihatkan keunggulan dan kelemahan skema penanggulangan deadlock. �Silberschatz [SIL-94] menyarankan satu pendekatan terpadu yaitu : ◦ Kelompokkan sumber daya-sumber daya menjadi sejumlah kelas sumber daya ◦ Gunakan strategi pengurutan linear untuk mencegah deadlock diantara kelas-kelas sumber daya yang berbeda. ◦ Dalam satu kelas sumber daya, gunakan algoritma yang paling cocok untuk kelas-kelas sumber daya itu.