Deadlock

 Deadlock 

Nama : Roudlotul Nur Khusnia 

NIM : 119229073
STMIK YADIKA BANGIL

Diblog ini akan membahas tentang Deadlock . Apa itu Deadlock ?

Deadlock adalah suatu kondisi dimana proses tidak berjalan lagi ataupun tidak ada komunikasi lagi antar proses didalam sistem operasi. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumberdaya yang dipegang oleh proses tersebut . 

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

Popular posts from this blog

Status Proses Sistem Operasi

ORGANISASI KOMPUTER : UNIT MASUKAN DAN KELUARAN

Penjadwalan Proses CPU Pada Sistem Operasi