๐ฏ Capaian Pembelajaran
Setelah mempelajari materi ini, mahasiswa diharapkan mampu:
- Memahami konsep deadlock dalam sistem operasi
- Menjelaskan kondisi terjadinya deadlock
- Menganalisis penyebab dan dampak deadlock
- Memahami metode penanganan deadlock
- Menerapkan algoritma Banker (Deadlock Avoidance)
1. ๐ง Konsep Dasar Deadlock
1.1 Pengertian
Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu resource sehingga tidak ada yang bisa melanjutkan eksekusi.
๐ผ๏ธ Ilustrasi Deadlock
6
๐ง Narasi:
Bayangkan:
- Proses A memegang resource 1 dan menunggu resource 2
- Proses B memegang resource 2 dan menunggu resource 1
โก Keduanya terjebak selamanya
2. โ ๏ธ Karakteristik Deadlock (Coffman Conditions)
Deadlock terjadi jika keempat kondisi berikut terpenuhi:
๐ผ๏ธ Diagram Coffman Conditions
7
2.1 Mutual Exclusion
Resource tidak dapat dibagi
2.2 Hold and Wait
Proses memegang resource sambil menunggu resource lain
2.3 No Preemption
Resource tidak bisa diambil paksa
2.4 Circular Wait
Proses saling menunggu secara melingkar
๐ Ringkasan
| Kondisi | Penjelasan |
|---|---|
| Mutual Exclusion | Resource eksklusif |
| Hold & Wait | Menunggu sambil memegang |
| No Preemption | Tidak bisa dipaksa |
| Circular Wait | Menunggu melingkar |
3. ๐ Resource Allocation Graph (RAG)
๐ผ๏ธ Diagram RAG
7
๐ง Penjelasan:
- Node โ proses & resource
- Edge โ hubungan request/alokasi
๐ Jika terdapat cycle โ kemungkinan deadlock
4. ๐งจ Dampak Deadlock
- Sistem berhenti (hang)
- Resource tidak digunakan
- Penurunan performa
- Kerugian sistem
5. ๐ ๏ธ Strategi Penanganan Deadlock
5.1 Deadlock Prevention
Menghilangkan salah satu kondisi Coffman.
๐ Strategi:
| Kondisi | Solusi |
|---|---|
| Mutual Exclusion | Sharing resource |
| Hold & Wait | Minta semua resource di awal |
| No Preemption | Paksa pelepasan |
| Circular Wait | Urutan resource |
๐ง Narasi:
Metode ini mencegah deadlock sebelum terjadi, tetapi bisa mengurangi efisiensi.
5.2 Deadlock Avoidance
Menghindari deadlock dengan analisis keadaan sistem.
๐ก Konsep Safe State
Sistem aman jika:
โก Semua proses bisa selesai tanpa deadlock
๐ผ๏ธ Safe vs Unsafe State
8
๐งฎ Algoritma Banker
Metode untuk menentukan apakah sistem dalam keadaan aman.
๐ Contoh Tabel:
| Proses | Max | Allocation | Available |
|---|---|---|---|
| P1 | 7 | 3 | 3 |
| P2 | 5 | 2 | 3 |
Langkah:
- Hitung Need = Max โ Allocation
- Tentukan proses yang bisa jalan
- Simulasikan eksekusi
๐ง Narasi:
Banker algorithm seperti bank:
- Hanya memberi pinjaman jika aman
5.3 Deadlock Detection
Sistem membiarkan deadlock terjadi lalu mendeteksinya.
๐ผ๏ธ Detection Diagram
8
5.4 Recovery
Setelah deadlock terdeteksi:
Cara:
- Terminate proses
- Preempt resource
- Restart sistem
6. โ๏ธ Perbandingan Strategi
| Metode | Kelebihan | Kekurangan |
|---|---|---|
| Prevention | Aman | Tidak efisien |
| Avoidance | Optimal | Kompleks |
| Detection | Fleksibel | Risiko tinggi |
| Recovery | Solusi akhir | Mahal |
7. ๐ง Studi Kasus Nyata
Kasus:
Sistem database
๐ Analisis:
- Transaksi A mengunci tabel 1
- Transaksi B mengunci tabel 2
- Keduanya saling menunggu
โก Deadlock terjadi
8. ๐ป Implementasi Sederhana (Konsep)
Process A: lock(R1)
Process B: lock(R2)Process A: request(R2)
Process B: request(R1)
โก Deadlock terjadi
9. โ ๏ธ Perbedaan Deadlock, Starvation, Livelock
| Konsep | Penjelasan |
|---|---|
| Deadlock | Saling menunggu |
| Starvation | Tidak mendapat resource |
| Livelock | Bergerak tapi tidak selesai |
10. ๐ Latihan
- Apa itu deadlock?
- Sebutkan 4 kondisi deadlock!
- Jelaskan Banker Algorithm!
- Apa perbedaan prevention dan avoidance?
๐ฏ Kesimpulan
- Deadlock adalah masalah serius dalam sistem operasi
- Terjadi karena 4 kondisi Coffman
- Ada berbagai metode penanganan
- Pemilihan metode tergantung kebutuhan sistem
๐ Pengembangan Materi Selanjutnya
โก Manajemen Memori
โก Virtual Memory
โก File System