Pengertian tentang DeadLock
Deadlock
secara harfiah adalah
kebuntuan. Sedangkan dalam
sistem operasi berarti suatu kondisi di mana sekumpulan proses tidak dapat
berjalan kembali atau tidak adanya komunikasi antar proses. Definisi lainnya
yaitu sekumpulan proses yang terblok yang tiap proses tersebut memegang sumber
daya dan menunggu untuk mendapatkan sumber daya yang dipegang oleh proses di
dalam kumpulan tersebut.
Penyebab utama terjadinya deadlock adalah terbatasnya
sumber daya yang akan digunakan oleh proses-proses. Tiap proses berkompetisi
untuk memperebutkan sumber daya yang ada. Jadi deadlock berhubungan erat dengan
tersedianya sumber daya dari komputer.
Penyebab utama terjadinya deadlock adalah
terbatasnya sumber daya yang akan digunakan oleh proses-proses. Tiap proses
berkompetisi untuk memperebutkan sumber daya yang ada. Jadideadlock berhubungan
erat dengan tersedianya sumber daya dari komputer.
KARAKTERISTIK DEADLOCK
Kondisi yang Diperlukan
Deadlock terjadi bila terdapat
empat kondisi berikut ini secara simultan.
a. Mutual Exclusion : hanya satu proses pada satu
waktu yang dapat menggunakan
sumber daya.
b. Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya
satu
sumber daya menunggu mendapatkan
tambahan sumber daya baru yang dibawa
oleh proses
c. Non-Preemption : sebuah sumber daya dapat
dibebaskan dengan sukarela oleh
proses yang memegangnya setelah
proses menyelesaikan task.
d. Menunggu Secara Sirkuler (Circular Wait) : Terdapat sekumpulan proses {P0,
P1, …, P0} yang menunggu sumber daya
dimana P0 menunggu sumber daya
yang dibawa P1, P1 menunggu sumber daya yang
dibawa P2, dan seterusnya,
Pn–1 menunggu sumber daya yang
dibawa oleh
Pn, dan Pn menunggu sumber daya yang
dibawa P0.
Ketiga syarat pertama merupakan
syarat perlu (necessary conditions) bagi
terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi
kondisi-kondisi
diatas, tak mungkin terjadi deadlock bila tidak ada ketiga kondisi
itu. Deadlock terjadi
berarti terdapat ketiga kondisi
itu, tetapi adanya ketiga kondisi itu belum berarti terjadi
deadlock.
Deadlock baru benar-benar terjadi bila
syarat keempat terpenuhi. Kondisi
keempat merupakan keharusan bagi
terjadinya peristiwa deadlock.
Bila salah satu saja
dari kondisi tidak terpenuhi maka
deadlock tidak terjadi.
Method untuk
Menangani Deadlock
Pada prinsipnya
kita dapat menangani deadlock dengan beberapa cara:
1. Menggunakan
protokol untuk pencegahan atau penghindaran deadlock, memastikan bahwa sistem
tidak akan memasuki kondisi deadlock.
2. Kita bisa
mendeteksi terjadinya deadlock lalu memperbaiki.
3. Kita juga bisa mengabaikan deadlock, hal ini dilakukan pada sistem
operasi berbasis UNIX.
Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta 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. 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 system karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.
Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta 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. 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 system karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.
MENCEGAH DEADLOCK
Metode ini berkaitan dengan
pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi
yang bersih dipandang dari sudut tercegahnya deadlock. Metode ini sering menghasilkan utilisasi sumber daya yang buruk.
Pencegahan deadlock merupakan metode yang banyak dipakai.
Untuk mencegah deadlock dilakukan
dengan meniadakan salah satu dari syarat perlu sebagai berikut
1. Mencegah Mutual Exclusion
Mutual exclusion benar-benar tak dapat dihindari.
Hal ini dikarenakan tidak ada
sumber daya yang dapat digunakan
bersama-sama, jadi sistem harus membawa
sumber daya yang tidak dapat
digunakan bersama-sama.
2. Mencegah Hold and Wait
Untuk mencegah hold and wait,
sistem harus menjamin bila suatu proses meminta
sumber daya, maka proses tersebut
tidak sedang memegang sumber daya yang lain.
Proses harus meminta dan
dialokasikan semua sumber daya yang diperlukan
sebelum proses memulai eksekusi
atau mengijinkan proses meminta sumber daya
hanya jika proses tidak membawa
sumber daya lain. Model ini mempunyai utilitas
sumber daya yang rendah dan
kemungkinan terjadi starvation jika proses
membutuhkan sumber daya yang
popular sehingga terjadi keadaan menunggu yang
tidak terbatas karena setidaknya
satu dari sumber daya yang dibutuhkannya
dialokasikan untuk proses yang
lain.
3. Mencegah Non Preemption
Peniadaan non preemption mencegah proses-proses lain harus
menunggu. Seluruh
proses menjadi preemption, sehingga tidak ada tunggu
menunggu. Cara mencegah
kondisi non preemption :
o Jika
suatu proses yang membawa beberapa sumber daya meminta sumber daya
lain yang tidak dapat segera
dipenuhi untuk dialokasikan pada proses tersebut,
maka semua sumber daya yang
sedang dibawa proses tersebut harus
dibebaskan.
o Proses
yang sedang dalam keadaan menunggu, sumber daya yang dibawanya
ditunda dan ditambahkan pada
daftar sumber daya.
o Proses
akan di restart hanya jika dapat memperoleh sumber daya yang lama dan
sumber daya baru yang diminta.
4. Mencegah Kondisi Menunggu Sirkular
Sistem mempunyai total permintaan
global untuk semua tipe sumber daya. Proses
dapat meminta proses kapanpun
menginginkan, tapi permintaan harus dibuat terurut
secara numerik. Setiap proses
yang membutuhkan sumber daya 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.
Tidak ada komentar:
Posting Komentar