Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Deadlock.

Presentasi serupa


Presentasi berjudul: "Deadlock."— Transcript presentasi:

1 Deadlock

2 Pembahasan System Model Karakteristik Deadlock
Metode-metode Penanganan Deadlock Deadlock Prevention Deadlock Avoidance Deadlock Detection

3 Deadlock Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya

4 Resources (1) Contoh resources sistem komputer
printers tape drives Proses-proses membutuhkan akses ke resource secara teratur Contoh 1 : suatu proses memegang (hold) resource A dan meminta resource B pada saat yang sama proses lain sedang memegang resource B dan meminta resource A masing-masing proses melakukan block, dalam kondisi seperti ini terjadi deadlock

5 Resources (2) Contoh 2 : P0 P1 semaphores A dan B, di-inisialisasi 1
wait (A); wait(B) wait (B); wait(A) signal(A) signal(B) signal(B) signal(A)

6 Resources (3) Contoh 3 : Bridge Crossing Traffic hanya satu arah
Masing-masing bagian jembatan dapat digambarkan sebagai resource. Jika deadlock terjadi, dapat diselesaikan dengan cara satu mobil mundur ke belakang. Beberapa mobil harus kembali jika terjadi deadlock Memungkinkan terjadinya starvation

7 Resources (4) Deadlock terjadi ketika… Preemptable resources
proses-proses diberikan hak akses secara eksklusif ke devices (resources) Preemptable resources dapat diambil dari proses tanpa menimbulkan efek yang buruk Nonpreemptable resources akan menyebabkan proses gagal jika diambil

8 System Model Tipe resource R1, R2, . . ., Rm
CPU cycles, memory space, I/O devices Masing-masing proses melakukan utilisasi resources Meminta (request) resource Menggunakan resource Membebaskan (release) the resource

9 4 Kondisi Terjadinya Deadlock
Kondisi Mutual exclusion hanya satu proses dalam satu waktu yang dapat memegang (hold) resource Hold and wait condition suatu proses memegang satu resource dan me-request resource yang lain No preemption condition resource hanya dapat di-release setelah proses menyelesaikan task-nya pada resource tersebut Circular wait condition Masing-masing proses menunggu resource yang digunakan oleh proses lain secara berantai. Terdapat himpunan proses yang sedang menunggu {P0, P1, …, P0} sedemikian sehingga P0 menunggu resource yang dipegang oleh P1 , P1 sedang menunggu resource yang dipegang oleh P2, …, Pn–1 . Pn–1 menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .

10 Resource-Allocation Graph (1)
Terdapat himpunan vertices V dan himpunan edges E. V dipartisi ke dalam dua tipe : P = {P1, P2, …, Pn}, himpunan proses dalam sistem. R = {R1, R2, …, Rm}, himpunan tipe resource dalam sistem. Request edge – directed edge P1  Rj Assignment edge – directed edge Rj  Pi

11 Resource-Allocation Graph (2)
Proses Tipe Resource dengan 4 instances Pi meminta (requests) instance dari Rj Pi mendapat (holding) instance dari Rj Pi Rj Pi Rj

12 Contoh Resource Allocation Graph

13 Resource Allocation Graph-Deadlock

14 Siklus Graph P1  R1  P2  R3  P3  R2  P1 P2  R3  P3  R2  P2
Proses P1, P2 dan P3 akan mengalami deadlock Proses P2 menunggu resource R3 yang dibawa oleh P3 Disisi lain, P3 menunggu proses P1 atau P2 untuk membebaskan resource R2 Proses P1 menunggu P2 untuk membebaskan R1

15 Resource Allocation Graph Cycle - Tidak Deadlock

16 Siklus Graph P1  R1  P3  R2  P1
Tidak ada proses yang mengalami deadlock P4 dapat membebaskan satu anggota resource tipe R2 yang kemudian dapat dialokasikan ke P3 sehingga mampu memutuskan siklus yang ada.

17 Basic Facts Jika graph tidak mengandung cycle  no deadlock.
Jika graph mengandung cycle  Jika hanya satu instance per tipe resource, maka terjadi deadlock. Jika beberapa instances per tipe resource, kemungkinan dapat terjadi deadlock.

18 Metode-metode Penanganan Deadlocks
Memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi (state) deadlock. Memungkinkan sistem untuk masuk ke dalam kondisi deadlock dan kemudian melakukan recovery (pemulihan). Mengabaikan masalah deadlock dan membuat deadlock tidak pernah terjadi dalam sistem; digunakan pada OS umumnya (Unix).

19 Metode Pencegahan Deadlock (1)
Cara pencegahan (Prevention) dari sisi permintaan (request) resources : Mutual Exclusion – tidak diperlukan untuk resource-resource yang di-share; harus dipegang (hold) untuk resource-resource yang tidak di-share (nonsharable resources). Hold and Wait – harus dijamin bahwa kapanpun suatu permintaan proses pada resource, proses tersebut tidak memegang resource yang lain. Membutuhkan proses untuk me-request dan mengalokasikan resources sebelum memulai eksekusi, atau membolehkan proses untuk me-request resource hanya ketika proses tidak sedang memegang resource. Utilisasi resource yang rendah memungkinkan terjadinya starvation.

