Bobby Gustafyan - Kata Pengantar, Daftar Isi, Latar Belakang, Landasan Teori
Dino Damara P - Pembahasan Critical Section
Miqdad Ali A- Semaphore dan Monitors
M. Siananda - masalah masalah Klasik pada Sinkronasi
Selanjutnya saya Viona akan membahas materi mengenai Deadlock,
1. Deadlock
Deadlock yang mungkin dapat terjadi pada
suatu proses disebabkan proses itu 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.Terdapat kaitan antara overhead dari mekanisme koreksi dan
manfaat dari koreksi deadlock itu
sendiri. Pada beberapa kasus, overhead
atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal
yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain,
seperti pada real-time process control,
mengizinkan deadlockakan membuat
sistem menjadi kacau dan membuat sistem tersebut tidak berguna.
Contoh berikut ini terjadi pada
sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:
· Sangat memungkinkan untuk
terjadinya starvation (kondisi proses
tak akan mendapatkan sumber daya).
Ø Model Deadlock
Urutan kejadian
pengoperasian perangkat I/O adalah :
- meminta /
request
: meminta
palayanan I/O
- memakai / use
: memakai
perangkat I/O
- melepaskan /
release : melepaskan pamakaian perangkat I/O
Model deadlock
dua proses dan dua sumber daya
Deadlock dapat
digambarkan sebagai graph.
Misalnya :
- dua proses, P0
dan P1
- dua sumber daya
kritis, R0 dan R1
- proses P0 dan
P1 harus mengakses kedua sumber daya tersebut
kondisi berikut
dapat terjadi :
- R0 diberikan ke
P0 (P0 meminta sumber daya R0), ditandai busur (edge) berarah dari proses P0 ke
sumber
daya R0
- sedangkan
sumber daya R1 dialokasikan ke P1, ditandai dengan busur (edge) berarah dari
sumber daya R1
ke proses P1.
Ø Skenario yang menimbulkan deadlock
Dapat terjadi
skenario sebagai berikut :
- P0 dialokasikan
R0
- P1 dialokasikan
R1
Kemudian,
- P0 sambil masih
menggenggam R0, meminta R1
- P1 sambil masih
menggenggam R1, meminta R0
Kejadian ini
mengakibatkan deadlock karena sama-sama akan saling menunggu. Graph deadlock
ini akan
digambarkan
sebagai graph melingkar. Terjadinya deadlock ditandai munculnya / terjadinya
graph melingkar.
Karena untuk
melanjutkan eksekusi memerlukan kedua sumber daya sekaligus, maka kedua proses
akan saling
menunggu sumber
daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang
telah
dipegangnya
karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses
dalam kondisi
deadlock, tidak
dapat membuat kemajuan apapun.
Deadlock tidak
hanya terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi
dengan melibatkan
lebih dari dua
proses dan dua sumber daya.
Ø Karakteristik Deadlock
Menurut Coffman
dalam bukunya "Operating
System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu:
a. Mutual
ExclusionSuatu kondisi dimana setiap sumber daya diberikan tepat pada
satu proses pada suatu waktu.
b. Hold
and WaitKondisi yang menyatakan proses-proses yang sedang memakai
suatu sumber daya dapat meminta sumber daya yang lain.
c. Non-pre-emptiveKondisi
dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat
diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.
d. Circular
WaitKondisi
yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki
oleh suatu proses oleh proses lainnya.
Ø Metode
Penanganan Deadlock
1. Menggunakan
suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami
deadlock.
2. Mengijinkan
sistem mengalami deadlock, namun kemudian harus segera dapat memperbaikinya.
Ø Strategi menghadapi Deadlock
b. Memastikan bahwa deadlock tidak akan pernah ada, baik
dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat
kondisi deadlock, tetapi menghentikan
setiap proses yang kemungkinan mencapai deadlock.
c. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang
saling mendukung, yaitu:
Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya
Materi selanjutnya Akan dibahas oleh Leo Putra