You are on page 1of 8

LAPORAN

“Eksplorasi Deadlock Pada Sistem Operasi”

Disusun Oleh :
Taufik Raihandani 2210131210018

Mata Kuliah :
Sistem Operasi ABKC6304

Dosen Pengampu :
Dr. Harja Santana Purba, M.Kom

Novan A. B. Saputra, S.Kom., M.T

PROGRAM STUDI PENDIDIKAN KOMPUTER


FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS LAMBUNG MANGKURAT
2023
DAFTAR ISI

DAFTAR ISI............................................................................................................................................ i
PEMBAHASAN ..................................................................................................................................... 2

1.1. Konsep Deadlock pada Sistem Operasi .................................................................................. 2

1.2. Deadlock Pada Sistem operasi ................................................................................................ 3

1.3. Cara Mengatasi, menghindari, dan mencegah deadlock pada sistem operasi ......................... 3

1.4. Kaitan Antara Manajemen Memori dengan Deadlock............................................................ 6

DAFTAR PUSTAKA ............................................................................................................................. 7

i
PEMBAHASAN

1.1. Konsep Deadlock pada Sistem Operasi

Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses
yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling
menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock dalam
arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah
kebuntuan proses. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang
membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada
komunikasi lagi antar proses.

Kejadian deadlock selalu tidak lepas dari sumber daya dan proses tersebut, yaitu
masalah sumber daya yang digunakan bersama-sama. Deadlock pada sumber daya yang bisa
dipakai berulang-ulang bisa terjadi di prosesor, kanal Masukan/Keluaran, disk, dan semafor.
Contoh misalnya sebuah proses memakai disk A dan B, maka akan terjadi deadlock jika setiap
proses sudah memiliki salah satu disk dan meminta disk yang lain. Contoh lainnya adalah yang
berkaitan dengan jumlah proses yang memakai memori utama. Cara mengatasinya adalah
dengan memakai memori maya (virtual), Sedangkan contoh deadlock pada sumber daya sekali
pakai misalnya ada dua fungsi yang saling berproses. Kedua fungsi tersebut ada yang bertindak
untuk menerima dan memberi sumber daya, tetapi ada kalanya proses tidak mendapat sumber
daya yang dibuat sehingga terjadi blok, oleh karena itu terjadi deadlock.

2
Berdasarkan ilustrasi diatas, 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
drive yang dibawa proses lain sehingga terjadi keadaan saling menunggu resource dan sistem
di-blok. Contoh lain, misalnya terdapat semaphore A dan B yang diinisialisasi 1 dan terdapat
dua proses P0 dan P1 masing-masing membawa semaphore A dan B. Kemudian P0 dan P1
meminta semaphore B dan A dengan menjalankan operasi wait. Hal ini mengakibatkan proses
di-blok dan terjadi deadlock.

1.2. Deadlock Pada Sistem operasi

Deadlock pada sistem operasi dapat dideteksi dengan memeriksa apakah empat kondisi
deadlock terpenuhi: Mutual Exclution, Hold and Wait, Non-preemptable, dan Circular
Wait. Jika empat kondisi ini terpenuhi, maka kemungkinan besar sistem operasi mengalami
deadlock. Ada 4 penyebab deadlock pada sistem operasi, secara umum:

a) Mutual Exclution Keadaan di mana setiap sumber daya hanya bisa digunakan
untuk satu proses sajapada satu periode tertentu
b) Hold and Wait Suatu keadaan di mana proses dapat masuk ke dalam status
hold dan menunggu resource lain yang sedang digunakan proses lain.
c) Non-preemptable Suatu sumber daya tidak bisa diambil setiap saat dari suatu
proses. Sumber daya hanya dapat diambil apabila proses tersebut telas selesai
digunakan.
d) Circular Wait Keadaan dua proses saling menunggu secara circular karena
proses saling menunggu sumber daya.

Ketiga syarat pertama merupakan syarat perlu (necessary conditions) bagi terjadinya deadlock
pada Sistem operasi kita. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi di atas,
tak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu. Deadlock terjadi berarti terdapat
ketiga kondisi itu, tetapi adanya ketiga kondisi itu belum berarti 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.

1.3. Cara Mengatasi, menghindari, dan mencegah deadlock pada sistem operasi

Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu satu sama lain
untuk melepaskan sumber daya yang mereka butuhkan untuk melanjutkan eksekusi mereka.

3
Ada empat kondisi yang harus terpenuhi agar deadlock terjadi: Mutual Exclution, Hold and
Wait, Non-preemptable, dan Circular Wait. Berikut adalah beberapa cara untuk mengatasi,
menghindari, dan mencegah terjadinya deadlock:

Metode mencegah penyebab deadlock pada sistem operasi :

a) Mencegah Mutual Exclusion Mutual exclusion benar-benar tak dapat


dihindari. Hal ini dikarenakan tidak ada sumber daya yang dapat digunakan
bersama-sama, jadi sistem harus membawa sumber daya yang tidak dapat
digunakan bersama-sama.
b) Mencegah Hold and Wait Untuk mencegah hold and wait, sistem harus
menjamin bila suatu proses meminta sumber daya, maka proses tersebut tidak
sedang memegang sumber daya yang lain. Proses harus meminta dan
dialokasikan semua sumber daya yang diperlukan sebelum proses memulai
eksekusi atau mengijinkan proses meminta sumber daya hanya jika proses tidak
membawa sumber daya lain. Model ini mempunyai utilitas sumber daya yang
rendah dan kemungkinan terjadi starvation jika proses membutuhkan sumber
daya yang popular sehingga terjadi keadaan menunggu yang tidak terbatas
karena setidaknya satu dari sumber daya yang dibutuhkannya dialokasikan
untuk proses yang lain.
c) 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 :
a. 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.
b. Proses yang sedang dalam keadaan menunggu, sumber daya yang
dibawanya ditunda dan ditambahkan pada daftar sumber daya.
c. Proses akan di restart hanya jika dapat memperoleh sumber daya yang
lama dan sumber daya baru yang diminta.
d) Mencegah Kondisi Circular wait Sistem mempunyai total permintaan global
untuk semua tipe sumber daya. Proses dapat meminta proses kapanpun
menginginkan, tapi permintaan harus dibuat terurut secara numerik. Setiap
proses yang membutuhkan sumber daya dan memintanya maka nomor urut akan

