DIX-COMANDO reference
A. Syarat-syarat
terjadinya deadlock :
1.
Mutual
exclution condition
Tiap
sumber daya saat itu diberikan pada tepat satu proses.
2.
Hold
and wait condition / kondisi genggam dan
tunggu
Proses-proses
yang sedang menggenggam sumber daya, menunggu sumber daya – sumber daya yang
baru.
3.
Non-preemption
condition / kondisi non-preemption
Sumber
daya – sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari
proses itu. Sumber daya – sumber daya harus secara eksplisit dilepaskan dari
proses yang menggenggamnya.
4.
Circular
wait condition / kondisi menunggu secara sirkular
Harus
terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu
sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Ketiga syarat pertama merupakan syarat perlu bagi
terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi diatas, tidak
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 dari kondisi tidak terpenuhi maka deadlock tidak terjadi.
B. Pencegahan
deadlock :
1.
tiap proses harus
meminta semua sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai
semuanya diberikan.
2.
Jika proses telah
sedang memegang sumber daya tertentu, untuk permintaan berikutnya proses harus
melepas dulu sumber daya yang dipegangnya. Jika diperlukan, proses meminta
kembali sekaligus dengan sumber daya yang baru.
3.
Beri pengurutan linier
terhadap tipe-tipe sumber daya pada semua proses, yaitu jika proses telah
dialokasikan suatu tipe sumber daya, proses hanya boleh berikutnya meminta
sumber daya tipe pada urutan yang berikutnya.
C. Metode-metode
mengatasi deadlock :
1.
deadlock
prevention / metode pencegahan
terjadinya deadlock
pengkondisian
sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari
sudut tercegahnya deadlock.
2.
deadlock
avoidance / metode penghindaran
terjadinya deadlock
menghindarkan
kondisi yang paling mungkin menimbulkan deadlock
agar memperoleh sumber daya lebih baik. Penghindaran bukan berarti
menghilangkan semua kemungkinan terjadinya deadlock.
Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak pengaksesan
itu. Dengan demikian menghindari terjadinya deadlock.
3.
deadlock
detection and recovery / metode
deteksi dan pemulihan dari deadlock
deteksi
digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa apakah terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah
dapat ditentukan, sistem dipulihkan dari deadlock
dengan metode pemulihan. Metode pemulihan dari deadlock sistem sehingga
beroperasi kembali, bebas dari deadlock. Proses yang terlibat deadlock mungkin
dapat menyelesaikan eksekusi dan membebaskan sumber dayanya
D. Sinkronisasi dan Tujuan sinkronisasi
E. Race Condition
Race
Condition adalah suatu kondisi dimana beberapa proses mengakses dan
memanipulasi suatu data secara konkuren. Nilai akhir dari data tersebut
tergantung dari proses mana yang terakhir selesai dieksekusi.
Contoh pada
masalah Bounded Buffer di atas sebenarnya sudah menggambarkan
terjadinya Race Condition. Produsen dan konsumen saling berlomba meng-update
nilai counter sehingga pada suatu waktu, nilai counter-nya
bisa salah.
F. Mutual
Exclusion.
Pi sedang menjalankan critical section
(dari proses Pi,) maka tidak ada proses-proses lain yang dapat menjalankan critical
section dari proses-proses tersebut. Dengan kata lain, tidak ada dua proses
yang berada di critical section pada saat yang bersamaan.
G. Metode yang diusulkan untuk menjamin mutual
exclusion
H. Model
deadlock dua proses dan dua 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
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.
I. Buat scenario terjadinya Starvation dengan tiga
proses dan dua sumber daya
Tidak ada komentar:
Posting Komentar