Bab 7: Deadlock. Permasalahan Deadlock

dokumen-dokumen yang mirip
Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

Sistem Operasi Komputer. Pembahasan Deadlock

Masalah Deadlock. Contoh Persimpangan Jalan. Resource-Allocation Graph. Deadlock

SISTEM OPERASI. Deadlock.

Deadlock. Pada kasus ini juga bisa terjadi kelaparan, yaitu ada proses yang tidak terlayani

Sistem Operasi. Deadlock & Penanganannya. Aditya Wikan Mahastama

DEADLOCK. KELOMPOK : Aurora Marsye Mellawaty Vidyanita Kumalasari Y

DEADLOCK PADA DISTRIBUSI DATA DAN PEMECAHANNYA

Bab 23. Deadlocks Pendahuluan. Gambar Contoh kasus deadlock pada lalu lintas di jembatan

1. DEADLOCK. Diagram Graf

Sinkronisasi & Deadlock AGUS PAMUJI. SISTEM OPERASI - Sinkronisasi & Deadlock

Deadlock Ch. 7. Deadlock. SISTIM OPERASI (Operating System) IKI Johny Moningka

SISTEM OPERASI DEADLOCK

November Sistem operasi #0

Sistem Operasi Pertemuan 6 Concurrency: Deadlock & Starvation. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Konsep Deadlock. Kelompok 54.7 Ferry Sulistiyanto ( ) Ibnu Mubarok ( )

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

