Deadlock
Deadlock
Nama : Roudlotul Nur Khusnia
NIM : 119229073
STMIK YADIKA BANGIL
Diblog ini akan membahas tentang Deadlock . Apa itu Deadlock ?
Cara Kerja Algoritma Banker
Algoritma Banker mencegah
terjadinya deadlock dengan memutuskan apakah menyetujui atau menunda permohonan
kredit oleh customer. Ketika customermemohon kredit, maka permohonan kredit
tersebut harus diperiksa oleh bankir. Dalam algoritma Banker, setiap customer
memiliki batas kredit dan apabila seorang customer telah mencapai batas
maksimum kredit, maka diasumsikan customertersebut telah menyelesaikan semua
permasalahan bisnisnya dan dapat mengembalikan semua pinjamannya kepada bank.
Tetapi ada kalanya, seorang customer dapat menyelesaikan semua permasalahan
bisnisnya dan mengembalikan semua pinjamannya kepada bank sebelum mencapai
batas kredit maksimum. Algoritma Banker terdiri atas algoritma Safetydan
algoritma Resource Request. Cara kerja dari masing-masing algoritma tersebut
adalah sebagai berikut:
1. Algoritma
Safety.
Algoritma ini adalah algoritma yang dipakai oleh bankiruntuk
memeriksa keadaan sistem setelah peminjaman, apakah berada dalam kondisi
safeatau tidak. Apabila berada dalam kondisi safe, maka ini berarti dana yang
tersisa dapat menjamin pemenuhan pinjaman oleh semua customer yang masih aktif,
semua proses akan berakhir dengan aman dan tidak akan menyebabkan deadlock. Apabila kondisi unsafe,
maka ini berarti terdapat kemungkinan untuk terjadinya deadlock, sehingga
permohonan kredit ditunda hingga permohonan kredit tidak menyebabkan unsafe
state. Cara kerja algoritma Safetyadalah sebagai berikut:
a. Set nilai
Work = Available (Available = dana yang masih tersisa di bank setelah
peminjaman).
b. Set nilai
Finish[i] = False untuk semua customer.
c. Cari semua
customer yang memiliki needs(keperluan) lebih kecil atau sama dengan nilai
Work. Besar needsdihitung dengan mengurangkan nilai maksimum_resource_customer
dengan nilai allocation_resource_customer).
d. Anggap bank
meminjamkan dana = needs customer, sehingga
keperluan dana customer terpenuhi dan customermenyelesaikan semua
permasalahan bisnisnya dengan mengembalikan semua kreditnya ke bank. Tambah
nilai Work dengan nilai allocation_resource_customer (karena kredit customer
yang sebelumnya dipinjam telah dikembalikan kepada bank) dan set Finish[i] =
True.
e. Apabila tidak
ada lagi customer yang memiliki needs <= work, maka periksa apakah semua
Finish[i] bernilai True. Apabila semua Finish[i] = True, maka kondisi setelah
peminjaman adalah safe. Apabila tidak, maka kondisi setelah peminjaman adalah
unsafe.
2. Algoritma
Resource Request.
Algoritma ini dipakai bankir untuk menentukan apakah
peminjaman sumber daya disetujui atau ditunda. Algoritma ini dieksekusi oleh
bankir setiap terjadinya permohonan kredit atas resourceoleh customer. Cara
kerja algoritma Resource Request adalah sebagai berikut:
a. Jika
permohonan kredit (Request) lebih besar dari sisa resourcepada bank
(Available), maka permohonan kredit ditunda (pending).
b. Bankir
berpura-pura meminjamkan resource kepada customer. Available resourcepada bank
dikurangi dengan besar request.
c. Jalankan
algoritma Safety.
d. Apabila
algoritma Safety menghasilkan keadaan safe, maka realisasikan permohonan
kredit. Apabila algoritma Safety menghasilkan keadaan unsafe, maka permohonan
kredit ditunda.
Sebagai contoh, perhatikan keadaan awal berikut:
Available
R1 R2 R3
10 5 7
Max -
Allocation = Need
Available
R1 R2 R3 R1 R2 R3
R1 R2 R3 R1 R2 R3
P0 7 5
3 0 1 0 7
4 3 3
3 2
P1 3 2
2 2 0 0 1
2 2
P2 9 0
2 3 0 2 6
0 0
P3 2 2
2 2 1 1 0
1 1
P4 4 3
3 0 0 2 4
3 1
Analisis algoritma safetyterhadap keadaan adalah sebagai
berikut:
1. Work =
Available(3, 3, 2).
2. Set Finish[i]
= False.
3. Temukan proses
yang memiliki Need <= Work. Anggap resourcedipinjamkan, proses berakhir dan
mengembalikan semua resource-nya.
Max - Allocation =
Need <= Work
R1
R2 R3 R1 R2 R3 R1 R2 R3
P1 3
2 2 2
0 0 1
2 2 3 3 2
P3 2
2 2 2
1 1 0
1 1 5 3 2
P4 4
3 3 0
0 2 4
3 1 7 4 3
P2 9 0 2
3 0 2
6 0 0 7
4 5
P0 7
5 3 0
1 0 7
4 3 10 4 7
10 5 7
4. Semua proses
dapat berakhir dengan baik, ini berarti keadaan berada dalam safestate.
Untuk algoritma resource request, misalkan permintaan adalah
sebagai berikut:
1. P1 mem2. Berpura-pura meminjamkan resource.
Max - Allocation
= Need Available
R1
R2 R3 R1 R2 R3 R1 R2 R3
R1 R2 R3
P0 7
5 3 0
1 0 7
4 3 2
3 0
P1 3
2 2 3
0 2 0
2 0
P2 9
0 2 3
0 2 6
0 0
P3 2
2 2 2
1 1 0
1 1
P4 4
3 3 0
0 2 4
3 1
3. Apakah keadaan
safe? Ya, pinjamkan resourcedan akhiri proses P1, P3, P4, P2 dan P0. Keadaan
berada dalam safe state.
4. Peminjaman direalisasikan.inta
sumber daya (1,0,2).
Comments
Post a Comment