Gambar 3.3 Graph alokasi sumber daya status aman
Gambar diatas menunjukkan bahwa sistem dalaam keadaan aman. Pada saat ini R
1
sedang tidak mengalokasikan sumber dayanya, sehingga P
1
dapat memperoleh sumber daya R
1
. Tetapi jika claimed edge diubah menjadi sisi permintaan dan kemudian diubh menjadi sisi alokasi, maka
hal ini dapat menyebabkan terjadinya cycle perputaran. Jika tidak ada cycle perputaran dalam graph, maka sistem berada dalam status aman.
Tetapi jika perputaran ditemukan maka sistem berada dalam status tidak aman. Pada saat status tidak aman ini, proses P
i
harus menunggu sampai permintaan sumber dayanya dipenuhi.Gambar berikut menunjukkan bahwa sistem dalam keadaan tidak aman.
3.4 Graph alokasi sumber daya status tidak aman.
Universitas Sumatera Utara
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
Bila metode pencegahan lebih menekankan pada cara menangani permintaan sehingga keempat kondisi yang dapat menyebabkan deadlock tidak terjadi secara bersamaan, maka metode
penghindaran memerlukan informasi tambahan dari proses mengenai bagaimana sumber daya akan diminta.
Pada sistem kebanyakan permintaan terhadap sumber daya dilakukan sebanyak sekali saja. Sistem harus dapat mengetahui bahwa sumber daya itu aman atau tidak, dengan kata lain
tidak berpotensi terjadi deadlock sehingga dapat dialokasikan. Ada dua cara untuk menghindari deadlock yaitu:
1. Jangan memulai suatu proses apabila kebutuhan proses tersebut akan menyebabkan
deadlock. 2.
Jangan memberikan kesempatan pada suatu proses untuk meminta sumber daya lagi apabila alokasinya akan menyebabkan deadlock.
Jadi diadakan dua kali penjagaan agar tidak sampai terjadi deadlock, yaitu saat pengalokasian awal dan saat suatu proses meminta sumber daya. Penghindaran deadlock
dilakukan dengan cara memastikan bahwa program memiliki maksimum permintaan, sehingga sistem memastikan kondisinya dalam keadaan aman. Baik melakukan permintaan awal ataupun
saat meminta sumber daya tambahan. Sehingga saat kondisi aman, maka sistem dapat
Universitas Sumatera Utara
mengalokasikan sumber daya pada setiap proses sampai pada batas maksimumnya dengan urutan tertentu.
Pada saat sebuah proses mengajukan permintaan untuk menggunakan sumber daya yang tersedia, maka algoritma penghindaran akan bekerja dengan mendeteksi apakah alokasi yang
diberikan dapat menyebabkan sistem dalam safe state. Jika benar maka sumber daya akan dialokasikan untuk proses tersebut, tetapi jika tidak maka permintaan akan ditolak.
Sebuah sistem berada dalam keadaan safe state bila terdapat safe seqeunce dimana proses yang memerlukan sumber daya dapat ditangani. Urutan {P
1,
P
2, ...,
P
n
} adalah aman bila jumlah sumber daya yang dibutuhkan untuk setiap P
i
dapat dipenuhi oleh jumlah sumber daya yang tersedia, dan jumlah sumber daya yang sedang digunakan oleh proses P
j
adalah j i. Bila P
1
selesai menggunakan sumber daya dan melepaskannya maka P
2
dapat menggunakan sumber daya yang dilepas oleh P
1.
Bila kebutuhan sumber daya P
2
dapat dipenuhi oleh sumber daya yang sedang digunakannya dan sumber daya yang dilepas oleh P
1,
maka P
2
dapat menyelesaikan tugasnya dan melepas sumber daya yang digunakannya untuk digunakan oleh P
3
, dan seterusnya. Contoh untuk tiga proses yang menggunakan empat sumber daya yang serupa dalam
suatu sistem.
1. Contoh safe state Tabel 3.1 Tabel contoh safe state
Proses Sumber daya yang sedang dipegang
klaim maksimum
P
1
1 2
P
2
1 3
P
3
1 4
Sumber daya yang belum dialokasikan 1
Universitas Sumatera Utara
Tabel contoh safe tersebut memperlihatkan keadaan sistem dimana terdapat satu sumber daya yang belum digunakan. Pada kolom ketiga memberikan jumlah maksimum sumber daya
yang mungkin dibutuhkan oleh setiap proses. P
2
sedang menggunakan satu sumber daya tetapi dapat membutuhkan hingga tiga sumber daya. Karena hanya satu sumber daya yang tersedia saat
ini, maka safe sequenceberurutan tidak dapat dimulai dengn P
2
. Hal yang sama berlaku untuk P
3
. Sehingga P
1
yang akan dijalankan telebih dahulu karena satu sumber daya yang belum dialokasikan bila dijumlahkan dengan jumlah sumber daya yang sedang digunakan P
1
dapat memenuhi jumlah maksimum sumber daya yang dibutuhkan oleh P
1
. Setelah P
1
selesai maka dua sumber daya yang dilepas oleh P
1
dapat digunakan oleh P
2
. Setelah P
2
selesai, maka P
3
dapat menggunakan sumber daya yang dilepas oleh P
2
. Safe seqeunceberurutan untuk kondisi ini adalah {P
1,
P
2,
P
3
}.
2. Contoh unsafe state
Tabel 3.2 Tabel contoh unsafe state
Proses Sumber daya yang sedang dipegang
klaim maksimum
P
1
1 2
P
2
1 4
P
3
1 4
Sumber daya yang belum dialokasikan 1
Tabel tersebut memberikan kondisi yang sedikit berbeda, yaitu jumlah maksimum sumber daya yang dibutuhkan P
2
lebih besar. P
1
akan dijalankan terlebih dahulu seperti contoh satu. Namun setelah P
1
selesai, P
2
tidak akan selesai karena jumlah maksimum sumber daya yang
Universitas Sumatera Utara
dibutuhkannya tidak dapat dipenuhi. Begitu juga yang terjadi dengan P
3,
sehingga tidak ada safe sequence berurutan untuk kondisi ini dan dapat berisiko untuk terjadinya deadlock.
3.5 Contoh pendeteksian Deadlock