Terminasi Proses Menyela Penggunaan Sumber daya

3.3 Pemulihan dari Deadlock

3.3.1 Terminasi Proses

Untuk melakukan terminasi proses, terdapat dua metode. Pada kedua metode ini, sistem akan mengambil kembali seluruh sumber daya yang sedang dipegang oleh proses yang diterminasi. 1. Menghentikan seluruh proses yang mengalami deadlock. Metode ini akan memecahkan siklus deadlock, tetapi memiliki cost kerugian yang cukup besar. Ada kemungkinan bahwa proses yang dihentikan merupakan proses yang telah dikomputasi untuk waktu lama sehingga ketika proses dihentikan, hasil komputasi tersebut menjadi hilang. 2. Menghentikan proses satu per satu sampai siklus deadlock terpecahkan. Metode ini memerlukan waktu overhead tambahan yang cukup lama karena setiap kali proses dihentikan, algoritma deteksi harus dipanggil untuk menentukan apakah masih ada siklus yang menyebabkan deadlock.

3.3.2 Menyela Penggunaan Sumber daya

Untuk memulihkan sistem dari deadlock, maka sumber daya-sumber daya yang sedang dipegang oleh proses-proses yang mengalami deadlock akan disela, dan diberikan pada proses lain. Tiga hal ini yang harus dipertimbangkan untuk menyela penggunaan sumber daya: 1. Pemilihan Sumber daya Urutan sumber daya yang akan disela harus dipilih untuk meminimalkan cost kerugian. Faktor yang mempengaruhi cost kerugian antara lain adalah jumlah sumber daya yang dimiliki proses dan lamanya proses telah berjalan. 2. Eksekusi kembali rollback Universitas Sumatera Utara Bila sumber daya disela dari proses, maka proses tidak dapat melanjutkan eksekusinya. Proses harus dikembalikan ke keadaan aman terakhirnya, dan dijalankan kembali dari keadaan tersebut. Untuk itu sistem harus mempertahankan informasi mengenai keadaan setiap proses. Karena tidak mudah untuk menentukan letak keadaan aman, maka solusi yang paling mudah adalah dengan menjalankan kembali proses dari awal. 3. Starvasi Bila pemilihan sumber daya yang akan disela hanya didasarkan pada cost kerugian, maka proses dengan prioritas rendah dapat terus-menerus mengalami penyelaan. Untuk mengatasi masalah ini, setiap proses harus dibatasi supaya hanya dapat disela sejumlah tertentu saja. Untuk itu, maka jumlah eksekusi kembali rollback harus disertakan sebagai faktor untuk menghitung cost kerugian proses. Setelah deadlock terdeteksi, maka diperlukan beberapa strategi untuk keperluan pemulihan. Pendekatan-pendekatan yang diterapkan dan berdasarkan peningkatan kecanggihannya: 1. Gagalkan semua proses yang ber-deadlock. Pendekatan ini, merupakan salah satu solusi yang paling umum digunakan. 2. Buatlah back-up proses ber-deadlock ke checkpoint yang telah ditetapkan sebelumnya, dan mulailah lagi semua proses. 3. Batalkan proses-proses ber-deadlock secara berurutan sampai deadlock tidak ada lagi. Urutan pemilihan proses untuk pembatalan harus didasarkan pada berbagai kriteria yang berisiko terkecil. Setiap kali pembatalan dilakukan, algoritma deteksi harus dilakukan untuk mengetahui apakah deadlock masih ada atau tuidak. 4. Melakukan Preemption sumber daya secara berurutan sampai deadlock tidak ada lagi. Seperti pada pendekatan tiga, perlu digunakan pemilihan berdasarkan risiko, dan pemanggilan algoritma deteksi setelah setiap kali preemption diperlukan. Suatu proses yang memiliki sumber daya yang diambil ahli darinya harus di rollback ke titik sebelum sumber daya itu diperoleh. Bagi pendekatan tiga dan empat, pemilihan kriteria harus merupakan salah satu dari yang disebutkan dibawah ini. Pilihlah proses yang Universitas Sumatera Utara 1. Paling sedikit menghabiskan waktu prosesor sejauh ini. 2. Paling sedikit jumlah output yang dihasilkannya sejauh ini. 3. Diperkiraan paling banyak memiliki sisa waktu. 4. Paling sedikit jumlah sumber daya yang dialokasikan sejauh ini. 5. Memiliki prioritas paling rendah. Sebagian kuantitas-kuantitas diatas lebih mudah diukur bila dibandingkan kuantitas lainnya. Waktu estimasi yang tersisa merupakan kuantitas yang paling mudah diukur. Selain ukuran prioritas, tidak ada indikasi risiko bagi pengguna sebagai kebalikan dari risiko bagi sistem secara keseluruhan.

3.4 Penghindaran Deadlock