Sinkronisasi & Deadlock AGUS PAMUJI
SISTEM OPERASI - Sinkronisasi & Deadlock
1
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 menunggu SISTEM OPERASI - Sinkronisasi & Deadlock
2
SISTEM OPERASI - Sinkronisasi & Deadlock
3
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.
SISTEM OPERASI - Sinkronisasi & Deadlock
4
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
SISTEM OPERASI - Sinkronisasi & Deadlock
5
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 komputasi/proses, contoh : printer SISTEM OPERASI - Sinkronisasi & Deadlock
6
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. SISTEM OPERASI - Sinkronisasi & Deadlock
7
P0
R0
R1
P1
Graph meminta resource dan dialokasikan resource
SISTEM OPERASI - Sinkronisasi & Deadlock
8
Proses terjadinya deadlock P1
R2
R1
P2
SISTEM OPERASI - Sinkronisasi & Deadlock
9
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
SISTEM OPERASI - Sinkronisasi & Deadlock
10
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. 3. Proses P3 membawa 1 anggota resource tipe R3.
SISTEM OPERASI - Sinkronisasi & Deadlock
11
Resource – Graph Alokasi R1
R3
P1
P2 P3
R2
SISTEM OPERASI - Sinkronisasi & Deadlock
R4
12
Resource – Graph Alokasi • Tipe – tipe resource antara lain: a. b. c. d.
CPU Cycles ( Preemptable) Memory space ( Preemptable) Files ( Non-preemptable) I/O Devices (Non-preemptable)
SISTEM OPERASI - Sinkronisasi & Deadlock
13
Resource – Graph Alokasi • Kondisi deadlock dapat dimodelkan dengan menggunakan sebuah graph yang disebut resource alocation graph ( RAG ). • Terdiri dari 2 simpul : • Kotak mempresentasikan resources • Lingkaran mempresentasikan proses
SISTEM OPERASI - Sinkronisasi & Deadlock
14
Resource – Graph Alokasi • 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
SISTEM OPERASI - Sinkronisasi & Deadlock
15
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 SISTEM OPERASI - Sinkronisasi & Deadlock
16
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 resourceresource yang bersifat non-shareable. Yaitu proses menahan resource, proses lain meminta resource harus menunggu sampai proses melepaskannya. SISTEM OPERASI - Sinkronisasi & Deadlock
17
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 membebaskan semua resource. SISTEM OPERASI - Sinkronisasi & Deadlock
18
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 tersedia SISTEM OPERASI - Sinkronisasi & Deadlock
19
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 berturut-turut tidak ada deadlock SISTEM OPERASI - Sinkronisasi & Deadlock
20
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. • Tentukan proses interactive dan batch SISTEM OPERASI - Sinkronisasi & Deadlock
21
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 menggenggam 1. proses C perlu sumber daya sebanyak 7 saat ini menggenggam 3, masih tersedia 4 sumber daya SISTEM OPERASI - Sinkronisasi & Deadlock
22
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
B
1
3
C
7
7 Tersedia 0 SISTEM OPERASI - Sinkronisasi & Deadlock
23
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
A
2
10
B
3
3
C
0
0 SISTEM OPERASI - Sinkronisasi & Deadlock
Tersedia 5
24
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
B
0
0
C
0
0 Tersedia 0
SISTEM OPERASI - Sinkronisasi & Deadlock
25
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 menyelesaikan tugas nya dengan sempurna
SISTEM OPERASI - Sinkronisasi & Deadlock
26
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. SISTEM OPERASI - Sinkronisasi & Deadlock
27
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.
SISTEM OPERASI - Sinkronisasi & Deadlock
28
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
B
3
3
C
3
7 Tersedia 0 SISTEM OPERASI - Sinkronisasi & Deadlock
29
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
SISTEM OPERASI - Sinkronisasi & Deadlock
30