Kom
Dalam sistem komputer, terdapat banyak sumber daya yang hanya bisa dimanfaatkan oleh satu proses pada suatu waktu Dua buah proses yang menggunakan slot yang sama pada tabel proses dapat menyebabkan kerusakan pada sistem Pada kenyataannya, proses membutuhkan akses eksklusif untuk beberapa sumber daya sekaligus
Deadlock ialah suatu kondisi permanen 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 dan demikian juga sebaliknya
Starvation adalah keadaan dimana satu atau beberapa proses 'kelaparan' karena terus dan terus menunggu kebutuhan sumber dayanya dipenuhi Namun, karena sumber daya tersebut tidak tersedia atau dialokasikan untuk proses lain, akhirnya proses yang membutuhkan tidak bisa memilikinya Kondisi seperti ini merupakan akibat dari keadaan menunggu yang berkepanjangan
Sebuah proses dalam melakukan penggunaan terhadap suatu sumber daya melalui langkah-langkah sebagai berikut : Meminta (request) : Meminta layanan perangkat masukan/keluaran Memakai (Use) : Memakai perangkat masukan/keluaran. Melepaskan (release) melepaskan pemakai masukan/keluaran.
Sumber daya yang tidak dapat dibagi Sumber daya yang dapat dibagi
Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi. 4 kondisi tersebut adalah : 1. Mutual Exclusion (mutual exclusion condition) 2. Kondisi gemgam dan tunggu (hold and wait condition) 3. Kondisi non-preemption (non-preemption condition) 4. Kondisi menunggu secara Sirkuler (Circuler wait condition)
Sumber daya saat itu diberikan pada tepan satu proses. Proses memiliki hak milik pribadi terhadap sumber daya yang sedang digunakannya Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakannya Mutual Exclution ibarat sebuah pedang dengan dua sisi yg tajam. Di satu sisi, mutual exclution merupakan solusi untuk sinkronisasi proses, tapi di sisi lain, ia juga bisa menyebabkan terjadinya deadlock
Proses2 yang menggenggam sumber daya, menunggu sumber daya-sumber daya baru Terjadi jika ada beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya 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
Sumber daya sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses yang sedang menggenggamnya. Sumber daya-sumber daya harus secara ekplisit dilepaskan dari proses yang menggenggamnya Sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya Jadi sumber daya tersebut tidak akan dilepas, meskipun sedang tidak digunakan Proses yang menginginkan sumber daya tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang memilikinya
Harus terdapat rantai serkuler dari dua proses atau lebih, masing2 menunggu sumber daya yang digenggam oleh anggita berikutnya pada rantai itu 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 Yang terjadi adalah proses-proses tersebut akan selamanya menunggu Circular wait seringkali disebut sebagai Demon Circle
Gambar di atas merupakan contoh deadlocks dalam dunia nyata. Dapat dilihat bahwa kedua mobil yang berada di tengah-tengah jembatan tidak dapat maju dan hanya menunggu Penyelesaian dari masalah tersebut adalah salah satu dari mobil tersebut mundur, sehingga mobil yang lain dapat maju
Mobil pada kasus ini adalah proses, sedangkan jembatan adalah sumber daya (resource) Kedua mobil berebut untuk menggunakan sumber daya, namun karena sumber daya tersebut hanya dapat digunakan oleh satu proses saja, maka terjadilah deadlock Kondisi tersebut bila terjadi dalam waktu yang lama dapat menyebabkan terjadinya starvation
Pencegahan
Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik penyebab deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem
Penghindaran
Memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock
Pengabaian (Ignore)
Sistem mengabaikan terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi. Biasanya userlah yg menanganinya dg menekan tombol Ctrl+Alt+Del untuk terminasi atau merestart komputernya
Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami deadlock. Kemudian, proses yg mengalami deadlock tadi akan dipulihkan