Minggu, 10 Mei 2015

DEADLOCK

Deadlock adalah suatu kejadian ketika ada proses yg :

  • saling memperebutkan 
  • saling menunggu
  • saling menghalangi
Permanent blocking adalah sekumpulan proses yg saling berkompetisi untuk mendapatkan sumber informasi bagi sistem dan juga untuk berkomunikasi dengan proses yg lain. Karena permanent blocking tersebutlah muncul adanya deadlock.
Pada gambar (a) diatas merupakan gambar kemungkinan terjadinya suatu deadlock, sedangkan gambar (b) merupakan kejadian disaat deadlock sudah terjadi.


CONDITION FOR RESOURCE DEADLOCK

Kondisi-kondisi yg mungkin terjadi saat deadlock :
  • Mutual exclusion
    hanya ada 1 proses yg dapat mengakses sumber informasi
  • Hold and wait
    proses yg sedang memegang 1 sumber informasi juga sedang menunggu untuk mengakses sumber informasi lain yg sedang dipegang oleh proses yg lain
  • No preemption
    suatu sumber informasi akan secara sukarela dilepaskan oleh proses yg sedang mengaksesnya, setelah proses tersebut selesai melakukan tugasnya
  • Circular wait
    suatu keadaan dimana semua proses saling ingin mengakses sumber informasi yg sama, namun mereka saling menunggu karena masih ada 1 proses yg sedang mengaksesnya
Pada gambar (a) merupakan gambar resource R sedang diakses oleh proses A. Sedangkan gambar (b) adalah proses B yg merequest resource R. Pada gambar (c) merupakan gamabr circular wait.

Gambar deadlock yg terjadi :
Berikut ini adalah gambar untuk solusi masalah deadlock :

Cara-cara untuk mencegah deadlock ada 4 :
  1. biarkan saja masalahnya (menurut algoritma Ostrich)
  2. deteksi dan pemulihan kembali, biarkan deadlock terjadi, deteksi deadlocknya dimana lalu ambil tindakan
  3. pencegahan secara dinamik
  4. pencegahan
Ada beberapa cara untuk menunjukkan deteksi terjadinya deadlock :
  • dengan menggunakan resource graph
  • dengan menggunakan cycle yg telah diekstrak dari resource graph
Deadlock avoidance, membutuhkan sistem yg mempunyai informasi yg penting :

  1. setiap proses mendefinisikan sumber maksimum yg dibutuhkan
  2. memastikan bahwa tidak akan pernah terjadi kondisi circular wait
  3. Resource algorithm didefinisikan oleh jumlah sumber informasi yg dialokasi dan jumlah maksimum dari proses tersebut
Deadlock detection, memastikan permintaan sumber informasi dapat terjadi. Ada 4 cara :
  1. mutual exclusion
  2. hold and wait
  3. circular wait
  4. no preemption
Kondisi dalam deadlock detection serta cara pendekatannya

STARVATION

Starvation adalah sebuah algoritma untuk mengalokasikan sejumlah sumber informasi, dan mungkin memberikan shortest job first, tapi memungkinkan juga untuk terjadi penundaan waktu yg sangat panjang, meskipun tidak diblock. Maka solusi untuk mengatasi starvation adalah first-come first-serve algorithm.

Deadlock recovery, digunakan untuk membatalkan semua proses yg sudah deadlock (untuk proses terminasi). Untuk mencegah terjadinya interupsi sumber informasi adalah dengan :
  • memilih korbannya (mengurangi biaya)
  • rollback, artinya mengembalikan semua nilai menjadi safe state
  • starvation, proses yg sama mungkin bisa diambil dengan diambil sebagai korban
Deadlock handling, mengkombinasikan 3 dasar pendampingan samaNya :
  1. Prevention
  2. Avoidance
  3. Detection
Mengijinkan bagaimana untuk mencapai pendekatan teroptimal. Partisi sumber informasi digambarkan dalam urutan kata dalam sistem.

Semoga bermanfaat ! ^^

Tidak ada komentar:

Posting Komentar