Deadlock Objektif q Memahami tentang konsep deadlock q
Deadlock
Objektif q Memahami tentang konsep deadlock q Model deadlock q Metode mengatasi deadlock Metode pencegahan deadlock q Penghindaran deadlock q Deteksi dan pemulihan deadlock q
Konsep deadlock q Deadlock adalah jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi. q 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. q Proses menunggu kejadian yang tak akan pernah terjadi.
Konsep Deadlock q Urutan kejadian pengoperasian masukan / keluaran : meminta (request) : meminta pelayanan perangkat masukan/keluaran q memakai (use) : memakai perangkat masukan / keluaran q melepaskan (release) : melepaskan pemakaian perangkat masukan/keluaran q
Model Deadlock q Model q Misal deadlock 2 proses dan 2 sumber daya : 2 proses P 0 dan P 1 q 2 sumber daya R 0 dan R 1 q q P 0 meminta sumberdaya R 0. Sumber daya R 1 dialokasikan ke P 1.
Model Deadlock q Skenario yang menimbulkan deadlock : P 0 dialokasikan R 0 q P 1 dialokasikan R 1 q Kemudian q P 0 sambil masih menggam R 0, meminta R 1 q P 1 sambil masih menggam R 1, meminta R 0 q
Model Deadlock q Terjadi deadlock karena sama-sama akan saling menunggu. Terjadinya deadlock ditandai munculnya graph melingkar. q Deadlock dapat terjadi dengan melibatkan lebih dari 2 proses dan 2 sumber daya.
Model Deadlock q Syarat 1. 2. 3. 4. terjadinya deadlock : mutual exclusion (mutual exclusion conditional) Kondisi genggam dan tunggu (hold and wait) Kondisi non-preemption Kondisi menunggu secara sirkuler (circular wait condition)
Model Deadlock q Terjadi deadlock bila terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu belum berarti terjadi deadlock. q Deadlock q Kondisi benar-benar terjadi bila syarat keempat terpenuhi keempat merupakan keharusan bagi terjadinya deadlock. q Deadlock bisa terjadi pada saat proses akan mengakses objek seperti file, device, dll secara tidak semestinya. Objek tersebut dinamakan resource.
Model Deadlock q Jenis q preemtable resource : q q resource : resource yang dapat diambil dan dilepas dari proses yang sedang memakainya tanpa memberikan efek apapun pada proses tersebut. Non-preemtable resource tidak dapat diambil dari proses yang sedang membawanya, karena akan mengakibatkan kegagalan komputasi, q contoh : printer, bila suatu proses sedang menggunakan printer untuk mencetak, maka proses lain tidak dapat menggunakan printer tersebut. q
Metode Mengatasi Deadlock q Metode pencegahan deadlock : • Tiap proses harus meminta semua sumber daya yang diperlukan secara sekaligus dan tidak berlanjut sampai semuanya diberikan. • Jika proses sedang memegang sumberdaya tertentu, untuk permintaan berikutnya proses harus melepas dulu sumberdaya yang dipegangnya. • Beri pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses telah dialokasikan suatu tipe sumber daya, proses hanya boleh meminta tipe sumber daya pada urutan berikutnya.
Metode Mengatasi Deadlock q Penghindaran q deadlock Menghindari deadlock dengan cara hanya memberi akses ke permintaan sumber daya yang tidak mungkin menimbulkan deadlock. jika pemberian akses sumber daya tidak mungkin menuju deadlock, sumber daya diberikan ke peminta. q Jika tidak aman (memungkinkan timbulnya deadlock), proses yang meminta di suspend sampai suatu waktu permintaannya aman diberikan. Kondisi ini biasanya terjadi setelah 1 sumber daya / lebih yang semula dipegang oleh proses-proses aktif lain dilepaskan. q
Metode Mengatasi Deadlock q State q selamat (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. q Contoh : Sistem dengan 10 sumber daya setipe, proses A memerlukan sumber daya maksimum sebanyak 10, sedang saat ini menggam 2 sumber daya. proses B memerlukan sumber daya maksimum sebanyak 3, sedang 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
Metode Mengatasi Deadlock q Tabel q State dinyatakan selamat (safe) karena terdapat barisan pengalokasian yang dapat memungkinkan semua proses selesai. q Dengan penjadwalan secara hati-hati, sistem dapat terhindarkan dari deadlock. q Barisan tersebut adalah
Metode Mengatasi Deadlock q Langkah 1: q Alokasikan semua sumberdaya ke proses C, tunggu sampai proses C selesai. q Setelah proses C selesai menjadi :
Metode Mengatasi Deadlock q Langkah 2: q Alokasikan 2 sumberdaya ke proses B, tunggu sampai proses B selesai. q Setelah proses B selesai menjadi :
Metode Mengatasi Deadlock q Langkah 3: q Alokasikan 8 sumberdaya ke proses A, tunggu sampai proses A selesai. q Setelah proses A selesai menjadi : q Ketiga proses tersebut dengan penjadwalan yang hati-hati dapat menyelesaikan proses mereka dengan sempurna.
Metode Mengatasi Deadlock q State q tak selamat (unsafe state) Terjadi jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. q Contoh q State dibawah ini sama dengan state selamat sebelumnya, tapi dapat berubah menjadi state tak selamat bila alokasi sumber daya tak terkendali.
Metode Mengatasi Deadlock q Dari q State kasus yang sama : berubah menjadi tak selamat bila 2 permintaan sumber daya oleh proses A dilayani kemudian permintaan 1 sumber daya oleh proses B dilayani. Maka state menjadi :
Metode Mengatasi Deadlock q Alokasikan 1 sumberdaya ke proses B, tunggu sampai proses B selesai. q Setelah proses B selesai menjadi : q Sumber daya yang tersedia tinggal 3 sedangkan 2 proses yang sedang aktif masing-masing membutuhkan 6 dan 4 sumber daya. State tak selamat bukan berarti deadlock, tetapi state tersebut berkemungkinan menuju deadlock. q
Metode Mengatasi Deadlock q Deteksi dan pemulihan deadlock q Deteksi deadlock adalah teknik untuk menentukan apakah deadlock terjadi serta mengidentifikasi proses-proses dan sumberdaya yang terlibat deadlock q Periode yang biasa dilakukan adalah memonitor permintaan dan pelepasan sumber daya. q Teknik pemulihan yang biasa digunakan adalah menghilangkan (suspend / kill) proses-proses dari sistem dan pengklaiman kembali sumberdaya yang dipegang proses-proses tersebut.
Metode Mengatasi Deadlock q Pendekatan-pendekatan berikut dapat dilakukan untuk pemulihan deadlock : singkirkan semua proses yang terlibat deadlock q backup semua proses yang terlibat deadlock ke suatu check point yang didefinisikan sebelumnya dan jalankan kembali proses itu. q secara berurutan abaikan proses-proses sampai deadlock tidak terjadi lagi. Urutan proses yang dipilih untuk disingkirkan berdasar kriteria ongkos minimum. q secara berurutan preempt sumberdaya-sumberdaya sampai tidak ada deadlock lagi. Proses yang kehilangan sumber daya karena preemption harus dikembalikan (roll-back) ke titik sebelum memperoleh sumber daya. q
Metode Mengatasi Deadlock q Kriteria pemilihan proses yang akan disingkirkan (suspend/kill) : waktu pemrosesan yang dijalankan paling kecil q jumlah baris keluaran yang diproduksi paling kecil q mempunyai estimasi sisa waktu eksekusi terbesar q jumlah total sumber daya terkecil yang telah dialokasikan q prioritas terkecil. q q Dalam penyingkiran proses, sistem harus mengembalikan berkas yang telah dimodifikasi oleh proses-proses yang disingkirkan ke keadaan asli karena berpengaruh terhadap konsistensi data sistem itu.
Terima Kasih
- Slides: 24