Anda di halaman 1dari 2

10.07.

Penyebab deadlock

Mutual Exclusion, salah satu syarat terjadinya deadlock. Mutual Exclusion adalah kondisi di
mana hanya satu proses yang diizinkan menggunakan sumber daya pada satu waktu tertentu. Proses
lain harus menunggu hingga sumber daya tersebut dilepaskan sebelum mereka dapat
menggunakannya. Jika kondisi Mutual Exclusion tidak dijaga atau dilanggar, kemungkinan terjadinya
deadlock meningkat.

Hold and Wait, adalah kondisi di mana suatu proses yang sedang menggunakan sumber daya
juga meminta sumber daya lain, dan proses ini menunggu hingga sumber daya yang diminta tersedia.
Ini dapat mengakibatkan proses-proses lain yang menunggu sumber daya terjebak, yang dapat
menyebabkan kelaparan sumber daya (resource starvation) karena beberapa proses dapat
menunggu sumber daya yang tidak pernah dilepaskan. No Preemption adalah ketika sumber daya
tidak dapat diambil alih atau dilepaskan dari proses yang sedang menggunakannya tanpa
persetujuan dari proses tersebut. Ini berarti sumber daya harus dilepaskan secara sukarela oleh
proses yang sedang menggunakannya sebelum dapat digunakan oleh proses lain. Syarat ini dapat
menyebabkan proses lain menunggu sumber daya yang terjebak dalam proses yang
menggunakannya.

Circular Wait, terjadi ketika ada siklus ketergantungan antara beberapa proses, di mana
setiap proses menunggu sumber daya yang dipegang oleh proses berikutnya dalam siklus. Ini
menciptakan situasi di mana setiap proses dalam siklus saling menunggu, sehingga deadlock dapat
terjadi.

10.8 Penanganan Deadlock

Penanganan dan Masalah Deadlock

Terdapat beberapa cara dalam menangani deadlock, yang secara umumnya ada 4 cara untuk
menanganinya, yaitu:

1. Mengabaikan Masalah Deadlock

 Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan


pencegahan deadlock atau penghindaran deadlock.

 Penghindaran deadlock membutuhkan informasi tentang sumber daya mana yang akan
meminta suatu proses dan berapa lama akan digunakan

 Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau
tidak.

 Hal ini disebabkan oleh keberadaan sumber daya, apakah ia sedang digunakan oleh
proses lain atau tidak.

 Metode ini lebih dikenal dengan Algoritma Ostrich

 Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah dengan berpura-
pura bahwa tidak ada masalah apa pun.

 Hal ini seakan-akan melakukan suatu hal yang fatal, tetapi sistem operasi Unix
menanggulangi Deadlock dengan cara ini dengan tidak mendeteksi Deadlock dan
membiarkannya dan secara otomatis mematikan program sehingga seakan-akan tidak
terjadi apa pun

 Jadi jika terjadi Deadlock, maka tabel akan penuh, sehingga proses yang menjalankan
proses melalui operator harus menunggu pada waktu tertentu.dan mencoba lagi

2. Mendeteksi dan memperbaiki.

 Caranya ialah dengan cara mendeteksi jika terjadi Deadlock pada suatu proses maka
dideteksi sistem mana yang terlibat di dalamnya.

 Setelah diketahui sistem mana saja yang terlibat maka dilakukan perbaikan proses dan
menjadikan sistem berjalan kembali.

 Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak didukung
dengan pendeteksian deadlock serta pencegahannya → maka kita akan sampai pada
kondisi deadlock yang dapat berpengaruh terhadap performance sistem karena sumber
daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu

 Akhirnya sistem akan berhenti dan harus direstart.

 Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah:

 Permintaan sumber daya dikabulkan selama memungkin-kan.

 Sistem operasi memeriksa adakah kondisi circular wait secara

 periodik.

 Pemeriksaan adanya Deadlock dapat dilakukan setiap ada sumber

 daya yang hendak digunakan oleh sebuah proses

 Memeriksa dengan algoritma tertentu.

Anda mungkin juga menyukai