DEADLOCK SISTEM OPERASI
A. Definisi
Deadlock
Deadlock pada suatu proses disebabkan oleh proses menunggu
suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses
dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu
suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan
tersebut.
Contoh terjadinya deadlock pada suatu persimpangan, yaitu:
Terdapat satu jalur
pada jalan.
Mobil digambarkan sebagai proses yang sedang menuju sumber
daya.
Untuk mengatasinya beberapa mobil harus preempt (mundur).
Sangat memungkinkan untuk terjadinya starvation (kondisi
proses tak akan mendapatkan sumber daya).
B. Strategi
Menghadapi Deadlock
Mengabaikan adanya deadlock.
Memastikan bahwa deadlock tidak akan pernah ada, baik dengan
metode pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan
pernah terjadi.
Membiarkan deadlock untuk terjadi.
C. Mencegah
Deadlock
Metode Pencegahan dianggap sebagai solusi yang bersih
dipandang dari sudut tercegahnya deadlock. Tetapi pencegahan akan mengakibatkan
kinerja utilisasi sumber daya yang buruk.
Metode pencegahan menggunakan pendekatan dengan cara
meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi
Coffman (1971).
Syarat pertama yang akan dapat ditiadakan adalah Mutual
Exclusion, jika tidak ada sumber daya yang secara khusus diperuntukkan bagi
suatu proses maka tidak akan pernah terjadi deadlock. Namun jika membiarkan ada
dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan
chaos.
Langkah yang digunakan untuk mencegah deadlock :
1.
Spooling sumber daya, yaitu dengan mengantrikan
job-job pada antrian dan akan dilayani satu-satu.
Masalah yang mungkin terjadi
adalah:
Tidak semua dapat di-spool,
tabel proses sendiri tidak mungkin untuk di-spool.
Kompetisi pada ruang disk untuk
spooling sendiri dapat mengarah pada deadlock.
2.
Meniadakan kondisi hold and wait . Langkah yang
digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka
butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang
dibutuhkan. Namun jika terdapat sumber daya yang sedang terpakai maka proses
tersebut tidak dapat memulai prosesnya.
Masalah yang mungkin terjadi:
Sulitnya mengetahui berapa
sumber daya yang dibutuhkan pada awal proses.
Tidak optimalnya pengunaan
sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak
digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari
awal.
3.
Meniadakan syarat keempat circular wait.
Terdapat dua pendekatan, yaitu:
Mengatur agar setiap proses
hanya dapat menggunakan sebuah sumber daya pada suatu waktu, jika menginginkan
sumber daya lain maka sumber daya yang dimiliki harus dilepas.
Membuat penomoran pada
proses-proses yang mengakses sumber daya. Suatu proses dimungkinkan untuk dapat
meminta sumber daya kapan pun, tetapi permintaannya harus dibuat terurut.
D. Menghindari
Deadlock
Pendekatan metode ini adalah dengan hanya memberi kesempatan
ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode
ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses
tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada
proses yang meminta.
Kondisi Aman (Safe
state)
Suatu keadaan dapat dinyatakan sebagai safe state jika tidak
terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya
yang ditunda tanpa menghasilkan deadlock dengan cara mengikuti urutan tertentu.
Kondisi Tak Aman
(Unsafe state)
Suatu state dinyatakan sebagai state tak selamat (unsafe
state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini
ditunda dengan menjalankan proses-proses dengan suatu urutan.
Posting Komentar