PENGENDALIAN DEADLOCK
Deadlock Deadlock merupakan kondisi dimana ada lebih dari satu transaksi berada dalam keadaan menunggu (waiting state) untuk melakukan akses / perubahan terhadap suatu item data yang rupanya sedang dikunci oleh transaksi lain yang juga sedang menunggu.
Deadlock ……(Cont..1) Lebih jauh dapat dikatakan ada sekumpulan transaksi yang sedang menunggu (T0, T1, ….Tn) sedemikian sehingga T0 menunggu pemakaian sebuah item data yang sedang dipegang oleh T1, dan T1 sedang menunggu pemakaian sebuah item data yang sedang dipegang oleh T2 dan seterusnya hingga Tn-1 sedang menunggu pemakaian item data yang sedang dipegang Tn, dan Tn sedang menunggu pemakaian sebuah item data yang sedang dipegang oleh T0.
Metode Dasar Mengatasi Deadlock Deadlock Prevention (Pencegahan Deadlock) Deadlock Detection and deadlock recovery (Pendeteksian deadlock dan pemulihan deadlock.
Pencegahan Deadlock Pendekatan pertama, menjamin bahwa tidak ada siklus penantian yang terjadi dengan mengantrikan permintaan penguncian, atau dengan mensyaratkan semua penguncian harus terpenuhi secara bersamaan. Pendekatan Kedua, mendekati cara pemulihan deadlock (deadlock recovery) dan membentuk pembatalan transaksi (rollback) sebagai ganti penantian penguncian, ketika penantian tersebut potensial menghasilkan kondisi deadlock.
Skema Pencegahan Deadlock Skema wait-die yang didasarkan pada teknik ketiadaan pemilikan (nonpreemption technique). Skema Wound-wait, yang didasarkan pada teknik kepemilikan (preemption technique) dan merupakan lawan dari skema wait-die.
Pendeteksian dan Pemulihan Deadlock Jika terjadi deadlock, maka sistem harus berusaha memulihkan sistem tersebut dari kondisi deadlock tersebut dengan beberapa cara sebagai berikut : 1. Memelihara cukup informasi yang berkaitan dengan alokasi data yang sedang digunakan transaksi dan juga item data yang sedang dibutuhkan oleh transaksi- transaksi tersebut.
Pendeteksian dan Pemulihan Deadlock (cont……1) 2. Menyediakan sebuah algoritma yang menggunakan informasi ini untuk menentukan apakah sistem telah berada dalam kondisi deadlock atau tidak. 3. Memulihkan sistem dari kondisi deadlock ketika algoritma tersebut dapat mendeteksi adanya deadlock.
Pendeteksian Deadlock Deadlock dapat digambarkan dengan lebih rinci dengan memanfaatkan graph yang disebut dengan Graph wait-for. Graph ini terdiri dari pasangan G = (V,E) V mewakili sekumpulan simpul E mewakili sekumpulan busur.
Pendeteksian Deadlock…cont 1 Setiap deadlock akan terjadi di dalam sistem jika dan hanya jika dalam Graph wait-for tersebut terdapat beberapa siklus. Setiap transaksi yang terlibat dalan siklus dikatakan terkena dedalock. Untuk mendeteksi deadlock, sistem perlu mengelola graph ini dan secara periodik menjalankan algoritma untuk memeriksa ada tidaknya siklus di dalam graph tersebut.
Pendeteksian Deadlock…cont 2 Untuk mengilustrasikan konsep ini, perhatikan graph berikut yang menunjukkan situasi : a. Transaksi T12 yang sedang menunggu transaksi T13 dan T14 b. Transaksi T14 yang sedang menunggu transaksi T13. c. Transaksi T13 yang sedang menunggu transaksi T15.
Ilustrasi Pendeteksian Deadlock Graph di atas tidak memiliki siklus, maka sistem tidak berada dalam kondisi deadlock T13 T15 T12 T14
Ilustrasi Pendeteksian Deadlock….. cont 1 Anggaplah sekarang transaksi T15 membutuhkan item data yang sedang dipegang oleh T14. Busur menunjukkan T15 T14 ditambahkan pada graph. Kondisinya akan mengalami perubahan, sehingga sistem yang baru terlihat pada gambar.
Ilustrasi Pendeteksian Deadlock….. cont 2 Maka pada saat ini, graph mengandung sebuah siklus T13 T15 T14 T13 yang mengakibatkan transaksi T13, T14 dan T15 mengalami kondisi deadlock. T13 T15 T12 T14
Jika deadlock sering terjadi, maka algoritma pendekteksian deadlock harus juga lebih sering diaktifkan. Item-item data yang dialokasikan untuk transaksi- transaksi yang mengalami deadlock tidak akan diperoleh oleh transaksi lain hingga kondisi deadlock teralam tersebut diatasi. Selanjutnya, jumlah siklus dalam graph tersebut bisa saja bertambah. Dalam kondisi terburuk, maka kita dapat mengaktifkan algoritma pendeteksian deadlock ini setiap kali sebuah permintaan pengalokasian data tidak dapat dipenuhi dengan segera.
Pemulihan dari Deadlock Ketika algoritma pendeteksian deadlock dapat mengetahui terjadinya deadlock, sistem harus melakukan langkah pemulihan (recovery). Solusi yang paling umum, dengan menjalankan proses rollback pada satu atau beberapa transaksi untuk lepas dari kondisi deadlock.
Pemulihan dari Deadlock cont 2 Terdapat tiga Aksi yang harus dilakukan, yaitu : 1. Pemilihan Korban 2. Rollback 3. Starvation
Tugas Simak kembali Masalah terjadinya Deadlock dengan mengacu pada pokok bahasan Deadlock yang terdapat pada Mata Kuliah Sistem Operasi. Uraikan tentang Metode-metode Penanggulangan Deadlock dan uraikan tentang Keunggulan dan Kelemahan dari masing-masing metode.