Deadlock terjadi ketika dua atau lebih proses saling menunggu sumber daya masing-masing untuk waktu yang tidak terbatas. Ada beberapa penyebab deadlock seperti eksklusivitas bersama, hold and wait, tidak dapat diputus, dan menunggu sirkular. Sistem dapat mencegah, menghindari, atau mendeteksi dan memulihkan dari deadlock dengan memeriksa permintaan sumber daya untuk menghindari kondisi tidak aman.
4. PENGERTIAN DEADLOCK
• Keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk
waktu yang tidak terbatas lamanya.
• Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah.
• Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan
oleh 2 proses.
5. CONTOH KASUS
• Deadlock dapat dianalogikan lagi seperti ketika dikelas TI-1B sebanyak 29 orang
ini sedang dilaksanakan UTS mata kuliah Sistem Operasi. Soal berupa esai yang
harus ditulis tangan. Namun ternyata di kelas tersebut hanya terdapat satu buah
pulpen. Ketika seluruh mahasiswa berebut ingin menggunakan pulpen tersebut
terlebih dahulu disbanding yang lain untuk mengerjakan soal dan tidak ada yang
mau mengalah atau memberi kesempatan kepada oranglain untuk menggunakan
pulpen terlebih dahulu.
6. • Ketika sistem operasi menjalankan beberapa program secara bersamaan sehingga
komputer menjadi “Macet”(Heng , kata anak-anak zaman sekarang).
7. PENYEBAB DEADLOCK
• Mutual eklusif, merupakan jaminan bagi proses bahwa
hanya akan ada satu proses yang menggunakan satu
resource dalam waktu tertentu, dengan kata lain resource
tidak dapat digunakan oleh proses secara bersama-sama
sehingga akan semakin besar kemungkinan terjadi
deadlock.
• Hold & wait, dimana proses yang memiliki/ memegang
(hold) resource meminta resource tambahan untuk dapat
RUNNING, tetapi resource tambahan tersebut tidak
pernah didapatnya.
8. • Tidak bisa disela (preemtion), resource yang dimiliki
satu proses tidak akan diberikan kepada proses lain
sebelum proses itu sendiri mendapatkan resource
tambahan dari proses lain sehingga dia akan melepaskan
resource yang dimilikinya untuk proses lain, hal ini
berlaku untuk semua proses yang ada, dengan kata lain
tidak akan ada proses yang mengalah dan membiarkan
dirinya disela proses lain.
• Menunggu sirkular, proses menunggu dalam model
sirkular yang tidak mungkin mendapatkan solusi karena
satu sama lain saling menunggu tanpa batas waktu tertentu
(tak terhingga).
9. CARA MENGATASI DEADLOCK
• Metode pencegahan terjadinya Deadlock (Deadlock
Preventation)
• Metode ini banyak dipakai, dan metode ini berhubungan dengan
pengkondisian sistem agar menghilangkan kemungkinan
terjadinya deadlock, pencegahan adalah sulusi yang terbaik
dipandang dari sudut tercegahnya deadlock. Dan metode ini
sering menghasilkanutilisasi sumber daya yangburuk.
10. • Metode penghindaran terjadinya Deadlock (Deadlock Avoidence)
• Tujuan dari metoda ini adalah untuk menghindari terjadinya kondisi-kondisi
yang memungkinkan terjadinya deadlock, dan memperoleh utilisasi sumber daya yg
baik.Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock,
• Secara teoritis deadlock dimungkinkan.Sistem operasi memeriksa semua permintaan sumber
daya secara hati-hati, jika sistem operasi mengetahui bahwa alokasi sumber daya
menimbulkan resiko deadlock, maka sistem akan menolak pengaksesan dan dengan demikian
menghindari terjadinya deadlock
11. • Metode deteksi dan pemulihan Deadlock (Deadlock detection and recovery)
• Metode deteksi ini digunakan pada sistem yang mengizinkan terjadinya deadlock, Tujuan dari
metode ini adalah untuk memeriksa apakah telah terjadi deadlock dan menentukan proses
serta sumber daya yang terlibat dalam deadlock secara presisi setelah ditemukan sistem
dipulihkan dari deadlock dengan metode pemulihan. (metode pemulihan dari deadlock
adalah untuk menghilangkan deadlock sistem sehingga dapat beroperasi kembali)Proses yang
terlibat dalam deadlock mungkin akan dapat menyelesaikan eksekusi dan membebaskan
sumber daya dari sumber dayanya.
12. PENGHINDARAN DEADLOCK
• Gagasan dasar penghindaran deadlock adalah untuk memberi akses
kepermintaan sumber daya yang tidak menimbulkan deadlock, cara ini biasa
digunakan dengan mengalokasikan sumber daya dan memeriksa dampak
pemberian akses kesuatu permintaan. Jika pemberian akses sumber daya
tidak mungkin menimbulkan deadlock maka sumber daya diberikan
kepeminta sumber daya, jika timbul deadlock maka proses yang meminta di
suspend sampai waktu permintaan nyaman (tidak timbul deadlock) baru
diberikan, kondisi ini biasanya terjadi setelah satu sumber daya atau
lebih yang semuladipegang oleh proses-yang aktif lainnya dilepas.
• Untuk penghindaran deadlock diperlukan pengertian mengenai state
selamat (safe state) dan dan state tak selamat (unsafe state),