Jadi deadlock itu apa yaa?? gimana cara pencegahannya dan
mendeteksinyaa!!
disini saya coba menjelaskan tentang apa sih deadlock itu !!
Pengertian Deadlock
Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi
ataupun tidak ada komunikasi lagi antar proses. Deadlock disebabkan
karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses
lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut.
Dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya dapat
dikerjakan oleh proses lain dalam set yang sedang menunggu.
Cara Menghindari Deadlock
Deadlock bisa dihindari jika mempunyai informasi mengenai
proses yang tersedia serta serta sumber daya yang akan dibutuhkannya. Untuk
setiap sumber daya yang dibutuhkan suatu sistem akan mengawasi ketersediaan
sumber daya yang dibutuhkan, yang berarti sistem akan masuk kedalam status yang
tidak aman, atau dapat dikatakan hasil dari status tersebut akan mengakibatkan
terjadinya deadlock atau disebut juga hang. Sebuah sistem hanya akan menjamin
permintaan dalam keadaan status aman, dalam permintaan suatu sistem untuk
mengetahui bahwa status yang dijalankannya itu aman atau tidak adalah dengan
mengetahui setiap tipe dari setiap proses dan banyaknya sumber daya yang ada,
tersedia, dan yang dibutuhkan. Algorithm yang digunakan untuk menghindari
deadlock salah satunya adalah Banker’s Algoritm, yang digunakan untuk
mengetahui batas sumber daya yang dibutuhkan oleh suatu proses. Bagaimanapun,
untuk kebanyakan sistem tidaklah mungkin untuk dapat diketahui apa yang dibutuhkan
oleh proses, ini berarti bahwa menghindari deadlock atau hang hampir tidaklah
mungkin.
Cara Pencegahan Deadlock
Deadlock atau disebut juga hang dapat dihindari dengan cara
melihat penyebab dari terjadinya deadlock itu sendiri seperti yang telah dipaparkan
diatas yaitu : 1. Menghilangkan Mutual exclusion, yang berarti bahwa tidak ada
proses yang bisa mendapatkan sumber daya secara exclusive. 2. Hold and wait
condition bisa dihilangkan dengan cara meminta sumber daya yang dibutuhkan
proses sebelum proses eksekusi dijalankan. Akan tetapi dengan cara seperti ini
kurang begitu efisien dalam penggunaan dari sumber daya, jalan lain yang dapat
ditempuh adalah dengan cara kemampuan suatu proses untuk melepaskan sumber
dayanya sebelum permintaan sumber daya yang dibutuhkan. 3. No preemption
condition (Lockout) mungkin saja sulit bahkan tidak mungkin untuk dijalankan
ketika proses memakai sumber daya yang ada yang memakan waktu. Bagaimanapun
ketidakmampuan untuk menghilangkan preemption bisa dilakukan dengan cara
priority algorithm seperti lock-freeand wait-free algorithms serta optimistic
concurrency control. 4. The circular wait condition, menghilangkan interupsi
ketika proses dijalankan, dan menggunakan hierarchy untuk menentukan pembagian
tugas dari sumber daya.
Metode Pendeteksian Deadlock
deadlock akan terjadi, jika dan hanya jika grafik tunggu
memiliki siklus di dalamnya.Untuk mendeteksi deadlock, sistem harus memiliki
grafik tunggu dan menjalankan algoritma deteksi deadlock secara periodik. Hal
yang harus diperhatikan adalah seberapa sering algoritma deteksi harus
dipanggil. Hal ini tergantung dari dua faktor: 1. Frekuensi terjadinya deadlock
pada umumnya 2. Jumlah proses yang akan terpengaruh ketika deadlock terjadi.
Mengatasi Deadlock dan Dining Philosophers Page 3
Bila deadlock terjadi maka algoritma deteksi harus sering dipanggil. Resource yang dialokasikan ke proses-proses yang mengalami deadlock tidak akan digunakan sampai kondisi deadlock diatasi. Bila deadlock tidak segera diatasi maka jumlah proses yang terlibat dalam deadlock akan semakin bertambah. Salah satu ciri terjadinya deadlock adalah ketika beberapa proses mengajukan permohonan untuk resource, tetapi permohonan ini tidak dapat dipenuhi dengan segera. Sistem dapat saja memanggil algoritma deteksi setiap kali permohonan untuk resource tidak dapat diperoleh dengan segera. Namun,semakin sering algoritma deteksi dipanggil, maka waktu overhead yang dibutuhkan untuk komputasi menjadi semakin besar.
Mengatasi Deadlock dan Dining Philosophers Page 3
Bila deadlock terjadi maka algoritma deteksi harus sering dipanggil. Resource yang dialokasikan ke proses-proses yang mengalami deadlock tidak akan digunakan sampai kondisi deadlock diatasi. Bila deadlock tidak segera diatasi maka jumlah proses yang terlibat dalam deadlock akan semakin bertambah. Salah satu ciri terjadinya deadlock adalah ketika beberapa proses mengajukan permohonan untuk resource, tetapi permohonan ini tidak dapat dipenuhi dengan segera. Sistem dapat saja memanggil algoritma deteksi setiap kali permohonan untuk resource tidak dapat diperoleh dengan segera. Namun,semakin sering algoritma deteksi dipanggil, maka waktu overhead yang dibutuhkan untuk komputasi menjadi semakin besar.
Contoh pada Kehidupan Sehari-Hari
Ada berbagai
contoh deadlock dalam kehidupan sehari hari semisal ada dua orang bernama
Roddhi dan Riddho. Riddho menelfon Roddhi tetapi Roddhi
tidak menjawab panggilan. Beberapa detik kemudian, melihat panggilan yang
tidak terjawab, Roddhi menelfon Riddho. Pada saat yang sama, Roddhi mencoba
lagi dan menelfon Riddho. Keduanya mendapatkan pesan bahwa "orang yang
Anda coba hubungi sedang sibuk, silakan coba nanti". Roddhi menyadari
bahwa Riddho telah melihat panggilan yang terlewat karena dia
menelepon kembali. Jadi dia menunggu Riddho menelepon lagi. Sementara
itu Riddho, berpikir bahwa Roddhi mungkin sibuk dengan panggilan
lain, menunggu, berharap bahwa dia akan menelepon kembali ketika dia melihat
panggilan yang tidak terjawab.
Jadi mereka
berdua menunggu berharap satu sama lain akan menelepon balik.
Begitulah
contoh singkat deadlock dalam kehidupan sehari hari.
No comments:
Post a Comment