Kamis, 07 Mei 2015

Session 9-10 (Deadlock)

9.1 Deadlock
      Deadlock sendiri dapat kita artikan sebagai beberapa proses yang merebutkan resource(hardisk atau printer dll) yang sama.


Gambar a menjelaskan kondisi dimana deadlock belum terjadi.
Gambar b menjelaskan kondisi dimana deadlock telah terjadi yang mengakibatkan seluruh mobil tidak dapat bergerak.

9.2 Kondisi Terjadinya Deadlock
      Ada 4 kondisi yang dapat memungkinkan terjadinya deadlock, yaitu :
         a. Mutual Exclusion
             -> Kondisi Mutual Exclusion sendiri sebenarnya merugikan banyak proses karena Mutual Exclusion sendiri hanya 1 proses yang dapat menggunakan resource, sedangkan yang lain tidak.
         b. Hold and Wait
             -> Kondisi Hold and Wait sendiri memiliki keunikan, yaitu kondisi dimana 1 proses  akan menggunakan resource, tetapi proses akan menahan resources tersebut sampai menemukan proses lain yang ingin menggunakan.
         c. No Preemption
             -> Kondisi No Preemption, ketika suatu proses menggunakan resource, proses             tersebut tidak akan mau melepaskan ke proses lain sampai proses tersebut rela untuk melepaskan resourcenya.
         d. Circular Wait
             -> Kondisi Circular Wait, dimana proses B menunggu proses A, proses C menunggu proses B dan seterusnya. 

9.3 Strategi untuk Menangani Deadlock
      Strategi untuk menangani Deadlock :
      a. Abaikan masalah (Ostrich algorithm)
      b. Biarkan deadlock terjadi, lalu deteksi dan ambil tindakan untuk menanganinya
      c. Dinamis menghindari dengan hati-hati alokasi sumber daya.
      d. Pencegahan, oleh secara terstuktur meniadakan satu dari empat kondisi yang diperlukan.
9.4 Cara Menghindari Deadlock.
       a. Mutual Exclusion
            -> Pencegahan Mutual Exclusion adalah dengan cara membuat proses lainnya hanya dapat membaca resource yang sedang dijalankan oleh proses lain, dan proses tersebut tidak dapat menulis atau mengedit.
       b. Hold and Wait
            -> Pencegahan Hold and Wait adalah dengan cara harus menjamin ketika proses telah meminta resource, proses tersebut tidak boleh menggunakan resource lain.
      c. No Preemption
            -> Pencegahan No Preemption adalah dengan cara kita harus mempertimbangkan kapan proses tersebut menggunakan suatu resource dan kapan harus menggantinya.
      d. Circular Wait
            -> Pencegahan Circular Wait adalah dengan cara kita harus memberika prioritas nomor kepada proses yang ingin menggunakan suatu resource.

9.5 Starvation
Algoritma untuk mengalokasikan sumber daya mungkin untuk memberikan pekerjaan terpendek pertama Karya besar untuk beberapa pekerjaan singkat dalam suatu sistem
Dapat menyebabkan pekerjaan lama untuk ditunda tanpa batas waktu meskipun tidak diblokir
solusi:
Pertama datang, yang pertama dilayani kebijakan 





Tidak ada komentar:

Posting Komentar