Friday, 21 July 2017

PROSES DAN PENYEBAB TERJADINYA DEADLOCK PADA KOMPUTER

CONTO GAMBAR 

DEADLOCK

Deadlock atau tabrakan data terjadi karena sekumpulan proses-proses yang di-blok dimana setiap proses membawa sebuah sumber daya dan menunggu mendapatkan sumber daya yang dibawa oleh proses lain.

Misalnya sistem mempunyai 2 resource dan terdapat dua proses P1 dan P2 yang masing masing membawa satu resource dan masing-masing memerlukan resource yang dibawa proses lain sehingga terjadi keadaan saling menunggu resource dan sistem di-blok.

Setiap proses yang menggunakan sumber daya menjalankan urutan operasi sebagai berikut :
  1.  meminta (request) : meminta sumber daya
  2.  memakai (use) : memakai sumber daya
  3.  melepaskan (release) : melepaskan sumber daya

  • Deadlock terjadi bila terdapat empat kondisi berikut ini secara simultan.
  1.  Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan sumber daya.
  2.  Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya satu sumber daya menunggu mendapatkan tambahan sumber daya baru yang dibawa oleh proses
  3.  Non-Preemption : sebuah sumber daya dapat dibebaskan dengan sukarela oleh proses yang memegangnya setelah proses menyelesaikan task.
  4.  Menunggu Secara Sirkuler (Circular Wait) : Terdapat sekumpulan yang menunggu sumber daya dimana P0 menunggu sumber daya yang dibawa P1, P1 menunggu sumber daya yang dibawa P2, dan seterusnya,
  • CARA MENGHINDARI DEADLOCK
  1. Save state & Unsave state 
Jika sistem dalam state selamat maka tidak terjadi deadlock, sedangkan jika sistem dalam state tidak selamat (unsafe state) maka kemungkinan terjadi  deadlock. seperti digambar. Metode menghindari deadlock menjamin bahwa sistem tidak pernah memasuki state tidak selamat.
CONTOH GAMBAR
  • Contoh save & unsave state
Sistem mempunyai 12 magnetic resource dan 3 proses P1, P2 dan P3. Proses P1 membutuhkan 10 tape drive, proses P2 membutuhkan 4 dan proses P3 membutuhkan 9 tape drive. Misalnya pada waktu t0, proses P1 membawa 5 tape drive, P2 membawa 2 dan P3 membawa 2 tape drive sehingga terdapat 3 tape drive yang tidak digunakan.

PROSES        KEBUTUHAN MAX        KEBUTUHAN SEKARANG
    P1                          10                                            5
    P2                            4                                            2
    P3                            9                                            2



      2. Algoritma Resource Allocation Graph
Deadlock dapat digambarkan lebih presisi dengan menggunakan graph berarah yang disebut resource allocation graph.
Garis berarah dari proses Pi ke tipe sumber daya Rj dinotasikan dengan Pi → Rj  artinya proses Pi meminta satu anggota dari tipe sumber daya Rj dan sedang menunggu sumber daya tersebut.
Garis berarah dari tipe sumber daya Rj ke proses Pi dinotasikan dengan Rj → Pi artinya satu anggota tipe sumber daya Rj dialokasikan ke proses Pi.

Notasi-notasi yang digunakan pada resource allocation graph adalah :

  • Proses       
  • Tipe sumber daya dengan 4 anggota    
  • Pi meminta anggota dari Rj     
  • Pi membawa satu anggota Rj
  • Contoh resource allocation graph 
  • Himpunan P, R dan E :
  P = {P1, P2, P3}
  R = {R1, R2, R3}
  E = {P1 → R1, P2 → R3, R1 → P2, R2 → P2, R2 → P1, R3 → P3}
  • Anggota sumber daya :
  Satu anggota dari tipe sumber daya R1.
  Dua anggota dari tipe sumber daya R2.
  Satu anggota dari tipe sumber daya R3.
  • Status proses :
  Proses P1 membawa satu anggota tipe sumber daya R2 dan menunggu satu
anggota tipe sumber daya R1.
  Proses P2 membawa satu anggota R1 dan R2 dan menunggu satu anggota tipe sumber daya R3.
  Proses P3 membawa satu anggota R3.

contoh gambar

      3. Algoritma Banker
Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum dieksekusi harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika suatu proses meminta sumber daya kemungkinan proses harus menunggu. Jika suatu proses mendapatkan semua sumber daya maka proses harus mengembalikan semua sumber daya dalam jangka waktu tertentu.
Diketahui sistem terdapat 5 proses yaitu P0 sampai P4, 3 tipe sumber daya yaitu A (10 anggota), B (5 anggota) dan C (7 anggota). Perhatikan gambaran sistem pada waktu T0.

contoh gambar 






 


EmoticonEmoticon