PENANGANAN DEADLOCK DALAM SISTEM OPERASI

a. Model Deadlock

• Meminta (request): meminta layananperangkat masukan/keluaran.
• Memakai (use): memakai perangkat masukan/keluaran.
• Melepaskan (release): melepaskan pemakaian perangkat masukan/keluaran.

Model Deadlock
a. Deadlock Problem
Apa itu deadlock?
Analogi :
Traffic stuck, antrian kendaraan yang saling menunggu Menunggu keadaan yang tidak akan pernah terjadi kebuntuan.


b. Karakteristik Deadlock

Situasi deadlock dapat terjadi bila terdapat 4 kondisi yang berjalan serentak pada sistem. Mutual Exclusion Sebuah resource hanya dapat digunakan oleh sebuah proses pada suatu waktu tertentu. (resource yang non- shareable.) Hold and Wait terdapat proses yang sedang menunggu dan memegang resource.

c. Karakteristik Deadlock (cont.)

- Non-preemption
Resource tidak dapat digunakan sebelum proses yang menggunakan telah selesai menggunakan dan kemudian melepaskannya.


2
- Circular wait : Proses-proses berada dalam lingkaran. Terjadi saling menunggu resource yang sedang digunakan oleh proses berikutnya dalam lingkaran tersebut.

- Model Sistem

Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu:

i. Mutual Exclusion
Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu.

ii. Hold and Wait
Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain.

iii. Non-pre-emptive
Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.

iv. Circular Wait
Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.

Syarat Langkah Kelemahan
-Mutual Exclusion Spooling: sumber daya Dapat menyebabkan chaos :
-Hold and Wait : Meminta sumber daya di awal Sulit memperkirakan di awal dan tidak optimal


3
-No Pre-emptive : Mengambil sumber daya di tengah proses Hasil proses tidak akan baik
-Circular Wait: Penomoran permintaan sumber daya Tidak ada penomoran yang memuaskan semua pihak

d. Penyebab Deadlock

• Mutual Exclusion
Meniadakan MUTEX
• Masalah pada teknik ini: – Tidak setiap resource eksklusif dapat di spooling.
– Kompetisi terhadap ruang disk dan spooling dapat menuntun ke arah deadlock

• Hold and Wait
Meniadakan Syarat Hold & Wait
• Mengalokasikan semua resource atau tidak sama sekali
• Masalah: –Sukar mengetahui lebih dulu semua resource yg diperlukan suatu proses.
• Cara ini dapat menjadi sangat tidak efisien.
• Hold & Release
• Circular Waiting
Circular Wait
• Contoh Circular Wait
• No Preemption

Meniadakan Kondisi
Non-Preemption
• Non preemption mencegah proses2 lain harus menunggu.
• Masalah: – Saat proses A menulis ke printer, tiba-tiba dihentikan proses B yang juga akan menulis ke printer yang sama. Bila dimungkinkan kondisi preemption ini maka kedua proses akan mencetak secara tak benar.

4

e. Pencegahan deadlock

• Tiap proses harus memintar semua sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai semuanya diberikan
• Jika proses telah sedang mememgang resource tertentu, untuk permintaan berikutnya proses harus melepas dulu resource yg dipegangnya.
• Beri pengurutan linear terhadap resource pada semua proses

Strategi menghadapi Deadlock
Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
i. Mengabaikan adanya deadlock.
ii. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
iii. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:

Pendeteksian deadlock,
untuk mengidentifikasi ketika deadlock terjadi.

Pemulihan deadlock,
mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.






5
f. Strategi mengatasi Deadlock

1. Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku.
Prevention


• Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama
• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru
• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level
• No Preemption : membolehkan adanya preemption.

2. Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock,
Algoritma Banker.
Avoidance
• Resource manager menolak proses yang meminta resource yang berpotensi deadlock.
• Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya.
• Perlu adanya informasi tambahan.
Algoritma Banker
• Didasarkan pada kondisi bank, dimana konsumen meminjam sejumlah uang, lalu meminta pinjaman uang lagi
• Proses dan resource dimodelkan dalam satu tabel

A 3 0 1 1 A 1 1 0 0
B 0 1 0 0 B 0 1 1 2
C 1 1 1 0 C 3 1 0 0
D 1 1 0 1 D 0 0 1 0
E 0 0 0 0 E 2 1 1 0
6
3. Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich.
Detection dan Recovery
• Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakan recovery seperlunya
• Algoritma yang paling dikenal adalah algoritma Ostrich
• Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil.
Dari penjabaran pendekatan diatas, terdapat empat metode untuk mengatasi deadlock yang akan terjadi, yaitu:

Strategi Ostrich

Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX dan MINIX.

g. Pengendalian Deadlock

Mengabaikan, menganggap bahwa deadlock tidak akan pernah terjadi. Membiarkan terjadinya deadlock, lalu kemudian segera diperbaiki/recover. Menggunakan protokol untuk meyakinkan bahwa sistem tidak akan pernah deadlock.


7
h. Mendeteksi dan memperbaiki Deadlock

Mendeteksi apabila dalam sebuah proses terjadi kondisi yang mengarah ke circular wait. Apabila deadlock terjadi tentukan proses mana saja yang terlibat.Setelah deadlock terdeteksi, biarkan proses yang mengalami deadlock selesai menggunakan resource, agar resource bisa digunakan. Atau stop semua proses yang terlibat deadlock.

2 comments

W17aya | 18 Desember 2017 pukul 01.30

artikelnya menarik hanya saja background nya sangat menggangu

AhmadSI2B | 25 Juli 2018 pukul 17.58

Terimakasih untuk Penjelasannya tentang Cara Penanganan Deadlock. Penjelasannya sangat jelas dan mudah untuk saya mengerti. Artikel yang sangat bermanfaat dan akan lebih bagus lagi jika tulisannya agak diterangkan sedikit. Terimakasih.

Izin share blog ya
Kalau berkenan, Kunjungi blog sederhana saya di
www.ahmadsi2b.blogspot.com

dan kunjungi pula
www.atmaluhur.ac.id

Terimakasih.

Posting Komentar

About this blog

Diberdayakan oleh Blogger.

About Me

Foto saya
kalo anda mengenAL saya,, anda ga mgkin menyesal apabila ntar qta berteman...