Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Deadlock Edi Sugiarto, S.Kom.

Presentasi serupa


Presentasi berjudul: "Deadlock Edi Sugiarto, S.Kom."— Transcript presentasi:

1 Deadlock Edi Sugiarto, S.Kom

2 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

3 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

4 Model permintaan dan alokasi 2 proses dan 2 sumber daya digambarkan sbb :

5 Model deadlock dan alokasi 2 proses dan 2 sumber daya digambarkan sbb :

6 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 / menggenggam Circular wait condition Pada rantai sirkuler, dua atau lebih proses saling menunggu sumber daya yang digenggam proses lain pada rantai tsb

7 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)

8 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

9 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.

10 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

11 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, tiba2 dihentikan oleh proses B yang juga menulis ke printer yang sama. Jika kondisi preemptive dimungkinkan maka kedua proses akan mencetak dengan tidak benar.

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

13 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- 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)

14 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 menggenggam 2 sumber daya. Proses B memerlukan sumber daya maksimal 3, dan saat ini menggenggam 1 sumber daya. Proses C memerlukan sumber daya maksimum sebanyak 7 sedang saat ini menggenggam 3 sumber daya. Masih tersedia 4 sumber daya

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

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

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

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

19 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 7 Tersedia : 4 Gambar diatas menunjukkan state selamat, namun state ini dapat berubah menjadi state tdk selamat bila alokasi sumber daya tidak terkendali.

20 Maka state menjadi : Proses Jumlah sumber daya digenggam
Maksimum sumber daya dibutuhkan A 4 10 B 3 C 7 Tersedia : 0 Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 4 10 B - 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

21 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.

22 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.

23 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.

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

25 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 dan 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

26 Silberschatz [SIL-94] menyarankan satu pendekatan terpadu yaitu :
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.


Download ppt "Deadlock Edi Sugiarto, S.Kom."

Presentasi serupa


Iklan oleh Google