Cara Kerja Algoritma Banker

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 meminta sumber daya (1,0,2).
2.      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.

Subscribe to receive free email updates: