Cara Tepat Mengatasi Deadlock pada Komputer

Apa itu Deadlock
Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu untuk meminta resources yang sama dalam jangka waktu yang tidak terbatas.

Analogi deadlock dapat diwakilkan seperti keadaan macet di jalan raya.



Penyebab Deadlock

Mutual Exlcusion 

Hanya satu proses pada waktu yang dapat menggunakan sumber daya.

Hold and Wait

Suatu proses membawa sedikitnya satu sumber daya dan sekaligus menunggu untuk mendapatkan tambahan sumber daya baru yang dibawa oleh proses lain

Non-Preemption

Suatu sumber daya dapat dibebaskan dengan sukarela oleh proses yang memegangnya setelah proses tersebut menyelesaikan tugasnya.

Circular Wait

Seperti Hold and Wait, namun lebih kompleks. Contoh terdapat sekumpulan proses 
{P0, P1,....,P0} yang menunggu sumber daya, dimana P0 menunggu sumber daya yang dibawa P1, P1 menunggu sumber daya yang dibawa oleh P2, dan begitu seterusnya

Deadlock tidak akan terjadi apabila keempat syarat diatas tidak terpenuhi
 
Terdapat 3 metode untuk menangani Deadlock
  1. Menggunakan protocol untuk jaminan sistem tidak akan terkena status deadlock
  2. Mengizinkan sistem untuk masuk dalam situasi deadlock, lalu memperbaikinya
  3. Metode ketiga, sering digunakan dalam sistem operasi UNIX, yaitu mengabaikan permasalahan deadlock seolah-olah tidak pernah terjadi

Mencegah Deadlock

Bagaimana cara untuk mencegah deadlock ?

Bagaikan pisau, penyebab deadlock dapat digunakan sebagai pencegah deadlock, 

Mencegah Mutual Exclusion

Sistem diharuskan untuk membawa sumber daya tertentu, yang tidak dapat digunakan secara bersama-sama

Mencegah Hold and Wait

Sistem diharuskan untuk menjamin, suatu proses yang sedang meminta sumber daya, tidak sedang memegang sumber daya yang lain. Proses harus meminta dan dialokasikan semua sumber daya yang diperlukan sebelum proses memulai eksekusi atau mengijinkan proses meminta sumber daya hanya jika proses tidak membawa sumber daya lain. 

Mencegah Non-Preemption

  • Jika suatu proses yang sedang membawa satu atau beberapa sumber daya, meminta sumber daya yang lain, maka tidak dapat dialokasikan terlebih dahulu, semua sumber daya pada proses yang meminta tersebut, harus di bebaskan
  • Sumber daya yang dibawa oleh proses yang sedang menunggu, di tunda dan ditambahkan pada daftar sumber daya
  • Proses akan di restart, jika memperoleh sumber daya yang lama dan sumber daya baru yang diminta
 

Mencegah Circular Wait

Dengan cara, proses meminta proses atau resource lain dengan permintaan yang dibuat terurut berdasarkan numerik. Setiap proses yang membutuhkan sumber daya dan memintanya, maka nomor urut akan dinaikkan. 

Post a Comment

0 Comments