Anda di halaman 1dari 16

Yohanes Sukamdi, S.

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

Pendeteksian dan Pemulihan

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