Deadlock
Misalkan pada suatu komputer terdapat dua buah program, sebuah tape drive dan
sebuah printer. Program A mengontrol tape drive, sementara program B mengontrol
printer. Setelah beberapa saat, program A meminta printer, tapi printer masih digunakan.
Berikutnya, B meminta tape drive, sedangkan A masih mengontrol tape drive. Dua
program tersebut memegang kontrol terhadap sumber daya yang dibutuhkan oleh
program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai
program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Kondisi inilah yang disebut Deadlock atau pada beberapa buku disebut Deadly Embrace
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu
menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses
dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu
kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.
Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi
deadlock itu sendiri. Pada beberapa kasus, overhead atau ongkos yang harus dibayar
untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika
mengabaikannya. Sementara pada kasus lain, seperti pada real-time process control,
mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem
tersebut tidak berguna.
Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat
membuat deadlock pada suatu persimpangan, yaitu:
• Terdapat satu jalur pada jalan.
• Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
• Untuk mengatasinya beberapa mobil harus preempt (mundur).
• Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan
mendapatkan sumber daya).
Menghindari Deadlock
Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan
sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa
dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin
menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta.
Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu
permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumber daya yang
sebelumnya dipegang oleh proses lain telah dilepaskan.
Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan
keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut
unsafe-state.
No comments:
Post a Comment