Mengenal Deadlock Dan Karakteristiknya
Dalam beberapa kasus, saya pernah dihadapkan dengan keadaan terjadinya aplikasi atau agenda yang dipakai membisu sesaat menyerupai seorang pegawai yang mogok kerja. Ternyata seelah ditelusuri, keadaan atau kondisi ini disebut dengan deadlock. Apa itu deadlock? Mari kita bahas bersama pengertian dan karakeristiknya pada arikel ini.
Deadlock adalah keadaan dimana dua agenda memegang kontrol terhadap sumber daya yang diharapkan oleh agenda yang lain. Tidak ada yang sanggup melanjutkan proses masing-masing hingga agenda yang lain memperlihatkan sumber dayanya, tetapi tidak ada yang mengalah. Deadlock yang mungkin sanggup terjadi pada suatu proses disebabkan proses itu menunggu suatu bencana tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, jika setiap proses yang ada menunggu suatu bencana yang hanya sanggup dilakukan oleh proses lain dalam himpunan tersebut.
Karakteristik Deadlock
Karakteristik-karakteristik ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya deadlock yaitu implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.
Empat kondisi tersebut adalah:
1.Mutual Exclusion . Kondisi yang pertama yaitu mutual exclusion yaitu proses mempunyai hak milik pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu proses yang memakai suatu sumber daya. Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakannya. Suatu proses hanya sanggup memakai secara eksklusif sumber daya yang tersedia secara bebas.
2.Hold and Wait . Kondisi yang kedua yaitu hold and wait yaitu beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya. Suatu proses yang mempunyai minimal satu buah sumber daya melaksanakan request lagi terhadap sumber daya. Akan tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain. Pada ketika yang sama, kemungkinan adanya proses lain yang juga mengalami hal serupa dengan proses pertama cukup besar terjadi. Akibatnya, proses-proses tersebut hanya sanggup saling menunggu hingga sumber daya yang dimintanya dilepaskan. Sambil menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas. Semua proses itu pada hasilnya saling menunggu dan menahan sumber daya miliknya.
3.No Preemption . Kondisi yang selanjutnya yaitu no preemption yaitu sebuah sumber daya hanya sanggup dilepaskan oleh proses yang memilikinya secara sukarela sesudah ia selesai menggunakannya. Proses yang menginginkan sumber daya tersebut harus menunggu hingga sumber daya tersedia, tanpa sanggup merebutnya dari proses yang memilikinya.
4.Circular Wait . Kondisi yang terakhir yaitu circular wait yaitu kondisi membentuk siklus yang berisi proses-proses yang saling membutuhkan. Proses pertama membutuhkan sumber daya yang dimiliki proses kedua, proses kedua membutuhkan sumber daya milik proses ketiga, dan seterusnya hingga proses ke n-1 yang membutuhkan sumber daya milik proses ke n. Terakhir, proses ke n membutuhkan sumber daya milik proses yang pertama. Yang terjadi yaitu proses-proses tersebut akan selamanya menunggu.