Apa itu Deadlock ??
Deadlock adalah situasi / keadaan dimana dalam satu atau lebih proses yang tidak akan pernah selesai yang terjadi penumpukan dan tanpa adanya recovery. Penyebab Deadlock antara lain :
-Mutual Exclusion
-Ciccular Waiting
-No Preemption
-Hold and Wait
Beberapa strategi yang digunakan untuk mengatasi deadlock antara lain :
-Prevention
-Detection and Recovery
-Avoidance
Dalam strategi prevension perlu untuk memastikan paling sedikit satu penyebab terjadinya deadlock tidak berlaku, antara lain :
-Dalam kasus Mutual Exclusion , yang dilakukan adalah membuat file spool untuk resource yang akan digunakan secara bersamaan.
-Circular Waiting, yang dilakukan dengan memberi nama resource berdasarkan level / urutan.
-No Preemtion, yang dilakukan adalah dengan membolehkan adanya suatu proses preemtion.
-Dalam Hold and Wait, yang dilakukan adalah dengan memaksa sebuah proses untuk melepaskan resource yang dimilikinya pada saat meminta resource baru.
Untuk menangani deadlock digunakan sebuah algoritma, antara lain :
-Algoritma Banker
-Algoritma Safty
-Algoritma Ostrich
Penjelasan :
*Algoritma Banker adalah sebuah algoritma untuk menyelesaikan masalah deadlock yang penyediaan resourcenya dibatasi oleh kenaikan (advance).
Contoh kasus :
- Terdapat nasabah Bank yang meminta pinjaman lagi padahal pinjaman yang lalu belum dikembalikan.
D Dalah hal ini bisa kita modelkan sebagai berikut :
Proses dan Resourcenya
Resource assignednya
Remaining resourcenya
Algoritma banker dibagi menjadi empat struktur data, dimana n adalah jumlah proses dalam suatu sistem dan m adalah jumlah sumberdaya yang digunakan.
Penjelasan
1. Need : adalah matriks n x m yang mengindikasi sisa SDM yang dibutuhkan pada setiap proses.
Jika Need[i,j] = k, maka proses Pi membutuhkan lebih kinstalasi dari sumber daya RJguna menyelesaikan permasalahan. Need[i,j] = Max[i,j] - Allocation[i,j]
2. Allocation : adalah matrik n x m yang mendefinisikan SDM pada setiap tipe yang dialokasikan oleh setiap proses. Apabila Allocation [i,j] = k, maka proses Pi akan dialokasikan k instalasi dari SD Rj.
3. Max : adalah matriks n xm yang mendefinisikan maksimal permintaan pada setiap proses yang sedang berlangsung. Bila Max[i,j]= k, maka proses Pi akan meminta paling banyak k instalasi dari SDM.
4. Available : adalah sebuah vektor m yang mengindikasi SDM yang tesedia pada setiap tipe. Bila [j] = k, dimana k instalasi dari tipe Rj yang tersedia didalamnya.
*Algoritma Safety
Dalam algoritma ini terdapat pencarian apakah sistem yang berjalan dalam status aman atau tidak.
Penjelasan :
1. Work=work+Allocation, Finish[i]=True-ke Langkah 2
2. Anggaplah work dan finish adalah vektor yang memiliki panjang masing-masing m dan n. Yang memiliki nilai awal work=Avaliable dan Finish[i]=False untuk i=1,2,...,n.
3. Cari hingga didapatkan Finish[i]=False dan Need, <Work, juka i tidak ditemukan dalam pencarian.
4. Jika Finish[i]=True untuk semua i, maka sistem yang berjalan dalam status aman.
Deadlock adalah situasi / keadaan dimana dalam satu atau lebih proses yang tidak akan pernah selesai yang terjadi penumpukan dan tanpa adanya recovery. Penyebab Deadlock antara lain :
-Mutual Exclusion
-Ciccular Waiting
-No Preemption
-Hold and Wait
Beberapa strategi yang digunakan untuk mengatasi deadlock antara lain :
-Prevention
-Detection and Recovery
-Avoidance
Dalam strategi prevension perlu untuk memastikan paling sedikit satu penyebab terjadinya deadlock tidak berlaku, antara lain :
-Dalam kasus Mutual Exclusion , yang dilakukan adalah membuat file spool untuk resource yang akan digunakan secara bersamaan.
-Circular Waiting, yang dilakukan dengan memberi nama resource berdasarkan level / urutan.
-No Preemtion, yang dilakukan adalah dengan membolehkan adanya suatu proses preemtion.
-Dalam Hold and Wait, yang dilakukan adalah dengan memaksa sebuah proses untuk melepaskan resource yang dimilikinya pada saat meminta resource baru.
Untuk menangani deadlock digunakan sebuah algoritma, antara lain :
-Algoritma Banker
-Algoritma Safty
-Algoritma Ostrich
Penjelasan :
*Algoritma Banker adalah sebuah algoritma untuk menyelesaikan masalah deadlock yang penyediaan resourcenya dibatasi oleh kenaikan (advance).
Contoh kasus :
- Terdapat nasabah Bank yang meminta pinjaman lagi padahal pinjaman yang lalu belum dikembalikan.
D Dalah hal ini bisa kita modelkan sebagai berikut :
Proses dan Resourcenya
F | 3 | 0 | 1 | 1 |
G | 0 | 1 | 0 | 0 |
H | 1 | 1 | 1 | 0 |
I | 1 | 1 | 0 | 1 |
J | 0 | 0 | 0 | 0 |
Resource assignednya
F | 1 | 1 | 0 | 0 | |
G | 0 | 1 | 1 | 2 | |
H | 3 | 1 | 0 | 0 | |
I | 0 | 0 | 1 | 0 | |
J | 2 | 1 | 1 | 0 |
Remaining resourcenya
Algoritma banker dibagi menjadi empat struktur data, dimana n adalah jumlah proses dalam suatu sistem dan m adalah jumlah sumberdaya yang digunakan.
Penjelasan
1. Need : adalah matriks n x m yang mengindikasi sisa SDM yang dibutuhkan pada setiap proses.
Jika Need[i,j] = k, maka proses Pi membutuhkan lebih kinstalasi dari sumber daya RJguna menyelesaikan permasalahan. Need[i,j] = Max[i,j] - Allocation[i,j]
2. Allocation : adalah matrik n x m yang mendefinisikan SDM pada setiap tipe yang dialokasikan oleh setiap proses. Apabila Allocation [i,j] = k, maka proses Pi akan dialokasikan k instalasi dari SD Rj.
3. Max : adalah matriks n xm yang mendefinisikan maksimal permintaan pada setiap proses yang sedang berlangsung. Bila Max[i,j]= k, maka proses Pi akan meminta paling banyak k instalasi dari SDM.
4. Available : adalah sebuah vektor m yang mengindikasi SDM yang tesedia pada setiap tipe. Bila [j] = k, dimana k instalasi dari tipe Rj yang tersedia didalamnya.
*Algoritma Safety
Dalam algoritma ini terdapat pencarian apakah sistem yang berjalan dalam status aman atau tidak.
Penjelasan :
1. Work=work+Allocation, Finish[i]=True-ke Langkah 2
2. Anggaplah work dan finish adalah vektor yang memiliki panjang masing-masing m dan n. Yang memiliki nilai awal work=Avaliable dan Finish[i]=False untuk i=1,2,...,n.
3. Cari hingga didapatkan Finish[i]=False dan Need, <Work, juka i tidak ditemukan dalam pencarian.
4. Jika Finish[i]=True untuk semua i, maka sistem yang berjalan dalam status aman.