DEADLOCK
MODUL
Ditujukan Untuk Memenuhi Tugas Mata Kuliah Sistem Operasi
Di Susun Oleh :
Husni Mubarok
Semester :
II
NIM :
13090516
Dosen Pembimbing : Dian Novia
Usemahu, S.Kom
![http://2.bp.blogspot.com/-xq4wQ4WGVDU/UMHJXv6a2lI/AAAAAAAAAJU/zHvFqFAq9qk/s1600/ikmi+logo.jpg](file:///C:%5CUsers%5Chp%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.jpg)
JURUSAN AKUNTANSI KOMPUTER
INSTITUT KOMPUTER MANAJEMEN INFORMATIKA
RISKINA BEKASI
TAHUN AJARAN 2013 M/ 1434 H
A. Pengertian
Deadlock atau pada beberapa buku disebut Deadly Embrace adalah keadaan dimana dua program
memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain.
Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain
memberikan sumber dayanya, tetapi tidak ada yang mengalah. Juga bisa dikatakan
Deadlock adalah proses menunggu suatu
kejadian tertentu yang tak akan pernah terjadi.
Contoh :
Misalkan
terdapat dua buah proses , yaitu P1 dan P2 dan dua buah sumber daya kritis
Yaitu R1 dan
R2 . Proses P1 dan P2 harus mengakses
kedua sumber daya tersebut,
dengan kondisi
ini maka akan terjadi R1 akan diberikan kepada P1, dan R2 akan di
berikan kepada
P2 , karena didalam melakukan eksekusi kita memerlukan kedua sum-
ber daya
tersebut sekaligus maka kedua proses akan saling menunggu sumber daya
lain
selamanya, proses tidak melepaskan sumber daya yang telah dipegangnya
karena
menunggu sumber daya lain yang tak pernah diperolehnya. Maka kedua pro-
ses dalam
kondisi Deadlock yang tidak dapat
membuat kemajuan apapun, dan Dead-
lock merupakan
kondisi terparah karena dapat melibatkan banyak proses dan semua-
nya tidak
mengakhiri proses secara benar.
Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.
Empat kondisi tersebut adalah:
1. Mutual Exclusion . Kondisi yang pertama adalah mutual exclusion yaitu
proses memiliki hak milik pribadi terhadap sumber daya yang sedang
digunakannya. Jadi, hanya ada satu proses yang menggunakan suatu sumber daya.
2. Hold and Wait . Kondisi yang kedua adalah hold and wait yaitu
beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya.
3. No Preemption . Kondisi yang selanjutnya adalah no preemption
yaitu sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya
secara sukarela setelah ia selesai menggunakannya.
4. Circular Wait . Kondisi
yang terakhir adalah circular wait yaitu kondisi membentuk siklus yang
berisi proses-proses yang saling membutuhkan.
Urutan kejadian pengoperasian perangkat input/output
adalah Sbb:
a.
Meminta
(request) :meminta pelayanan
perangkat input/output
b Memakai (user) :memakai perangkat input/output
c Melepaskan
(release) :melepaskan pemakaian
perangkat input/output
B. Model
Deadlock
Model deadlock dua proses dan dua sumber daya
Misalnya :
a.
Dua buah
proses P1 dan P2
b Dua buah sumber daya R1 dan R2
![]() |
|||
![]() |
|||
|
|
Gbr a
Gbr
b
Gambar. 1
Deadlock dua proses dan dua sumber daya
Dari gambar diatas dapat kita lihat
bahwa P0 meminta sumber daya pada R0, sedangkan P1 meminta
sumber daya pada R1 , kemudian
P0 sambil menggenggam sumber daya R0 meminta
sumber daya R1 sedangkan P1 sambil mengenggam sumber
dayaR1 juga meminta sumber daya pada R0 kejadian inilah yang mengakibatkan Deadlock
seperti kita lihat pada gambar dibawah ini
graph deadlock ini digambarkan sebagai graph melingkar dan terjadinya deadlock ini juga ditandai dengan muncul nya graph melingkar:
![]() |
Gambar 2.
Graph Deadlock dengan dua prose dan dua sumber daya
Deadlock dapat juga terjadi dengan melibatkan lebih dari
dua proses dan dua sumber daya. Urutan kejadian pengoperasian perangkat I/O
adalah:
Ø
Meminta /
request : meminta pelayanan I/O
Ø
Memakai /
use : memakai perangkat I/O
Ø
Melepaskan
/ relase : melepaskan pemakaian
perangkat I/O
C. Syarat –
syarat terjadinya deadlock:
·
Mutual Exclusion . Kondisi yang
pertama adalah mutual exclusion yaitu proses memiliki hak milik
pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu
proses yang menggunakan suatu sumber daya.
·
Hold and Wait Condition. Proses – proses yang
sedang menggenggam sumber daya yang telah dialokasikan untuknya sementara
menunggu sumber daya – sumber daya tambahan yang baru.
·
No Preemption Condition . Kondisi yang selanjutnya adalah no preemption
yaitu sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya
secara sukarela setelah ia selesai menggunakannya.
·
Circular
Wait Condition. Harus terdapat rantai sirkuler / satu lingkaran proses dari dua
proses atau lebih dimana setiap proses memegang satu atau lebih sumber daya
yang diminta oleh proses berikutnya pada lingkaran tersebut, 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.
D. Metode –
metode mengatasi deadlock
1.
Deadlock prevention/ metode pencegahan terjadinya
deadlock
Pengkondisian system
agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi
yang bersih dipandang dari sudut terjadi tercegahnya deadlock. Jika mulainya
satu atau lebih proses akan menyebabkan terjadinya deadlock, proses tersebut
tidak akan dimulai sama sekali.
Ø Tiap proses harus meminta resource yang
dibutuhkan sekaligus dan tidak bisa berjalan sampai sampai semua didapat ﴾untuk “wait for”﴿
Ø Jika ada resource yang tidak terpenuhi, yang
harus dilepas ﴾untuk “no preemption”﴿
Ø Urutkan tipe – tipe resource secara linier/
linier ordering ﴾untuk “circular wait”﴿
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 system operasi mengetahui bahwa alokasi sumber daya
menimbulkan resiko deadlock, system menolak/ menghindari pengaksesan itu.
Dengan demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan
algoritma Banker yang diciptakan oleh Dijkstra.
3.
Deadlock detection and recovery/ metode deteksi dan
pemulihan dari deadlock
Deteksi digunakan
pada system yang mengijinkan terjadinya deadlock, dengan memeriksa apakah
terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock
secara presisi. Begitu telah dapat ditentukan, system dipulihkan dari deadlock
degan metode pemulihan. Metode pemulihan dari deadlock system sehingga
beroperasi kembali, bebas dari deadlock. Proses yang terlibat deadlock mungkin
dapat menyelesaikan eksekusi dan membebaskan sumber dayanya.
E.
Pencegahan
Deadlock
v Tiap proses harus meminta sumber daya yang
diperlukan sekaligus dan tidak berlanjut sampai semuanya diberikan.
v Jika proses telah sedang memgang 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.
v Beri pengurutan linier terhadap tipe – tipe
sumber pada semua proses, yaitu jika proses telah dialokasikan suatu tipe
sumber daya, proses hanya boleh berikutnya meminta sumber daya tipe pada urutan
yang berikutnya.
Saran pencegahan
deadlock diatas merupakan cara meniadakan salahsatu dari syarat perlu. Syarat
pertama perlu jelas tidak bisa di tiadakan, kalau tidak menghendaki kekacauan
hasil.
Daftar Pustaka
Usemahu
Dian Novia. 2014. Modul Sistem Operasi.
Institut Komputer dan Manjemen Informatika Bekasi
http://www.slideshare.net/septianraha/makalah-sistem-operasi-elna-ningsi ﴾Ahad, 09 Februari: 12.30 WIB﴿
operasi.doc&ei=S0jrUrvlF8yTrgeSnIDoCg&usg=AFQjCNHePwgVmeexPsJyR5bHU4qKKezOkw&bvm=bv.60444564,d.bmk
﴾Ahad, 09 Februari: 12.30
WIB﴿
http://mas-devid.blogspot.com. ﴾Ahad, 09 Februari: 12.30 WIB﴿
Tidak ada komentar:
Posting Komentar