Anda di halaman 1dari 4

REVIEW TENTANG DEADLOCK

Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalamsistem
operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana prosestidak berjalan lagi
atau tidak ada komunikasi lagi antar proses. Deadlock disebabkan karenaproses yang satu menunggu
sumber daya yang sedang dipegang oleh proses lain, proses lainitu pun sedang menunggu
sumber daya yang dipegang olehnya. Setiap proses yang menggunakan sumber daya
menjalankan urutan operasi sebagai berikut.

-Meminta (request):meminta sumber daya

-memakai(use):memakai sumber daya

-melepaskan(release:melepaskan sumber dModel deadlock

Misal:
Terdapat dua proses P0 dan P1 dan dua sumber daya R0 dan R1
a. P0 meminta sumber daya R0 b. Sumber daya R1 dialokasikan ke P1

Langkah yang menimbulkan deadlock

Selanjutnya:
P0 sambil masih menggenggam R0 meminta R1
P1 sambil masih menggenggam R1 meminta R0
Hal ini akan mengkibatkan deadlock, karena akan sama-sama saling menunggu

Syarat perlu terjadinya deadlock:


1. Mutual exclusion (kondisi mutual exclusion), yaitu Hanya ada satu proses yang boleh
memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus
menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai
sumber daya tersebut bersamaan.

2. Kondisi genggam dan tunggu (hold wait and wait condition), yaitu proses-proses yang
sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru dari
proses lain untuk di proses.
3. Kondisi non-preemption (non preemption condition), yaitu Sumber daya yang ada pada
sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. Untuk mendapatkan
sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang
memegangnya, selain itu seluruh proses menunggu

4. Kondisi menunggu secara sirkular (circular wait condition), yaitu terdapat rantai sirkular
dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh
anggota berikutnya pada rantai itu.

Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock, kondisi keempat
merupakan keharusan bagi terjadinya deadlock. Bila deadlock terjadi berarti terdapat 3
kondisi pertama, tetapi bila terdapat 3 kondisi pertama belum tentu terjadi deadlock.
Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi. Kondisi keempat
merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu saja dari
kondisi tidak terpenuhi maka deadlock tidak terjadi.

Solusi Penanggulangan Deadlock

Beberapa cara untuk menanggulangi terjadinya deadlock, diantaranya adalah:


a. Mengabaikan masalah deadlock.
Metode ini lebih dikenal dengan Algoritma Ostrich. Dalam algoritma ini dikatakan bahwa
untuk menghadapi Deadlock ialah dengan berpura-pura bahwa tidak ada masalah apa
pun. Hal ini seakanakan melakukan suatu hal yang fatal, tetapi sistem operasi Unix
menanggulangi Deadlock dengan cara ini dengan tidak mendeteksi Deadlock dan
membiarkannya secara otomatis mematikan program (restart) sehingga seakan-akan tidak
terjadi apa pun. Jadi jika terjadi deadlock, maka operator harus menunggu pada waktu
tertentu dan mencoba lagi.

b. Mendeteksi dan memperbaiki


Caranya ialah dengan cara mendeteksi jika terjadi deadlock pada suatu proses maka
dideteksi sistem mana yang terlibat di dalamnya. Setelah diketahui sistem mana saja yang
terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan
kembali. Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak

didukung dengan pendeteksian deadlock serta pencegahannya, maka kita akan sampai
pada kondisi deadlock yang dapat berpengaruh terhadap performance sistem karena
sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga
terganggu. Akhirnya sistem akan berhenti dan harus direstart. Hal-hal yang terjadi dalam
mendeteksi adanya Deadlock adalah:
Permintaan sumber daya dikabulkan selama memungkinkan.
Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
Pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya yang hendak
digunakan oleh sebuah proses.
Memeriksa dengan algoritma tertentu.

c. Pencegahan yang secara struktur bertentangan dengan empat kondisi terjadinya deadlock
dengan deadlock prevention sistem untuk memastikan bahwa salah satu kondisi yang
penting tidak dapat menunggu. Strategi untuk meniadakan syarat-syarat terjadinya
deadlock:
Mencegah mutual exclusion, mutual exclusion tidak dapat dihindar jika tidak ada sumber
daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akanpernah terjadi
deadlock. Namun jika membiarkan ada dua atau lebih prosesmengakses sebuah sumber daya
yang sama akan menyebabkan chaos. Langkah yangdigunakan adalah dengan spooling
sumber daya, yaitu dengan mengantrikan
Mencagah terjadinya hold and wait, dilakukan dengan cara: sistem harus menjamin
bila suatu proses meminta sumber daya, maka proses tersebut tidak sedang memegang
sumber daya yang lain. Hold and release (genggam dan lepas)

Mencegah Non Preemption


Peniadaan non preemption mencegah proses-proses lain harus menunggu. Seluruh
proses menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah
kondisi non preemption :

Jika suatu proses yang membawa beberapa sumber daya meminta sumber daya
lain yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut,
maka semua sumber daya yang sedang dibawa proses tersebut harus dibebaskan.
Proses yang sedang dalam keadaan menunggu, sumber daya yang dibawanya
ditunda dan ditambahkan pada daftar sumber daya.
Proses akan di restart hanya jika dapat memperoleh sumber daya yang lama dan
sumber daya baru yang diminta.

Mencegah kondisi menunggu sirkular, dilakukan dengan cara: proses hanya boleh
dilakukan menggenggam satu sumber daya pada suatu saat dan penomoran global
semua sumber daya
Deadlock Avoidence
Salah satu cara untuk mencegah adanya deadlock adalah dengan memberikan
informasi tambahan yang berhubungan dengan resource-resourcenya yang akan
diminta. Algoritma deadlock avoidence menguji secara dinamik untuk meyakinkan
bahwa tidak ada kondisi circular wait. Status diberikan meliputi banyaknya resource
yang tersedia, banyaknya resource yang dialokasikan, dan maksimum resource yang
di butuhkan.

Safe State

Suatu dikatakan safe jika dapat mengalokasikan resource untuk tiap-tiap proses
(sampai maksimumnya) dalam beberapa urutan dan masih dapat mencegah terjadinya
deadlock. Barisan proses <p1,p2,p3…pn> dikatakan dalam kadaan safe jika untuk setiap pi,
jumlah resource yang masih diperlukan oleh Pi, dapat dicukupi oleh resource yang ada saat
itu. Dan kondisi yang memungkinkan terjadinya deadlock adalah unsafe. Dimana sistem
tidak dapat memenuhi kebutuhan proses yang diperlukan. Contoh kondisi safe dan unsafe:
sebuah sistem memiliki 12 tape drive/sumberdaya, dan 3 proses: P0, P1 dan P2. Proses P0
meminta 10 drive tape, P1 sebanyak 4 dan P2 sebanyak 9 tape drive. Dimana current need
adalah P1, P2
1. Safe State, sistem dapat mengalokasi resource untuk tiap-tiap proses dan mencegah
terjadinya deadlock. Jika sistem dalam kondisi safe state, berarti tidak terjadi deadlock.
2. Unsafe State, sistem tidak dapat mengatur alokasi resource untuk tiap proses. Jika dalam
kondisi unsafe state, kemungkinan bisa terjadi deadlock.
Contoh :
Terdapat sumberdaya atau R=10

Anda mungkin juga menyukai