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 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