Sinkronisasi & Deadlock
Deadlock
• Suatu kondisi dimana 2 proses atau lebih tidak dapat meneruskan eksekusinya oleh prosessor.
• Penyebabnya bisa faktor:
– Eksternal hambatan dari lingkungan luar – Internal oleh proses itu sendiri
• Deadlock disebabkan karena proses mengalami starvation.
• Starvation yaitu job yang sedang dieksekusi namun tidak ada hentinya, padahal proses lain masih
Karakteristik Deadlock
• Mutual exclusion apabila proses menggunakan resource maka tidak boleh ada proses lain
menggunakan resource tsb.
• Hold & wait proses yg sedang akses resource, proses tsb dapat minta izin untuk akses resource lain.
Karakteristik Deadlock
• No Preemption jika proses izin untuk
gunakan resource, sementara resource tdk tersedia maka permintaaan izin tidak dapat dibatalkan.
• Circular Wait Condition jika proses P0
sedang akses resource R1 & minta izin akses R1 dan R2 sedangkan P2 sedang akses R2
Resource ( Sumber Daya )
• OS Berperan sebagai pengatur berbagai tipe sumber daya yang berlainan karena proses-proses maupun job-job juga mengakses resources yang sama.
• Ada 2 jenis resource :
1. Preemtable jika resource dapat diambil dari
proses, job dapat ambil dari proses tanpa merugikan. Contoh : memory.
2. Non Preemtable resource tidak dapat diambil dari proses karena akan timbul kegagalan
Model Deadlock
• Sekelompok proses yang terblok masing-masing menahan resource dan menunggu memperoleh resource yang dipakai oleh proses lain.
• Contoh :
Terdapat 2 proses ( P1 & P2 ) yang ingin ambil resource yaitu R1 & R2 masing-masing sedang menggunakan daya dan masing2 proses
memerlukan resource lainnya maka akan berakibat deadlock.
R0
R1
Graph meminta resource dan
dialokasikan resource
P0
Proses terjadinya deadlock
P1
P2 R1
Resource – Graph Alokasi
• Himpunan P, R, dan E – P = { P1, P2, P3 }; – R = { R1, R2, R3 }; – E = { P1R1, P2R3, R1P2, R2P2,R2P1,R3P3}; • Anggota Resource– Satu anggota resource tipe R1 – Dua anggota resource tipe R2 – Satu anggota resource tipe R3 – Tiga anggota resource tipe R4
Resource – Graph Alokasi
• Status Proses
1. Proses P1 membawa 1 anggota resource tipe R2 dan menunggu untuk mendapatkan anggota resource tipe R1.
2. Proses P2 membawa 1 anggota resource tipe R1 dan R2 dan menunggu untuk mendapatkan 1
anggota resource tipe R3.
Resource – Graph Alokasi
P1 P2 P3 R1 R3 R2 R4Resource – Graph Alokasi
• Tipe – tipe resource antara lain:
a. CPU Cycles ( Preemptable)
b. Memory space ( Preemptable) c. Files ( Non-preemptable)
• Kondisi deadlock dapat dimodelkan dengan menggunakan sebuah graph yang disebut resource alocation graph ( RAG ).
• Terdiri dari 2 simpul :
• Kotak mempresentasikan resources
• Lingkaran mempresentasikan proses
• Terdiri dari 2 arah panah
a. Anak panah permintaan(request) yaitu : dari proses ke resource dan mempunyai arti proses memiliki resource yang diminta & menunggu memperolehnya.
b. Anak panah tugas ( assignment ) yaitu dari instants resource ke proses mempunyai arti proses sedang menahan instan resource
Metode Mengendalikan Deadlock
• Menggunakan protokol untuk meyakinkan bahwa sistem tidak pernah mengalami
deadlock.
• Mengizinkan sistem mengalami deadlock namun harus segera diperbaiki.
• Mengabaikan semua masalah dan
menganggap bahwa deadlock tidak akan terjadi kembali dalam sistem , contoh UNIX
Deadlock Prevention
( Pencegahan Deadlock )
• Sebuah kondisi untuk mengatasi deadlock dengan cara meyakinkan paling sedikit satu dari kondisi penyebab deadlock tidak akan terjadi.
• Mutual Exclusion tetap menjaga resource-resource yang bersifat non-shareable. Yaitu proses menahan resource, proses lain
Deadlock Prevention
( Pencegahan Deadlock )
• Hold & wait apabila suatu proses minta izin untuk akses resource maka proses tsb tidak
boleh membawa resource lain, sebelum proses meminta resource, maka harus melepas semua resource yang dibawa.
• Non preemption jika proses minta izin untuk akses resources sementara resource tidak terpenuhi maka proses tsb harus
Deadlock Prevention
( Pencegahan Deadlock )
Circular Wait memberi nomor pada setiap resource yang ada dan tiap resource hanya boleh akses resource secara berurutan.
• Deadlock Avoidence
Suatu pengujian secara dinamis untuk
meyakinkan bahwa tidak ada kondisi circular wait meliputi banyaknya resource yang
Deadlock Detection
• Ada beberapa cara mendeteksi adanya deadlock :
1. Gagalkan / batalkan semua proses yang deadlock 2. Backup semua proses yang deadlock &
merestract semua proses tersebut.
3. Gagalkan proses-proses yang deadlock secara berturut-turut sehingga tidak ada yang deadlock. 4. Gagalkan alokasi resource-resource secara
Cara Memilih Job Yang dibatalkan
• Beri prioritas dari proses
• Ketahui berapa panjang proses dan berapa lama eksekusinya.
• Ketahui sumber daya yang digunakan proses.
• Resource proses perlu tersedia penuh.
• Berapa banyak proses yang dihentikan.
Penghindaran Deadlock
• State selamat dan state tak selamat.
• State selamat ( safe state )
• Contoh :
• Pada sistem dengan 10 sumber daya setipe, proses A perlu sumber daya maksimum sebanyak 10, sedang saat ini menggenggam 2. proses B memerlukan
sumber daya maksimum 3, sedang saat ini
Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 3 7 Tersedia 4
• Langkah 1 : alokasikan 4 sumber daya ke proses C sehingga sumber daya tersedia tinggal 1 dan nantikan proses C Berakhir.
Proses Jumlah sumber daya
digenggam
Maksimum sumber daya dibutuhkan
A 2 10
Maka setelah proses C selesai menjadi
Proses Jumlah sumber daya
digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 0 0 Tersedia 7
Langkah 2 : alokasikan 2 sumber daya ke proses B, nantikan proses B berakhir.
Proses Jumlah sumber daya
digenggam
Maksimum sumber daya dibutuhkan
Maka setelah proses B selesai menjadi
Proses Jumlah sumber daya
digenggam Maksimum sumber daya dibutuhkan A 2 10 B 0 0 C 0 0 Tersedia 8
Langkah 3 : alokasikan 8 sumber daya ke proses A, nantikan proses A berakhir.
Proses Jumlah sumber daya
digenggam
Maksimum sumber daya dibutuhkan
A 10 10
Maka setelah proses A selesai menjadi
Proses Jumlah sumber daya
digenggam Maksimum sumber daya dibutuhkan A 0 0 B 0 0 C 0 0 Tersedia 0
Maka ketiga proses tersebut dapat
State Tak Selamat ( Unsafe Sate )
• Dikatakan tak selamat jika tidak terdapat cara untuk memenuhi permintaan yang saat ini
ditunda dengan menjalankan proses dengan suatu urutan.
• Contoh :
• Soal dibawah ini adalah seperti soal state
selamat. State ini diubah menjadi tak selamat bila alokasi sumber daya tak terkendali.
Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 2 10 B 1 3 C 3 7 Tersedia 4
State tsb diubah menjadi tak selamat bila
•2 permintaan sumber daya oleh proses A dilayani.
•Permintaan 1 sumber daya oleh proses B dilayani.
Proses Jumlah sumber daya digenggam Maksimum sumber daya dibutuhkan A 4 10 B 2 3 C 3 7 Tersedia 1
Langkah 1 : alokasikan 1 sumber daya ke proses B, sehingga sumber daya tersedia tinggal 1 dan
nantikan proses B berakhir.
Proses Jumlah sumber daya
digenggam
Maksimum sumber daya dibutuhkan
A 4 10
Maka setelah proses B selesai menjadi
Proses Jumlah sumber daya
digenggam Maksimum sumber daya dibutuhkan A 4 10 B 0 0 C 3 7 Tersedia 3
Saat ini hanya tersedia 3 sumber daya sementara 2 proses yang sedang aktif masing-masing
membutuhkan 6 dan 4 sumber daya. Maka kemungkinan terjadi deadlock