Sistem Operasi Deadlock

Riva Kurnia Affandi
A11.2014.08185
A11.54507

Deadlock adalah suatu kondisi dimana 2 proses atau lebih tidak dapat meneruskan eksekusinya disebut juga seperti “hang”, karena proses tersebut saling memperebutkan resource dan saling menunggu pesan dan proses lain untuk waktu yang tidak terbatas lamanya.

deadlock

Penyebab Deadlock

– Mutual Exclusion

yaitu keadaan dimana hanya ada satu proses saja yang boleh memakai resource, proses yang lain harus menunggu sampai proses selesai. contoh buffering video.

– Hold and Wait

yaitu keadaan dimana suatu proses menunggu suatu resource dalam waktu yang lama hingga resource tersebut tidak terpakai oleh proses lainnya.

– No Pre-emption,

yaitu keadaan dimana suatu resource tidak boleh diambil begitu saja/secara paksa oleh proses yang lainnya sehingga suatu proses harus menunggu hingga proses yang sedang memakai resource telah selesai.

– Circular Wait,

yaitu suatu keadaan dimana proses yang lain membutuhkan resource yang sedang dipakai oleh suatu proses sehingga timbul antrian melingkar seperti halnya rantai.

Model Proses

Setiap proses yang menggunakan resource sumber Daya menjalankan urutan operasi.

Meminta Resource (Request) -> Menggunakan Resource (Use) ->Melepaskan Resource Release

 Mencegah Deadlock

Untuk mencegah deadlock dilakukan dengan meniadakan salah satu dari syarat perlu sebagai berikut :

– Mencegah Mutual Exclusion

Mutual exclusion benar-benar tidak dapat dihindari. Hal ini dikarenakan tidak ada resource yang dapat digunakan bersama-sama, jadi sistem harus membawa resource yang tidak dapat digunakan bersama-sama.

– Mencegah Hold and Wait

Mencegah hold and wait, sistem harus menjamin bila suatu proses meminta resource, maka proses tersebut tidak sedang memegang resource yang lain. Proses harus meminta dan dialokasikan semua resource yang diperlukan sebelum proses memulai eksekusi atau mengijinkan proses meminta resource hanya jika proses tidak membawa resource lain.

– Mencegah Non Preemption

Cara mencegah kondisi non preemption :

o Proses yang membawa beberapa resource meminta resource lain yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut, maka semua resource yang sedang dibawa proses tersebut harus dibebaskan.

o Proses yang sedang dalam keadaan menunggu, resource yang dibawanya ditunda dan ditambahkan pada daftar resource.

o Proses akan di restart jika dapat memperoleh resource yang lama dan resource baru yang diminta.

– Mencegah Kondisi Menunggu Sirkular

Sistem mempunyai total permintaan global untuk semua tipe resource. Proses dapat meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut secara numerik. Setiap proses yang membutuhkan resource dan memintanya maka nomor urut akan dinaikkan. Cara ini tidak akan menimbulkan siklus. Masalah yang timbul adalah tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.

 

 

Leave a Reply