Minggu, 11 Desember 2011

deadlock

Deadlock dalam arti sebenarnya adalah kebuntuan. Dalam konteks sistem operasi kebuntuan ini adalah kebuntuan proses. Hal ini terjadi disaat proses yang satu menunggu sumber daya yang masih dipegang oleh proses lain yang menunggu sumber daya tersebut. Cara yang paling mudah untuk mengilustrasikan deadlock adalah dengan kemacetan kendaraan diperempatan/4 persimpangan jalan dimana tiap kendaraan dari arah tiap arah saling menerobos tanpa ada yang mau mengalah.

Ilustrasi Deadlock
 Contoh lain, pada proses yang sebenarnya terdiri dari 3 tahap yaitu ; meminta,memakai,melepaskan.
Contoh program deadlock :
public class Proses {
          public  synchronized void getA () {
             //proses untuk mendapatkan sumber daya A
          }
          public synchronized void getB () {
            //proses untuk mendapatkan sumber daya B
          }
          public releaseA () {
            //proses melepaskan sumber daya A
          }
          public releaseB () {
           //proses melepaskan sumber daya B
          }
}
public class Coba () {
          public statis void main (String [] args ) {
              Proses P = new Proses;
              Proses Q = new Proses;
              P.getA ();
              Q.getB ();
              P.getB ();
              Q.getA ();
          }
}
Dari kode program diatas kedua proses (P dan Q) saling mendapatkan sumber daya (A dan B) tanpa ada proses melepaskan (release) sumber daya yang dijalankan. Maka terjadilah deadlock.
         

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Host