Concurrency C oncurrency 2 : Deadlock dan Starvation (P ( ertemuan ke ert -15) November 2014

DEADLOCK. Haryono Setiadi, ST, M.Eng

Sistem Operasi. Deadlock

Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

BAB VIII DEADLOCK ...

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

Komunikasi & Sinkronisasi Proses

MAKALAH DEADLOCK. DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom. oleh :

Sinkronisasi dan Deadlock Sistem Operasi

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM VIII Deadlock

Deadlock. Gambaran Umum Deadlock

Operating System: An O verview. Ch. 5: Deadlock

Q U I Z 3B - SOLUSI Mngt Memory + Konkurensi 2. By: Endro Ariyanto (END)

Menghindari Deadlock Pada Sistem Operasi

Q U I Z 3A - SOLUSI Mngt Memory + Konkurensi 2. By: Endro Ariyanto (END)

DEADLOCK PADA WINDOWS DAN LINUX

Bab 24. Diagram Graf Pendahuluan

Pertemuan #3: Sinkronisasi dan Deadlock

BAB 2 LANDASAN TEORI

Pertemuan 4 KONKURENSI

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

Operating System. Synchronization & Deadlock. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

DEADLOCK = kompi loe nge-hang tuh..

7. Pengaturan Proses

Deadlock Kasus Pada Sistem Operasi

Pencegahan Deadlock pada Alokasi Resource dalam Sistem Operasi Menggunakan Algoritma Greedy

PEMAKAIAN GRAF UNTUK PENDETEKSIAN DAN PENCEGAHAN DEADLOCK PADA SISTEM OPERASI

Koordinasi Antar Proses

BAB 2 LANDASAN TEORI. Secara umum, sebuah sistem komputer terbagi atas hardware, sistem operasi, program

DEADLOCK & ALGORITMA OSTRICH

Optimasi Algoritma Banker dengan Algoritma Greedy

Oleh : Arief Ristanto ( ) Edwin Kurniawan ( )

Aplikasi Graf dalam Pendeteksian Deadlock

Sistem Operasi. Kongkurensi

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

Kelas: Nilai (Diisi Dosen):... IF

SISTEM OPERASI ( DITINJAU DARI SEGI PROSES) Seperti diketahui bahwa sistem operasi, terdiri dari sekumpulan

Tujuan Pembelajaran. Memahami proses swapping Memahami proses alokasi memori berurutan (Contiguous Memori Allocation)

KOMPONEN DASAR SISTEM OPERASI, DEADLOCK, DAN IMPLEMENTASI GRAF UNTUK MENDETEKSI DEADLOCK PADA SISTEM OPERASI

1/3/2013. Race Condition adalah situasi di mana beberapa proses mengakses

SISTEM OPERASI. Sri Kusumadewi

Sistem Operasi. Partisi Statis, Partisi Dinamis Sistem Paging dan Segmentasi. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

PENERAPAN KRIPTOGRAFI DAN GRAF DALAM APLIKASI KONFIRMASI JARKOM

PEDOMAN WAWANCARA UNTUK PENGAJAR

IMPLEMENTASI PENANGANAN DEADLOCK MENGGUNAKAN METODE TASKKILL

BAB II TINJAUAN PUSTAKA

Fungsi Manajemen Memori

KONGRUENSI. Pengertian. Mutual Exclusion. Masalah yang harus diselesaikan dalam kongruensi. (lebih. dapat saling berinteraksi.

Penguncian pada Concurrency Control

DEADLOCK & RECOVERY SYSTEM

PRAKTIKUM SISTEM OPERASI LAPORAN RESMI MODUL 2 KONSEP DASAR SISTEM OPERASI (2)

Jawaban Soal UTS Instalasi dan Penggunaan Sistem Operasi Semester Genap 2014/2015 D3 Teknik Informatika, Fakultas Ilmu Terapan, Universitas Telkom

BAB 6 METODE PENGUJIAN

Pendeteksian Deadlock dengan Algoritma Runut-balik

MANAJEMEN MEMORI. Manajemen Memori 1

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Rencana Perkuliahan Sistem Operasi CSG3E3 2015/2016

PENDETEKSIAN DAN PENCEGAHAN DEADLOCK PADA SISTEM OPERASI MENGGUNAKAN PENDEKATAN GRAPH ALOKASI SUMBER DAYA SKRIPSI. Oleh : NENNA IRSA SYAHPUTRI

1/3/2013. Konsep Dasar memori

Distributed System. 9 Concurrency Control. Genap 2011/2012. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

4. SISTEM OPERASI TERDISTRIBUSI

SISTEM PEMODELAN SIMULASI PERMOHONAN KREDIT MENGGUNAKAN ALGORITMA BANKER

Kongkurensi LPOHLVSFOTJ!

RESUME SISTEM OPERASI MAIN MEMORI

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Apa yang akan dipelajari?

Sistem Operasi. Konkurensi

A. Deskripsi Singkat. B. Tujuan Instruksional Umum (TIU) C. Bahasan. SILABUS MATA KULIAH Kode MK: Semester: Bobot SKS: 3. Matakuliah : SISTEM OPERASI

Bab 8: Manajemen Memori. Latar Belakang

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

BAB 1 PENDAHULUAN. Algoritma Banker dikemukakan oleh Edsger W.Djikstra dan merupakan salah satu

MANAJEMEN MEMORI SISTEM OPERASI

Sistem Operasi PENGATURAN PROSES

Konsep SISTEM OPERASI. Pengenalan Sistem Operasi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Bab 9: Virtual Memory. Latar Belakang

Konsep Dasar Sistem Operasi

Transkripsi:

Bab 7: Deadlock Model system Karakteristik deadlock Metode penanganan deadlock Pencegahan deadlock Pengabaian deadlock Pendeteksian deadlock Perbaikan dari deadlock Kombinasi penanganan deadlock 8.1 Permasalahan Deadlock Sekumpulan proses yang di-blok, dimana masing-masing proses membawa resource dan menunggu mendapatkan resource yang dibawa proses lain dalam kumpulan tersebut Contoh Sistem mempunyai 2 tape drive P 1 dan P 2 masing-masing membawa satu tape drive dan masing-masing memerlukan tape drive lainnya. Contoh lain semaphore A dan B, diinisialisasi 1 P 0 P 1 wait (A); wait(b) wait (B); wait(a) 8.2 1

Contoh Jembatan Penyebrangan Jalur hanya untuk satu arah Setiap bagian jembatan dianggap sebagai resource Jika terjadi deadlock, dapat dipecahkan jika satu mobil mundur (melepas resource dan rollback) Beberapa mobil harus mundur jika terjadi deadlock Kemungkinan starvation 8.3 Model Sistem Jenis Resource R 1, R 2,..., R m CPU cycles, memory space, I/O devices Setiap jenis resource R i mempunyai anggota W i Setiap proses yang menggunakan resource melakukan hal di bawah ini: request use release 8.4 2

Karakteristik Deadlock Deadlock dapat terjadi jika terdapat 4 kondisi yang terjadi secara simultan Mutual exclusion: hanya satu proses pada satu waktu yang dapat menggunakan satu resource. Hold and wait: sebuah proses membawa sedikitnya satu resource sedang menunggu mendapatkan resource tambahan yang dibawa oleh proses-proses lain No preemption: sebuah resource dapat dibebaskan hanya oleh proses yang membawanya, setelah proses menyelesaikan task/pekerjaan Circular wait: terdapat sekumpulan {P 0, P 1,, P 0 } dari proses yang menunggu dimana P 0 menunggu resource yang dibawa oleh P 1, P 1 menunggu resource yang dibawa oleh P 2,, P n 1 menunggu resource yang dibawa oleh P n, dan P 0 menunggu resource yang dibawa oleh P 0. 8.5 Resource-Allocation Graph Sekumpulan vertek V dan sekumpulan edge/garid E. V dibagi menjadi dua jenis: P = {P 1, P 2,, P n }, sekumpulan semua proses dalam sistem R = {R 1, R 2,, R m }, sekumpulan semua jenis resource yang beada dalam sistem request edge garis berarah P 1 R j assignment edge garis berarah R j P i 8.6 3

Resource-Allocation Graph (Lanj.) Proses Jenis resource dengan 4 anggota P i meminta anggota dari R j P i R j P i membawa satu anggota dari R j P i R j 8.7 Contoh Resource Allocation Graph 8.8 4

Resource Allocation Graph dengan Deadlock 8.9 Resource Allocation Graph dengan Siklus tetapi Tidak Terjadi Deadlock 8.10 5

Fakta Dasar Jika graph tidak terdapat siklus tidak terjadi deadlock. Jika graph terdapat siklus Jika hanya satu anggota tiap jenis resource, maka terjadi deadlock. Jika terdapat beberapa anggota pada satu jenis resource, maka kemungkinan terjadi deadlock. 8.11 Metode Penanganan Deadlock Menjamin bahwa sistem tidak pernah memasuki deadlock state. Mengijinkan sistem memasuki deadlock state dan kemudian dilakukan perbaikan. Mengabaikan permasalahan deadlock dan menganggap deadlock tidak pernah terjadi dalam sistem; digunakan sebagian besar sistem operasi, termasuk UNIX. 8.12 6

Pencegahan Deadlock Mencegah dari kemungkinan 4 karakteristik deadlock. Mutual Exclusion tidak tersedia resource yang dapat digunakan bersama-sama; semua proses membawa resource yang tidak dapat digunakan bersama-sama. tidak dapat dicegah Hold and Wait harus menjamin bahwa ketika sebuah proses meminta resource, proses tersebut tidak sedang membawa resource Sebelum eksekusi proses perlu meminta dan dialokasikan semua resource, atau memperbolehkan proses meminta resource hanya jika proses tidak membawa resource Utilitas resource menjadi rendah; kemungkinan starvation 8.13 Pencegahan Deadlock (lanj.) No Preemption Jikas sebuah proses membawa beberapa resource dan meminta resource lain yang tidak dapat segera dipenuhi, maka semua resource yang sedang dibawa proses tersebut harus dibebaskan Resource yang dapat ditunda (preempt resource) ditambahkan ke daftar resource untuk proses yang menunggu Proses akan di-restart ketika proses hanya mendapatkan kembali resource lama setelah meminta resource baru. Circular Wait memberlakukan k pemesanan terlebih dahulu untuk total jenis resource yang dibutuhkan dan setiap proses meminta resource sesuai urutan nomor. 8.14 7

Pengabaian Deadlock Sistem harus mempunyai tambahan ketersediaan informasi sebelumnya Model yang sangat sederhana dan sangat berguna. Setiap proses perlu mendeklarasikan jumlah maksimal setiap jenis resource yang dibutuhkan. Algoritma deadlock-avoidance secara dinamis menguji state dari resource-allocation untuk menjamin tidak pernah terjadi kondisi circular-wait. State dari resource-allocation ditentukan dengan jumlah resource yang tersedia dan yang dialokasikan dan jumlah maksimal kebutuhan dari proses. 8.15 Safe State (state aman) Jika sebuah proses meminta resource yang tersedia, sistem harus memutuskan apakah alokasi tersebut menyebabkan sistem masih dalam safe state. Sistem dalam safe state jika semua proses dalam kondisi aman. Sekumpulan proses <P 1, P 2,, P n > dikatakan aman jika untuk setiap P i, resource yang diminta P i masih dapat dipenuhi dengan resource yang tersedia dan resource yang dibawa oleh semua P j, dimana j<i. Jika resource yang diperlukan P i tidak segera tersedia, maka P i dapat menunggu sampai semua P j selesai. Jika P j selesai, P i dapat memperoleh resource yang diperlukan, mengeksekusinya, menghasilkan nilai dari resource yang dialokasikan dan terminasi. Jika P i diterminasi, P i+1 dapat memperoleh resource yang diperlukan dan seterusnya. 8.16 8

Fakta Dasar Jika sistem dalam state aman tidak terjadi deadlock. Jika sistem dalam state tidak aman kemungkinan terjadi deadlock. Pengabaian menjamin sistem tidak pernah masuk ke state tidak aman. 8.17 Safe, Unsafe, Deadlock State 8.18 9

Algoritma Resource-Allocation Graph Claim edge P i R j mengindikasikan bahwa proses P j kemungkinan meminta resource R j ; direpresentasikan dengan garis putus-putus. Claim edge berubah menjadi request edge jika proses meminta resource. Jika suatu resource dibebaskan oleh proses, assignment edge berubah menjadi claim edge. Resource harus ditentukan sebelumnya dalam sistem 8.19 Resource-Allocation Graph untuk Pengabaian Deadlock 8.20 10

Unsafe State pada Resource-Allocation Graph 8.21 Algoritma Banker Untuk banyak anggota resource dalam satu jenis resource (Multiple instances). Setiap proses harus ditentukan sebelumnya penggunaan maksimum. Jika sebuah proses meminta resource maka proses harus menunggu. Jika sebuah proses mendapatkan semua resource maka harus dikembalikan dalam suatu batasan waktu. 8.22 11

Struktur Data untuk Algoritma Banker Misalnya n = jumlah proses, dan m = jumlah jenis resource. Available: vektor panjang m. jika available[j] = k, terdapat k anggota dari jenis resource R j tersedia. Max: matriks n x m. Jika Max [i,j] = k, maka proses P i mungkin meminta paling banyak k anggota dari jenis resource R j. Allocation: matriks n x m. Jika Allocation[i,j] = k maka P i sedang dialokasikan k anggota dari R j. Need: matriks n x m. Jika Need[i,j] = k, maka P i mungkin memerlukan k anggota dari R j untuk menyelesaikan task/pekerjaan. Need [i,j] = Max[i,j] Allocation [i,j]. 8.23 Algoritma Safety 1. Misalnya Work dan Finish adalah vektor dengan panjang masing-masing m dan n. Inisialisasi: Work = Available Finish [i] =false untuk i - 13 1,3,, n. 2. Cari dan i sebagai berikut: (a) Finish [i] = false (b) Need i Work Jika tidak ada i yang memenuhi, ke langkah 4. 3. Work = Work + Allocation i Finish[i] = true ke langkah 2. 4. Jika Finish [i] == true untuk semua i, maka sistem dalam safe state. 8.24 12

Algoritma Resource-Request untuk Proses P i Request = vektor untuk meminta proses P i. Jika Request i [j] = k maka proses P i menginginkan k anggota dari jenis resource R j. 1. Jika Request i Need i ke langkah 2. Lainnya, terjadi kondisi error, karena proses meminta resource melebihi maksimum. 2. Jika Request i Available, ke langkah 3. Lainnya, P i harus menunggu, karena resource tidak tersedia. 3. Melakukan alokasi resource yang diminta ke P i dengan memodifikasi state sebagai berikut: Available = Available - Request i ; Allocation i = Allocation i + Request i ; Need i = Need i Request i;; Jika safe resource dialokasikan ke P i. jika unsafe P i harus menunggu dan state resourceallocation yang lama harus disimpan 8.25 Contoh Algoritma Banker 5 proses P 0 sampai dengan P 4 ; 3 jenis resource A (10 anggota), B (5 anggota) dan C (7 anggota). Snapshot pada waktut 0 : Allocation Max Available A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 211 1 222 2 2 P 4 0 0 2 4 3 3 8.26 13

Contoh Algoritma Banker (lanj.) Isi dari matrik Need didefinisikan Max Allocation. Need ABC P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 Sistem dalam safe state jika < P 1, P 3, P 4, P 2, P 0> memenuhi kriteria algoritma safety. 8.27 Contoh: P 1 Meminta (1,0,2) Cek apakah Request Available (apakah, (1,0,2) (3,3,2) true). Allocation Need Available A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 002 0 431 Eksekusi algoritma safety menunjukkan bahwa <P 1, P 3, P 4, P 0, P 2 > memenuhi kriteria safety. Apakah permintaan (3,3,0) oleh P 4 dapat dipenuhi? Apakah permintaan (0,2,0) oleh P 0 dapat dipenuhi? 8.28 14

Pendeteksian Deadlock Mengijinkan sistem memasuki deadlock state Algoritma deteksi Skema perbaikan 8.29 Satu Anggota untuk Setiap Jenis Resource Menggunakan graf wait-for Node (titik) adalah proses-proses. P i P j jika P i menunggu P j. Secara periodik menjalankan algoritma yang mencari siklus pada graf. Algoritma untuk mendeteksi siklus dalam suatu graf membutuhkan operasi sebesar n 2, dimana n adalah jumlah vertek dalam graf. 8.30 15

Resource-Allocation Graph dan Wait-for Graph Resource-Allocation Graph Hubungan wait-for graph 8.31 Beberapa Anggota untuk Setiap Jenis Resource Available: vektor panjang m mengindikasikan jumlah resource yang tersedia untuk setiap jenis resource. Allocation: matriks n x m mendefinisikan jumlah resource dari setiap jenis resource yang sedang dialokasikan untuk setiap proses. Request: matriks n x m mengindikasikan permintaan saat ini dari setiap proses. Jika Request [i j ] = k, maka proses P i sedang meminta anggota k lebih banyak untuk jenis resource R j. 8.32 16

Algoritma Deteksi 1. Misalnya Work dan Finish adalah vektor panjang m dan n, diinisialisasi : (a) Work = Available (b) For i = 1,2,, n, jika Allocation i 0, maka Finish[i] = false; lainnya, Finish[i] = true. 2. Temukan indeks i yang memenuhi 2 hal di bawah ini: (a) Finish[i] == false (b) Request i Work Jika tidak ada i yang memenuhi, ke langkah 4. 3. Work = Work + Allocation i Finish[i] = true ke langkah 2. 4. Jika Finish[i] == false, untuk beberapa i, 1 i n, maka sistem dalam deadlock state. Sehingga, jika Finish[i] == false, maka P i deadlock. Algoritma memerlukan operasi sebanyak O(m x n 2) untuk mendeteksi apakah sistem dalam deadlock state. 8.33 Contoh Algoritma Deteksi 5 proses yaitu P 0 s/d P 4 ; 3 jenis resource A (7 anggota), B (2 anggota), dan C (6 anggota). Snapshot pada waktu T 0 : Allocation Request Available A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 211 1 100 0 P 4 0 0 2 0 0 2 Urutan <P 0, P 2, P 3, P 1, P 4 > akan menghasilkan Finish[i] = true untuk semua i. 8.34 17

Contoh Algoritma Deteksi (lanj.) P 2 meminta tambahan anggota jenis C. Request A B C P 0 0 0 0 P 1 2 0 2 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 State dari sistem? Apakah resource yang dibawa proses P 0 dapat di-klaim? Tapi resource menjadi tidak mencukupi untuk memenuhi permintaan proses-proses yang lain. Terjadi deadlock, terdiri dari proses P 1, P 2, P 3, dan P 4. 8.35 Penggunaan Algoritma Deteksi Kapan dan berapa sering, sangat tergantung pada: Berapa sering deadlock yang sama terjadi? Berapa banyak proses yang perlu di roll back? Satu untuk setiap siklus disjoint Jika algoritma deteksi dipanggil secara sewenangwenang, mungkin ada banyak siklus dalam resource graph sehingga kita tidak akan bisa membedakan mana dari banyak proses deadlock yang "menyebabkan" deadlock. 8.36 18

Perbaikan dari Deadlock: Menghentikan Proses Menghentikan semua proses yang deadlock. Menghentikan satu demi satu proses pada satu waktu sampai siklus deadlock dieliminasi. Bagaimana urutan pemilihan proses yang dihentikan? Prioritas proses Berapa lama proses berjalan dan berapa lama lagi selesai Resource dari proses yang digunakan Resource dari proses yang harus dipenuhi Berapa proses yang perlu dihentikan Apakah proses interaktif atau batch? 8.37 Perbaikan dari Deadlock: Resource Preemption Pilih korban cost minimal. Rollback kembali ke beberapa safe state, restart proses pada state tersebut. Starvation proses yang dipilih sebagai korban selalu sama, termasuk jumlah rollback menjadi faktor cost. 8.38 19

Pendekatan Kombinasi untuk Penanganan Deadlock Kombinasi 3 pendekatan dasar Pencegahan (prevention) Pengabaian (avoidance) Pendeteksian (detection) memungkinkan menggunakan pendekatan optimal untuk setiap resource dalam sistem. Melakukan partisi resource dalam kelompok pemesanan secara hierarki. Menggunakan teknik yang tepat untuk menangai deadlock dalam setiap kelompok. 8.39 Deadlock pada Trafik 8.40 20