View
364
Download
1
Category
Preview:
Citation preview
SISTEM OPERASI
Deadlock
ruliriki@gmail.com
http://blogriki.wordpress.com
Pembahasan
• System Model
• Karakteristik Deadlock
• Metode-metode Penanganan Deadlock
• Deadlock Prevention• Deadlock Prevention
• Deadlock Avoidance
• Deadlock Detection
Deadlock
• Deadlock adalah suatu kondisi dimana dua proses
atau lebih tidak dapat meneruskan eksekusinya
• Permasalahan deadlock terjadi karena sekumpulan
proses-proses yang di-blok dimana setiap proses
membawa sebuah sumber daya dan menunggumembawa sebuah sumber daya dan menunggu
mendapatkan sumber daya yang dibawa oleh
proses lain.
• Misalnya sistem mempunyai 2 tape drive dan
terdapat dua proses P1 dan P2 yang masing
masing membawa satu tape drive dan masing-
masing memerlukan tape
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• 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
Resources (2)
• Contoh 2 :
– semaphores A dan B, di-inisialisasi 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)wait (B); wait(A)
. .
. .
. .
signal(A) signal(B)
signal(B) signal(A)
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
Resources (4)
• Deadlock terjadi ketika…
– 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
System Model
• Tipe resource R1, R2, . . ., Rm
– CPU cycles, memory space, I/O devices
• Masing-masing proses melakukan utilisasi
resourcesresources
1. Meminta (request) resource
2. Menggunakan resource
3. Membebaskan (release) the resource
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-– 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–1menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .
Resource-Allocation Graph (1)
• V dipartisi ke dalam dua tipe :
– P = {P1, P2, …, Pn}, himpunan proses dalam sistem.
– R = {R1, R2, …, Rm}, himpunan tipe resource dalam sistem.
Terdapat himpunan vertices V dan himpunan edges E.
– R = {R1, R2, …, Rm}, himpunan tipe resource dalam sistem.
• Request edge – directed edge P1 → Rj
• Assignment edge – directed edge Rj → Pi
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
Contoh Resource Allocation Graph
Resource Allocation Graph-Deadlock
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
Resource Allocation Graph
Cycle - Tidak Deadlock
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.mampu memutuskan siklus yang ada.
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.
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 kondisi deadlock dan kemudian melakukan
recovery (pemulihan).
• Mengabaikan masalah deadlock dan membuat
deadlock tidak pernah terjadi dalam sistem;
digunakan pada OS umumnya (Unix).
Metode Pencegahan Deadlock (1)
• 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
Cara pencegahan (Prevention) dari sisi permintaan (request) resources :
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.
Metode Pencegahan Deadlock (2)
• No Preemption
– Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secaralangsung dialokasikan, maka semua resource yang sedangdipegang dibebaskan (released).
– Preempted resources ditambahkan ke list resources dimana proses sedang menunggu.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 mengaksesresource. Suatu proses dimungkinkan untuk dapatmeminta resource kapanpun, tetapi permintaannya harusdibuat terurut.
Tabel Deadlock
SyaratSyarat LangkahLangkah KelemahanKelemahan
Mutual ExclusionMutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan Dapat menyebabkan
chaoschaos
Hold & WaitHold & Wait Meminta resource Meminta resource
diawaldiawal
Sulit memperkirakan di Sulit memperkirakan di
awal dan tidak optimalawal dan tidak optimaldiawaldiawal awal dan tidak optimalawal dan tidak optimal
No PreNo Pre--emptiveemptive Mengambil Mengambil
resource di tengah resource di tengah
jalanjalan
Hasil proses tidak akan Hasil proses tidak akan
baikbaik
Circular WaitCircular Wait Penomoran Penomoran
permintaan permintaan
resourceresource
Tidak ada penomoran Tidak ada penomoran
yang memuaskan semua yang memuaskan semua
pihakpihak
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– Jika tidak aman, proses yang meminta akan di-suspendsampai 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
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 – 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.
Basic Facts
• Jika sistem dalam kondisi aman (safe state) ⇒ tidak
ada deadlock.
• Jika sistem dalam kondisi tidak aman (unsafe state)
⇒ kemungkinan dapat terjadi deadlockkemungkinan dapat terjadi deadlock
• Pendekatan penghindaran (avoidence) memastikan
bahwa sistem tidak akan pernah masuk ke dalam
kondisi unsafe state.
Safe, Unsafe , Deadlock State
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 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.
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 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.
Struktur Algoritma Bankir
• Tersedia
– Jumlah sumber daya/dana yang tersedia.
• Maksimum
– Jumlah sumber daya maksimum yang diminta oleh setiap
proses.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.
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 • 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.
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.pemulihan deadlock dilakukan.
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 – 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
Latihan
1. Sebutkan faktor-faktor apa saja yang dapatmenimbulkan terjadinya deadlock!
2. Dengan menghindari adanya mutual exclusion apakah menjamin bahwa deadlock tidak akan terjadi ? Jelaskan!
3. Kapan Algoritma Resource-Allocation Graph 3. Kapan Algoritma Resource-Allocation Graph dapat digunakan untuk menunjukkan adanyadeadlock?
4. Apakah dengan menggunakan AlgoritmaBanker dapat menjamin bahwa deadlock dapat dihindari? Jelaskan
Recommended