1. Pertemuan 8 & 9
Konkurensi:
Deadlock & Starvation
TIM DOSEN PENGAMPU SISTEM OPERASI
Sarjana Teknik Informatika Fakultas Informatika
SISTEM OPERASI
2. Daftar Isi
1. Prinsip Prinsip Deadlock
2. Deadlock Prevention
3. Deadlock Avoidance
4. Deadlock Detection
5. Perbandingan Metode Penanganan Deadlock
6. Kasus Dinning Philosopher
3. Prinsip Prinsip Deadlock
1. Definisi dan Konsep Deadlock
2. Joint Progress Diagram (JPD)
3. Reusable Resources
4. Consumable Resources
5. Resource Allocation Graphs (RAG)
6. Kondisi Deadlock
4. Definisi dan Konsep Deadlock
Deadlock adalah kondisi dimana sejumlah proses ter-blok
secara permanen akibat saling memperebutkan atau saling
menunggu pesan / resource
Definisi
Solusi Tidak ada solusi yang efisien
Deadlock
prevention
Deadlock
avoidance
Deadlock
detection
8. Solusi Joint Progress Diagram
Contoh Solusi
Proses P1 dan P2 tidak menggunakan resource pada saat yang bersamaan
P1 P2
Get Ra
Get Rb
Get Ra
Release Ra
Release Rb
Get Rb
Release Ra
Get Ra
9. Solusi Joint Progress
Diagram (Simulasi)
P1 P2
get b get a
release b release a
get a get b
release a release b
Ra Rb
11. Reusable Resources
Definisi
Contoh
merupakan resource yang hanya dapat digunakan oleh satu proses saja
dalam satu waktu dan tidak pernah habis (selalu tersedia)
Processor I/O Channel Memory
Device Data Structure
File, database, etc
Semaphore
Kasus Deadlock Dua proses berebutmenggunakan hardisk atau
berebut menggunakan ruang memori
14. Consumable Resources
Definisi
Contoh
Merupakan resource yang dapat dibuat (produced) dan
dihancurkan (destroyed) berulang-ulang
Interrupt Signal message informasi yang terletak di dalam buffer I/O
Kasus Deadlock Dua proses atau lebih saling menunggu pesan
Sumber deadlock, salah satunya kesalahan perancangan
15. Contoh Deadlock pada Consumable Resources
P1
...
Receive (P2)
...
Send(P2, M)
P2
...
Receive (P1)
...
Send(P1, M)
waiting
Deadlock
waiting
16. Resource Allocation Graphs (RAG)
Resource Allocation Graphs (RAG) merupakan grafik berarah yang
menggambarkan status resource dan proses dimana setiap proses dan setiap
resource digambarkan dengan node
Definisi
Grafik
Proses Meminta Resource P • Ra
Proses Memegang Resource P • Ra
18. Kondisi Yang Menyebabkan
Deadlock (1)
Mutual Exclusion
Hold and Wait
Sebuah resource hanya boleh digunakan oleh sebuah proses dalam satu waktu
Kondisi ini memungkinkan deadlock
Sebuah proses boleh terus menerus menggunakan sebuah resource
sambil menunggu resource yang lain
Kondisi ini memungkinkan deadlock
No Preemption Resource yang sedang digunakan oleh suatu proses tidak boleh direbut,
Proses tersebut tidak bisa disela (preempted)
Kondisi ini memungkinkan deadlock
19. Kondisi Yang Menyebabkan Deadlock (2)
Bila ketiga kondisi tersebut terdapat di dalamsebuah
komputer apakah pasti terjadi deadlock ?
Merupakan rangkaian beberapa proses dan
resource yang membentuk sebuah cincin
dimana setiap proses sedang menggunakan
minimal sebuah resource yang juga sedang
dibutuhkan oleh proses di dekatnya
Ra
P1 P2
Ra
Belum tentu, kondisi yang memastikan terjadinya
Deadlock adalah ?
Circular Wait
21. Strategi Penanganan Deadlock
Deadlock Prevention
Menghilangkan salah satu kondisi atau lebih yang memungkinkan terjadinya deadlock
Pada saat perancangan program
DeadlockAvoidance
Dilakukan pemilihan langkah yang dinamis untuk
mencegah terjadinya deadlock berdasarkan alokasi resource saat itu
Pada saat eksekusi program
Deadlock Detection Mendeteksi adanya kondisi yang memungkinkan deadlock dan circular wait,
kemudian melakukan langkah-langkah penanganan
Pada saat eksekusi program
22. Deadlock Prevention
1. Definisi dan Konsep Deadlock Prevention
2. Indirect Method
3. Direct Method
23. Definisi dan Konsep Deadlock
Prevention
Definisi
Indirect Method
Pada saat perancangan
menghilangkan salah satu kondisi atau lebih yang memungkinkan terjadinya deadlock
Sebisa mungkin tidak menggunakan kondisi yang memungkinkan deadlock
berikut ini secara bersamaan (mutual exclusion, hold and wait, dan no preemption)
Direct Method Mencegah terjadinya kondisi circular wait
24. Indirect Method
Mutual Exclusion
Hold & Wait
No Preemption
Tidak bisa dihilangkan, jika terdapat resource yang harus diproteksi
Harus disediakan oleh sistem operasi
setiap proses yang membutuhkan resource akan ter-blok dan baru dapat dieksekusi
jika semua resource yang diperlukan telah tersedia
Tidak efisien,
• Menunggu terlalu lama
• Mengeklaim resource yang belum tentu dibutuhkan
• Tidak mengetahui resource
• Harus mengetahui semua resource
Solusi 1: tetap boleh no preemption
Proses yang sedang menggunakan sebuah resource tidak boleh
menggunakan resource yang lain sebelum resource pertama dilepaskan
Solusi 2: Preemption
Sistem operasi dapat menyela (preempt) proses yang sedang running sehingga resource
yang sedang digunakannya dapat diberikan kepada proses lain
Syarat: prioritas proses harus berbeda
25. Direct Method
Mekanisme
Contoh
Mencegah terjadinya kondisi circular wait,
Setiap resource diberi nomor indeks yang terurut secara linier dan
penggunaannya harus urut sesuai nomor indeksnya.
Proses A membutuhkan resoure Ri kemudian resource Rj, karena i < j, maka program
tersebut benar.
Jika program pada proses B terdapat baris program yang membutuhkan resource Rj
diikuti dengan resource Ri
bisa terjadi deadlock. Kesalahan ada pada proses B karena j > i, seharusnya i < j.
Kekurangan
Tidak efisien, lambat.
Terdapat resource yang sedang tidak digunakan tetapi tidak dapat dipakai
26. Deadlock Avoidance
1. Konsep DeadlockAvoidance
2. Prosess Initiation Denial
3. Resources Allocation Denial
4. Kelebihan dan Kekurangan
27. Konsep Deadlock Avoidance
Konsep
Tidak mempertimbangkan ketiga kondisi
yang memungkinkan terjadinya deadlock
Langkah-langkah
1. Cari informasi kebutuhan resource untuk setiap proses
2. Block proses yang menyebabkan deadlock
3. Jangan berikan resource baru kepada proses yang menyebabkan deadlock
Mekanisme Process Initiation Denial
Resource Allocation Denial
29. Process Initiation Denial (Claim Resource)
Daftar Claim Resource = C = C11 C21 Cn1 C33 C43 Cn3
m
m
C C
C
11 12 1
C C
C
21 22 2
C C C
n n nm
Claim C
1 2
Claimproses ke n
terhadap resource ke m
30. Process Initiation Denial (Daftar Alokasi Resource)
Daftar Alocation Resource A = A11 A21 An1 A33 A43 An3
m
m
A A
A
11 12 1
A A
A
21 22 2
A A A
n n nm
Allocation A
1 2
Alokasi resource ke m
terhadap proses ke n
31. Process Initiation Denial (Aturan)
Rumusan dan aturan
R V
A
j j ij n
i
1
untuk semua j
ij j C R untuk semua i,j
ij ij A C untuk semua i,j
32. Process Initiation Denial (Claim Proses Baru)
Proses baru (Pn+1) dapat dieksekusi jika kondisi berikut terpenuhi:
untuk semua j
푅푗 ≥ + 퐶푖푗
jumlah resource
yang diklaim oleh
proses baru
jumlah resource yang telah
diklaim oleh proses-proses
sebelumnya
퐶 푛+1 푗
푛
푖=1
33. Resource Allocation Denial (konsep)
Menggunakan algoritma banker (seperti model peminjaman
uang pada bank)
State (status) Sistem
Safe State
Unsafe State
alokasi sejumlah resource kepada suatu proses saat ini
kondisi dimana setiap saat setidaknya terdapat
sebuah proses yang dapat dieksekusi,
sehingga seluruh proses dapat dieksekusi hingga selesai
kondisi dimana semua proses tidak dapat dieksekusi (deadlock)
38. Resource Allocation Denial (Contoh kasus – Execution State (1))
Proses Resource
R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3
No
P1 3 2 2 2 0 1 1 2 1 0 1 1 -1 -1 0 Blocked 1 0 0 6 2 3
P2 6 1 3 5 1 1 1 0 2 0 1 1 -1 1 -1 Blocked 5 1 1 4 2 0
P3 3 1 4 2 1 1 1 0 3 0 1 1 -1 1 -2 Blocked 2 1 1 6 2 3
P4 4 2 2 0 0 2 4 2 0 0 1 1 -4 -1 1 Blocked 0 0 2 6 2 3
Ekse
kusi
1
Status Akhir
Avalaible Resource
(Vt+1)
Status
Claim (C) Alokasi (A) C-A (K) Avalaible (Vt) V-K Proses
Status Akhir
Alokasi Proses
ResourceTotal Permintaan proses terhadap
R1 R2 R3
9 3 6
resource (C-K) lebih besar
dibandingkan resource yang
tersedia (Vt)
39. Contoh Algoritma Deadlock Avoidance
Proses
meminta
resource
Resource alloc algoritm Banker algorithm
Valid?
Resource
yang
tersedia
cukup?
blocked
Berikan resource
dan perbaharui
data
Permintaan
safe
error
valid
Tidak valid
cukup
Tidak cukup
Tidak safe
safe
IF alloc [i, *] + request [*] > claim[i, *]
THEN error
IF request [*] > claim[i, *]
THEN blocked
IF claim[k, *] – alloc [k, *] <= currentavail
THEN safe
41. Contoh Algoritma Deadlock Avoidance (Resource Allocation
Algorithm)
Sistem Operasi/20101103 #41
Resource allocation algoritm
Cek valid atau tidak?
Cek resource cukup
atau tidak?
Cek kondisi safe atau tidak
43. Kelebihan dan Kekurangan
Deadlock Avoidance
Kelebihan
Kekurangan
(+) Tidak perlu mem-preempt dan mengembalikan data konteks suatu proses
(+) Lebih fleksibel dibanding metode deadlock prevention
(-) Jumlah kebutuhan resource maksimum setiap proses harus sudah diketahui di awal
(-) Urutan eksekusi proses tidak dapat ditentukan dengan aturan tertentu
(-) Jumlah resource yang dialokasikan ke suatu proses bersifat tetap (tidak boleh berubah)
(-) Proses tidak boleh keluar (exit) selamamasihmemegang resource
44. Deadlock Detection
1. Mekanisme Deadlock Detection
2. Algoritma Deadlock Detection
3. Contoh Deadlock Detection
4. Solusi Jika Terjadi Deadlock
45. Mekanisme Deadlock Detection
Setiap Proses boleh meminta resource selama resource masih tersedia
Setiap periodik Sistem Operasi menjalankan algoritma untuk mendeteksi deadlock
Proses-proses yang tidak menyebabkan deadlock akan diberikan tanda (mark)
Menggunakan matrik Alokasi (A), Vektor Avalaible (V), Vektor Resource (R)
Menggunakan matrik request (Q), berisi daftar resource yang diminta oleh Proses
46. Algoritma Deadlock Detection
Beri tanda (mark) proses yang nilai alokasi (A) = 0.
Inisialisasi temporari vektor W dengan nilai vektor alokasi (A). W = A
Cari proses ke i yang belum diberi tanda.
Bandingkan nilai request proses tersebut (Q) dengan vektor W.
푄푖푗 ≤ 푊푘 , untuk 1 ≤ k ≤ m. Jika tidak ditemukan, terminasi algoritma
Jika nilai Q ≤ W, beri tanda proses tersebut. Tambahkan alokasi (A) ke W
Sistem Operasi/20101103 #46
푊푘 = 푊푘 + 퐴푖푘
Lanjutkan pencarian hingga seluruh proses diperiksa.
47. Contoh Deadlock Detection
Sistem Operasi/20101103 #47
1. Beri tanda (mark) P4. 2. Inisialisasi temporari vektor W
dengan nilai vektor alokasi (A).
W = (0 0 0 0 1)
3. P1 dan P2 tidak diberi tanda, karena
푄푖푗 > 푊푘 . Terminasi algoritma.
Deadlock terdeteksi
48. Solusi Jika Terjadi Deadlock
Sistem Operasi/20101103 #48
Batalkan (kill) semua proses yang mengalami deadlock
Kembalikan status proses tersebut ke status checkpoint yang telah dibuat sebelumnya
(sebelum terjadi deadlock)
Restart proses tersebut
Satu per satu batalkan proses lain yang mengalami deadlock hingga tidak ada lagi proses yang deadlock
Satu per satu ambil (preempt) resource dari proses yang mengalami deadlock
hingga deadlock tidak terjadi lagi
49. Solusi Jika Terjadi Deadlock (pemilihan proses
yang dibatalkan)
Sistem Operasi/20101103 #49
Biaya proses yang paling murah
Paling sedikit menggunakan waktu prosesor
Paling sedikit memberikan hasil
Membutuhkan waktu eksekusi paling lama
Paling sedikit mendapatkan resource
Prioritas terendah
51. Kasus Dining Philosopher
1. Deskripsi Masalah
2. Solusi Dengan Semaphore
3. Solusi Dengan Monitor
52. Deskripsi Masalah Dining Philosophers
1. Terdapat 5 ahli filsafat
3. Setiap ahli filsafat membutuhkan
2 garpu untuk makan spaghetti
4. Ketika seluruh ahli filsafat makan
bersamaan akan terjadiDEADLOCK
5. Bagaimana agar tidak terjadi
deadlock ketika ahli filsafat
makan bersama?
2. Terdapat meja makan bundar
dengan 5 piring dan 5 garpu
53. Solusi untuk Dining Philosophers
Sistem Operasi/20101103 #53
Membeli 5 buah garpu tambahan
Mengajari ahli filsafatmakan dengan satu garpu
Ada pelayan yang bertugas menyuapi ahli filsafat
Ada pelayan yang bertugas mengawasi ruangan,
agar dalam satu waktu hanya ada 4 ahli filsafat yang makan
Semaphore
54. Masalah Dining Philosophers (Semaphore)
Mendapatkan garpu di tangan kanan
Mendapatkan garpu di tangan kiri
Melepaskan garpu di tangan kiri
Melepaskan garpu di tangan kiri
Critical
section
Memungkinkan terjadinya deadlock dan starvation
55. Masalah Dining Philosophers (Semaphore room)
Terdapat semaphore untuk
mengakses ruangan (room)
untuk menjamin hanya 4 orang
yang berada di ruang makan
56. Masalah Dining Philosophers (monitor)
Cari Informasi implementasi monitor untuk permasalahan
dining philosopher
57. Referensi
[STA09] Stallings, William. 2009. Operating System: Internal and
Design Principles. 6th edition. Prentice Hall