20 Metode Pencegahan Deadlock (2)
No Preemption Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secara langsung dialokasikan, maka semua resource yang sedang dipegang dibebaskan (released). Preempted resources ditambahkan ke list resources dimana proses sedang menunggu. Proses akan di-restart hanya jika dapat mengambil kembali (regain) resource, juga resource yang baru yang di-request. Circular Wait Membuat penomoran pada proses-proses yang mengakses resource. Suatu proses dimungkinkan untuk dapat meminta resource kapanpun, tetapi permintaannya harus dibuat terurut.

21 Tabel Deadlock Syarat Langkah Kelemahan Mutual Exclusion
Spooling resource Dapat menyebabkan chaos Hold & Wait Meminta resource diawal Sulit memperkirakan di awal dan tidak optimal No Pre-emptive Mengambil resource di tengah jalan Hasil proses tidak akan baik Circular Wait Penomoran permintaan resource Tidak ada penomoran yang memuaskan semua pihak

22 Metode Penghindaran Deadlock (1)
Memberi kesempatan ke permintaan resource yang tidak mungkin menyebabkan deadlock. Jika pemberian akses tidak mungkin mengarah pada deadlock, maka resource akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi aman (safe state) Jika tidak terjadi deadlock Kondisi tidak aman (unsafe state) Jika tidak terdapat cara untuk memenuhi semua permintaan

23 Metode Penghindaran Deadlock (2)
Membutuhkan sistem yang memiliki informasi resource yang tersedia. Masing-masing proses memastikan jumlah maksimum resource yang diperlukan. Algoritma penghindaran (avoidence) deadlock memastikan tidak akan terjadi kondisi circular wait. Kondisi (state) alokasi resource didefinisikan sebagai jumlah dan alokasi resource yang tersedia dan maksimum permintaan resource oleh proses.

24 Basic Facts Jika sistem dalam kondisi aman (safe state)  tidak ada deadlock. Jika sistem dalam kondisi tidak aman (unsafe state)  kemungkinan dapat terjadi deadlock Pendekatan penghindaran (avoidence) memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi unsafe state.

25 Safe, Unsafe , Deadlock State

26 Algoritma Bankir (1) Dijkstra (1965) : algoritma penjadwalan dapat menghindari deadlock, dikenal dengan Algoritma Bankir. Algoritma ini digambarkan : bank sebagai OS, pinjaman sebagai resource, dan peminjam sebagai proses yang membutuhkan resource. Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.

27 Algoritma Bankir (2) Jadi algoritma bankir ini mempertimbangkan apakah permintaan mereka itu sesuai dengan jumlah dana yang ia miliki, sekaligus memperkirakan jumlah dana yang mungkin diminta lagi. Jangan sampai ia sampai pada kondisi dimana dananya habis dan tidak dapat meminjamkan uang lagi. Jika demikian maka akan terjadi kondisi Deadlock. Agar kondisi aman, maka asumsi setiap pinjaman harus dikembalikan waktu yang tepat.

28 Struktur Algoritma Bankir
Tersedia Jumlah sumber daya/dana yang tersedia. Maksimum Jumlah sumber daya maksimum yang diminta oleh setiap proses. Alokasi Jumlah sumber daya yang dibutuhkan oleh setiap proses. Kebutuhan Maksimum-alokasi, sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan.

29 Kelemahan Algoritma Bankir
Sulit mengetahui seluruh resource yang dibutuhkan proses pada awal eksekusi. Jumlah proses yang tidak tetap dan berubah-ubah. Mulai dari user login hingga logout. Resource yang tadinya tersedia dapat saja menjadi tidak tersedia kembali. Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan sinkronisasi antar proses. Algoritma bankir menghendaki memberikan semua permintaan selama waktu yang berhingga.

30 Deteksi dan Pemulihan Deadlock
Menentukan apakah deadlock sedang terjadi, kemudian proses-proses dan resource yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock terdeteksi, maka langkah pemulihan deadlock dilakukan.

31 Cara Pemulihan Deadlock
Ada beberapa cara untuk pemulihan deadlock : Menggagalkan semua proses yang deadlock Mem-backup semua proses yang deadlock dan me-restart semua proses tersebut Menggagalkan proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock. Menggagalkan pengalokasian resource-resource secara berturut-turut hingga tidak ada deadlock. Kriteria proses-proses yang akan disingkirkan : Memiliki waktu proses (yang telah berjalan) kecil. Jumlah keluaran sedikit Memiliki estimasi sisa waktu eksekusi terbesar. Jumlah total resource terkecil yang telah dialokasikan Memiliki prioritas terkecil

32 END OF MODUL - 8


Download ppt "Deadlock."

Presentasi serupa


Iklan oleh Google