Sinkronisasi & Deadlock AGUS PAMUJI 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 2
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. 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 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 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. 7
P0 R1 R0 P1 Graph meminta resource dan dialokasikan resource 8
Proses terjadinya deadlock P1 R1 R2 P2 9
Resource Graph Alokasi Himpunan P, R, dan E P = { P1, P2, P3 }; R = { R1, R2, R3 }; E = { P1 R1, P2 R3, R1 P2, R2 P2,R2 P1,R3 P3}; Anggota Resource Satu anggota resource tipe R1 Dua anggota resource tipe R2 Satu anggota resource tipe R3 Tiga anggota resource tipe R4 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. 11
Resource Graph Alokasi R1 R3 P1 P2 P3 R2 R4 12
Resource Graph Alokasi Tipe tipe resource antara lain: a. CPU Cycles ( Preemptable) b. Memory space ( Preemptable) c. Files ( Non-preemptable) d. I/O Devices (Non-preemptable) 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 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 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 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. 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. 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 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 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 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 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 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 A 2 10 B 3 3 C 0 0 Maksimum sumber daya dibutuhkan 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 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 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. 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. 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 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 30