Mengenal Deadlock dan Karakteristiknya
Dalam beberapa kasus, saya pernah dihadapkan dengan keadaan terjadinya aplikasi atau program yang digunakan diam sesaat seperti 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 program 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. 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.
Karakteristik Deadlock
Karakteristik-karakteristik ini harus dipenuhi
keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan
kausatif antara empat karakteristik ini dengan terjadinya deadlock adalah
implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.
Empat kondisi tersebut adalah:
1.Mutual Exclusion . Kondisi yang pertama adalah
mutual exclusion yaitu proses memiliki
hak milik pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya
ada satu proses yang menggunakan 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 dapat menggunakan
secara langsung sumber daya yang tersedia secara bebas.
2.Hold and Wait . Kondisi yang kedua adalah hold
and wait yaitu beberapa proses saling
menunggu sambil menahan sumber daya yang dimilikinya. Suatu proses yang
memiliki minimal satu buah sumber daya melakukan request lagi terhadap sumber
daya. Akan tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang
lain. Pada saat yang sama, kemungkinan adanya proses lain yang juga mengalami
hal serupa dengan proses pertama cukup besar terjadi. Akibatnya, proses-proses
tersebut hanya bisa saling menunggu sampai sumber daya yang dimintanya
dilepaskan. Sambil menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas.
Semua proses itu pada akhirnya saling menunggu dan menahan sumber daya
miliknya.
3.No Preemption . Kondisi yang selanjutnya
adalah no preemption yaitu sebuah sumber
daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela
setelah ia selesai menggunakannya. Proses yang menginginkan sumber daya
tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari
proses yang memilikinya.
4.Circular Wait . Kondisi yang terakhir
adalah 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 sampai 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 adalah
proses-proses tersebut akan selamanya menunggu.
0 Response to "Mengenal Deadlock dan Karakteristiknya"
Post a Comment