Deadlock; antara Curhatan dan Bahan UTS

Deadlock itu :

“Kamu sama gebetan kamu lagi PDKT; kalian sama2 jaim, ga bakal sms kalo salah satu belum sms., nah itu namanya DEADLOCK! Kamu nunggu sms dari dia, sementara dia juga nunggu sms dari kamu; karena ga ada yang mau ngalah buat sms duluan jadinya deadlock, dan ga jadi pdkt :p”

Get it??😀

Deadlock; entah kenapa aku seneng banget sama istilah ini. Hmm mungkin aku sendiri sering ngalamin deadlock:-/

Itu analogi semi’ngawur’ dan rasional dari pengalaman pribadi :p

Kalo kata Dosen SO-ku; Deadlock itu gini:

“Pemblokiran permanen sejumlah proses yang berkompetisi dalam mendapatkan sumber daya sistem atau yang berkomunikasi satu dengan lainnya *kebuntuan sisstem”

Rumitkan bahasanya?? :p Terus yang mau kita bahas kali ini Deadlock yang mana?? Deadlock yang gagal PDKT ato Deadlock yang dialami sistem??

Kalo bahas deadlock yg gagal PDKT = curhat; kalo bahas Deadlock dalam Sistem Operasi = Ilmu., Oke.. So kita bahas yang Ilmu dulu., nanti curhatnya colongan aja :p Jadi Deadlock yg gagal PDKT tadi cukup jadi pengantar saja untuk memulai pembahasan yg lebih serius😀

Sudah cukup paham tentang konsep dasar deadlock?
–sip😀
Ehm., pada dasarnya deadlock ini terjadi karena keterbatasan resource. Oleh karena itu, management resource dari proses-proses yang sedang berjalan sangat dibutuhkan guna mencegah deadlock.

Berikut ini syarat-syarat terjadinya deadlock:

  1. Mutual Exclution; pada satu saat, hanya satu proses yang dapat menggunakan resource.
  2. Hold and Wait; satu proses mempertahankan resource sambil menunggu resource lain.
  3. No Preemtion; tidak ada resource yang dapat dipaksa dilepaskan dari proses yang menggunakannya.
  4. Circular Wait; rantai tertutup proses-proses, sedikitnya satu resource yang dibutuhkan oleh proses berikutnya di dalam rantai -saya belum donk yang ini :hammer:

Biar nggak deadlock, berikut ini pencegahannya:

  • Pencegahan tak langsung
    1. Mencegah terjadinya salah satu dari mutual exclusion, hold and wait, atau no preemption
  • Pencegahan langsung
    1. Mencegah circular wait; pengurutan linear jenis resource, resource yang indeksnya lebih kecil didahulukan
    2. Mencegah mutual exclusion; sulit dilakukan karena dibutuhkan dibutuhkan Sistem Operasi untuk membatasi akses ke resource.
    3. Mencegah hold and wait; mengharuskan proses meminta semua resource yang dibutuhkan sekaligus, bila belum dapat dipenuhi sekaligus, diblokir. Kelemahannya adalah dibutuhkan waktu yang lama untuk menunggu semua resource yang dibutuhkan, dan sebenarnya proses itu sudah dapat berjalan meski hanya dengan beberapa resource.
    4. Mencegah no preemption; bila proses yang memegang resource ditolak untuk melakukan permintaan resource tambahan, proses harus melepas resource yang sedang dipegang terlebih dahulu. Namun hal ini hanya bisa dilakukan bila 2 proses beda prioritas.

Hal-hal yang dilakukan untuk menghindari deadlock:

  • Memaksa permintaan resource untuk mencegah salah satu dari 4 penyebab deadlock.
  • Memungkinkan ketiga kondisi dilakukan, namun dapat membuat pilihan untuk menjamin deadlock tidak pernah tercapai.
  • Pengambilan keputusan dilakukan secara dinamis: “Apakah permintaan alokasi resource bila diluluskan akan menyebabkan deadlock?”
  • Jangan memulai proses apabila kebutuhan proses akan menyebabkan deadlock.
  • Jangan meluluskan permintaan resource tambahan bila alokasinya menyebabkan deadlock.

Pendekatan penghindaran deadlock:

  • Jangan memulai proses apabila kebutuhan proses akan menyebabkan deadlock.
  • Jangan meluluskan permintaan resource tambahan bila alokasinya menyebabkan deadlock.

Strategi menghindari deadlock:

  • Saat proses melakukan permintaan resource, asumsikan permintaan akan dikabulkan
  • Update sistem
  • Menetapkan apakah hasilnya safe state
  • Jika iya, kabulkan
  • Jika tidak, blokir hingga ditemukan saat yang aman untuk mengabulkan permintaan

Keterbatasan dalam proses penghindaran deadlock:

  • Jumlah kebutuhan resource maksimum tiap proses harus ditetapkan terlebih dahulu
  • Proses harus independen
  • Jumlah resource yang dialokasikan harus tetap
  • Tidak ada proses yang keluar selama memegang resource

Deteksi deadlock:

  • Sumber daya yang diminta akan diberikan kepada proses setiap kali dimungkinkan.
  • Secara teratur, Sistem operasi melakukan algoritma yang mendeteksi kondisi circular wait

Alghoritma untuk mendeteksi deadlock:

  1. Tandai setiap proses yang memiliki baris dalam matriks allocation yang seluruhnya 0 (nol)
  2. Inisialisasi vektor temporer W sehingga sama dengan vektor available
  3. Temukan indeks i dimana nilainya pada matriks claim lebih kecil atau sama dengan W. Jika tidak ditemukan, hentikan algoritma
  4. Jika ditemukan, tandai proses i dan tambahkan baris matriks alokasi yang bersangkutan ke W
  5. Ulang langkah 3

Yup., itu tadi sekilas tentang deadlock dan cara-cara menghindarinya. Bahasanya teknis banget ya? Aku aja ngetik juga sambil searching di wikipedia😀 Yah, sambil menyelam minum aer, sambil posting blog, sambil belajar buat UTS besok pagi😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s