Disusun Oleh :
KELAS TIFRP19A
Sistem Operasi | 1
1. Definisi Deadlock
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling
menunggu proses yang lain untuk melepaskan resource yang sedang dipakai.
Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam
kerja proses-proses tersebut. Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi
sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi ataupun tidak
ada komunikasi lagi antar proses. Salah satu contoh sebuah deadlock.
2. Analogi atau contoh suatu proses dikatakan deadlock
3. Resources
Situasi proses diberikan akses eksklusif ke device, device tersebut
resourcenya atau sumber dayanya, Sumber daya terdapat 2 jenis, sebagai berikut.
Sistem Operasi | 2
3.1. Preemptable
Sumber daya dikatakan preemptable jika sumber daya tersebut dapat
diambil (dilepas) dari proses yang sedang memakainya tanpa memberi efek
apapun pada proses tersebut. Sumber daya ini tidak habis dipakai oleh proses
mana pun. Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk
dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini.
Contohnya Ketika sebuah proses memakai disk A dan B, maka akan terjadi
deadlock jika setiap proses sudah memiliki salah satu disk dan meminta disk
yang lain. Contoh dari alat Preemptable yaitu prosesor, kanal M/K, disk,
semafor.
3.2. Nonpreemtable
Sumber daya tidak dapat diambil dari proses yang sedang membawanya
karena akan menimbulkan kegagalan komputasi. Printer adalah salah satu
contohnya. Jika suatu proses sedang menggunakan printer untuk mencetak
sesuatu, maka printer tersebut tidak dapat diambil untuk mencetak sesuatu
dari proses lain. Sumber daya jenis ini biasanya berpotensi terjadinya
deadlock.
4. Penyebab Deadlock
Deadlock itu akan terjadi apabila syarat - syarat dari deadlock tersebut
terpenuhi. Adapun 4 kondisi penyebab deadlock adalah sebagai berikut:
4.3. No Preemption
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,
Sistem Operasi | 3
selain itu seluruh proses menunggu dan mempersilahkan hanya proses
yang memiliki sumber daya yang boleh berjalan.
4.4. Circular wait condition
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya
yang dipegang proses berikutnya. Kondisi untuk Terjadinya Deadlock
a) Terjadi deadlock bila terdapat ketiga kondisi itu, tetapi adanya ketiga
kondisi itu belum berarti terjadi deadlock.
b) Deadlock benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
keempat merupakan keharusan bagi terjadinya deadlock.
c) Deadlock bisa terjadi pada saat proses akan mengakses objek seperti
file,device, dll secara tidak semestinya. Objek tersebut dinamakan resource.
5. Penanganan Deadlock
Sistem Operasi | 4
terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta
pencegahannya, maka kita akan sampai pada kondisi deadlock yang dapat
berpengaruh terhadap performance sistem karena sumber daya tidak dapat
digunakan oleh proses sehingga proses - proses yang lain juga terganggu.
Akhirnya sistem akan berhenti dan harus direstart.
Sistem Operasi | 5
mengalokasikan sumber daya bagi tiap proses dalam keadaan tertentu dan
masih dapat terjadi deadlock. Status aman bukanlah status deadlock, jadi
status deadlock merupakan status tidak aman, tetapi tidak selamanya status
tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat
terjadi.
Sistem Operasi | 6
pernah terjadi deadlock. Namun jika membiarkan ada dua
atau lebih proses mengakses sebuah sumber daya yang sama
akan menyebabkan chaos. Langkah yang digunakan adalah
dengan spooling sumber daya, yaitu dengan mengantrikan job
- job pada antrian dan akan dilayani satu - satu. Beberapa
masalah yang mungkin terjadi adalah:
Sistem Operasi | 7
5.4.1.4. Circular wait
Dengan meniadakan circular wait, terdapat dua pendekatan,
yaitu.
a) Mengatur agar setiap proses hanya dapat menggunakan
sebuah sumber daya pada suatu waktu, jika
menginginkan sumber daya lain maka sumber daya yang
dimiliki harus dilepas.
b) Membuat penomoran pada proses-proses yang mengakses
sumber daya. Suatu proses dimungkinkan untuk dapat
meminta sumber daya kapan pun, tetapi permintaannya
harus dibuat terurut.
Sistem Operasi | 8
6.2. Contoh kasus penanganan menggunakan algoritma banker
Terdapat 5 proses yaitu P0 sampai P4, 3 Tipe sumber daya yaitu, A(10
Anggota),
B(5 Anggota), C(7 Anggota).
Nilai Allocation = Sudah diketahui
Nilai Max = Sudah diketahui
Nilai Available = Isi jumlah Sumber daya – Jumlah Baris Allocation
Nilai Need = Max – Allocation
Safe State = Need ≤ Available (Jika proses dapat dieksekusi, Maka
proses akan melepaskan alokasinya untuk penambahn
kepada available baru) / jika aturan proses tidak terpenuhi
maka akan lanjut ke proses selanjutnya.
P0 → need ≤ available
743 ≤ 332
( tidak dapat di eksekusi / unsafe)
P1 → need ≤ available
122 ≤ 332
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 322+200 = 532
P2 → need ≤ available
600 ≤ 532
(Tidak dapat di eksekusi / Unsafe)
P3 → need ≤ available
011 ≤ 532
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 532+211 = 743
P4 → need ≤ available
Sistem Operasi | 9
431 ≤ 743
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 743+002 = 745
P0 → need ≤ available
431 ≤ 745
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 745+010 = 755
P2 → need ≤ available
600 ≤ 755
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 755+302= 1057
Urutan Eksekusi {P1,P3,P4,P0,P2}
Sehingga Sistem dalam keadaan state selamat dan memenuhi kriteria safety.
Sistem Operasi | 10