Kelompok 7
TIF. K. 18 A
Sekolah Tinggi Teknologi Bandung
Contoh Deadlock dan Cara Mengatasinya
Deadlock ialah 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.
Pengoperasian I/O
RESOURCE
Resource dapat berupa hardware device (seperti tape drive, memori) atau berupa
informasi (record dalam suatu basis data, variable global, dll).
Preemptable
Nonpreemtable.
Kondisi untuk Terjadinya Deadlock
1. Mutual exclusion (mutual exclusion conditional)
Hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang
ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi
dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
Hold and wait. Proses yang sedang memakai sumber daya boleh meminta
sumber daya lagi maksudnya menunggu hingga benar-benar sumber daya yang
diminta tidak dipakai oleh proses lain, hal ini dapat menyebabkan kelaparan
sumber daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam
waktu yang lama.
Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh
proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus
dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh
proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya
yang boleh berjalan.
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang
dipegang proses berikutnya.
Kondisi untuk Terjadinya Deadlock
1. Terjadi deadlock bila terdapat ketiga kondisi itu, tetapi adanya ketiga
kondisi itu belum berarti terjadi deadlock.
2. Deadlock benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
keempat merupakan keharusan bagi terjadinya deadlock.
3. Deadlock bisa terjadi pada saat proses akan mengakses objek seperti
file,device, dll secara tidak semestinya. Objek tersebut dinamakan
resource.
Metode Mengatasi Deadlock
1.Mengabaikan masalah deadlock
Mengabaikan Masalah Deadlock
Algoritma Ostrich
Menghadapi deadlock dengan berpura-pura tidak ada masalah apapun
Dipakai jika yakin deadlock akan sangat jarang terjadi dan biaya untuk
deteksi atau pemulihan deadlock tinggi
Deteksi
Perbaikan/Pemulihan
Preemption
o Mengambil sementara sumber daya dari proses yang
menggunakannya
o Sangat sulit dilakukan
Melacak kembali
o Proses yang diambil sumber dayanya ketika dilakukan preemption
akan berhenti, dibutuhkan langkah untuk melanjutkan proses
tersebut
o Sulit dilakukan sehingga umumnya proses dimulai lagi dari awal
Menghentikan proses yang menyebabkan deadlock – cara paling umum
digunakan
Kriteria Pemilihan Proses Yang Akan Disingkirkan
Menghindari Deadlock (Avoidance)
Menghindari deadlock dengan cara hanya memberi akses ke permintaan sumber
daya yang tidak mungkin menimbulkan deadlock.
Algoritma Bankir
Adanya safe state (kondisi aman) dan unsafe state (kondisi tidak aman)
Digambarkan sebagai seorang bankir yang memberi pinjaman ke
sekelompok peminjam
Setiap peminjam memberikan batas pinjaman maksimum dan
pengembalian wajib tepat waktu
Peminjaman secara bertahap, dan bankir memastikan bahwa dana selalu
tersedia bagi peminjam yang lain (safe state)
Safe State
State selamat (safe state) : jika tidak deadlock dan terdapat cara untuk memenuhi
semua permintaan yang ditunda tanpa menghasilkan deadlock dengan
menjalankan proses secara hati-hati mengikuti suatu urutan tertentu..
Contoh :
Sistem dengan 10 sumber daya setipe, proses A memerlukan sumber daya
maksimum sebanyak 10, sedang saat ini menggenggam 2 sumber daya.
proses B memerlukan sumber daya maksimum sebanyak 3, sedang saat ini
menggenggam 1 sumber daya. Proses C memerlukan sumber
dayamaksimum sebanyak 7, sedang saat ini menggenggam 3 sumber daya.
Masih tersedia 4 sumber daya.
Pencegahan Deadlock (Prevention)