4
dinaikkan. Cara ini tidak akan menimbulkan siklus. Masalah yang timbul adalah
tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.

Kemudian, deadlock dapat diatasi dengan beberapa cara sebagai berikut:

a) Detect & Recovery Membiarkan deadlock tersebut sempat terjadi, baru


kemudian melakukan perbaikan. Contohnya: roll-back, killing process.
b) Ostrich Algorithm Kondisi deadlock diabaikan karena sangat jarang terjadi.
c) Prevention Pencegahan deadlock terjadi dengan cara menghilangkan salah satu
dari empat penyebab deadlock yang ada.
d) Dynamic Avoidance Menghindari terjadinya deadlock. Salah satunya dengan
cara pengalokasian sumber daya dilakukan dengan hati-hati.

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 yang terjadi dalam mendeteksi adanya deadlock adalah permintaan sumber daya
dikabulkan selama memungkinkan, sistem operasi memeriksa adakah kondisi circular wait
secara periodic, pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya yang
hendak digunakan oleh sebuah proses, memeriksa dengan algoritma tertentu (ini merupakan
pencegahan).

Selain keadaan deadlock, ada juga keadaan safe dan unsafe. Keadaan safe adalah
keadaan di mana sumber daya yang ada apabila dialokasikan ke proses manapun tidak akan
menyebabkan deadlock. Dengan kata lain, bagaimanapun pengalokasian sumber daya, semua

5
proses tetap dapat diselesaikan. Keadaan unsafe adalah keadaan yang tidak menjamin semua
proses akan selesai. Bahkan sangat besar kemungkinannya untuk terjadi deadlock.

1.4. Kaitan Antara Manajemen Memori dengan Deadlock

Pada dasarnya proses menggunakan sumber daya dari memori. Pada saat proses
dijalankan,proses tersebut menggunakan memori yang telah ada. Akan tetapi,pada saat proses
tersebut telah selesai dijalankan,maka sumber daya yang telah dipakainya dikembalikan ke
ruang memori yang telah dipakai.

Ketika terlalu banyak proses yang dipakai,dan terlalu banyak pula memori yang
digunakan. Maka akan ada proses yang menunggu. Ketika proses yang ada dalam keadaan
menunggu/waiting tersebut tidak mendapatkan kembali sumber daya yang dibutuhkan,maka
keadaan tersebut akan terjebak dalam keadaan deadlock.

Kondisi yang lain,yaitu semua proses dijalankan secara bersamaan dalam satu waktu.
Karena adanya penggunaan data yang sama dalam satu waktu maka akan menyebabkan
ketidak-konsistenan terhadap data. Oleh karena itu,manajemen proses menyediakan fasilitas
untuk melakukan sinkronisasi dengan cara mengatur proses mana yang harus didahulukan
untuk dijalankan dan proses mana yang harus menunggu. Didalam sinkronisasi terdapat
berbagi data antar proses. Maksudnya proses tersebut bekerja sama dengan proses lain dengan
cara berbagi data.

Ketika banyaknya proses dijalankan secara bersamaan dalam satu waktu. Dan adanya
proses berbagi data memori antar proses. Maka proses tersebut akan ada dalam Race Condition.
Ketika proses sudah ada dalam Race Condition,maka manajemen proses melakukan proses
sinkronisasi. Yaitu mengatur jalannya beberapa proses pada saat yang bersamaan. Maka proses
tersebut akan berjalan dengan nyaman dan lancar walaupun dijalankannya berbagai proses
secara bersamaan dalam satu waktu.

6
DAFTAR PUSTAKA

Safei, T. (n.d.). Pencegahan Deadlock pada Alokasi Resource dalam Sistem Operasi
Menggunakan Algoritma Greedy. Retrieved from
https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2011-
2012/Makalah2011/MakalahIF3051-2011-025.pdf
Adrian, M. (n.d.). KOMPONEN DASAR SISTEM OPERASI, DEADLOCK, DAN
IMPLEMENTASI GRAF UNTUK MENDETEKSI DEADLOCK PADA SISTEM
OPERASI. Retrieved from
https://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2006-
2007/Makalah/Makalah0607-8.pdf
Artikel GuruPendidikan.CO.ID. (2023, October 3). Retrieved November 28, 2023, from
Gurupendidikan.co.id website: https://www.gurupendidikan.co.id/deadlock-dan-
starvation/
Ariani sinaga. (2022). Deadlock Kasus Pada Sistem Operasi. Retrieved November 28, 2023,
from Academia.edu website:
https://www.academia.edu/12333451/Deadlock_Kasus_Pada_Sistem_Operasi
agustin, gita. (2022). HUBUNGAN MANAJEMEN MEMORI,MANAJEMEN
PROSES,DEADLOCK,DENGAN SINKRONISASI DAFTAR ISI BAB I. Retrieved
November 28, 2023, from Academia.edu website:
https://www.academia.edu/37987384/HUBUNGAN_MANAJEMEN_MEMORI_MA
NAJEMEN_PROSES_DEADLOCK_DENGAN_SINKRONISASI_DAFTAR_ISI_B
AB_I

You might also like