Thursday, October 18, 2018

Deadlock

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.

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