Anda di halaman 1dari 15

TUGAS KELOMPOK SISTEM OPERASI

DEADLOCK

Dosen Pengampu :

Kasini, S.Kom., M.Kom

Oleh Kelompok I:

Aditya Nugraha Yesa 12150312429

Arifah Fadhila Andaranti 12150320065

Zarqani 12150314283

PROGRAM STUDI SISTEM INFORMASI

FALKUTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SULTAN SYARIF KASIM RIAU

TAHUN PELAJARAN 2021/2022


KATA PENGANTAR

Puji syukur kehadirat Allah Subhanahu wata’ala yang telah memberikan berbagai
kemudahan, petunjuk serta karunia yang tak terhingga sehingga kami dapat
menyelesaikan Tugas Makalah ini dengan berjudul Deadlock dengan baik.

Tugas makalah ini kami buat memenuhi salah satu tugas Mata Kuliah Sistem
Operasi dari dosen pembimbing di Universitas Islam Negeri Sultan Syarif Kasim.

Kami menyadari bahwa makalah ini masih jauh dari kesempurnaan, hal ini karena
adanya kekurangan dan keterbatasan kemampuan kami. Oleh karena itu, segala
kritik dan saran yang bersifat membangun sangat peneliti harapkan demi
kesempurnaan makalah ini.

Pekanbaru, Mei 2022

Penulis

ii
DAFTAR ISI

KATA PENGANTAR......................................................................................................ii
DAFTAR ISI....................................................................................................................iii
BAB I PENDAHULUAN.................................................................................................1
A. Latar Belakang.......................................................................................................1
B. Rumusan Masalah..................................................................................................1
C. Tujuan....................................................................................................................1
BAB II PEMBAHASAN..................................................................................................2
A. Pengertian Deadlock..............................................................................................2
B. Menghindari Terjadinya Deadlock (Deadlock Avoidance)....................................4
C. Mencegah Terjadinya Deadlock (Deadlock Prevention)........................................7
D. Pendeteksian Deadlock...........................................................................................8
E. Pemulihan Deadlock (Deadlock Recovery)............................................................9
BAB III PENUTUP........................................................................................................11
A. Kesimpulan..........................................................................................................11
B. Saran....................................................................................................................11
DAFTAR PUSTAKA.....................................................................................................12

iii
BAB I

PENDAHULUAN

A. Latar Belakang
Saat menggunakan komputer dan laptop untuk menjalankan suatu program sering
terjadi kendala-kendala pada sistem operasi nya. Pada dasarnya sistem operasi
memiliki peranan yang sangat penting dalam proses-proses yang terjadi di
dalam komputer, baik itu hubungan komputer dengan perangkat input/output
maupun komputer dengan user. Pada sistem operasi terdapat beberapa masalah
yang ditemukan antara lain seperti Mutual Exclusion, Deadlock, StarVation, dan
lain-lain.

Masalah-masalah ini dapat terjadi akibat adanya akses data secara konkuren.
Proses-proses ini disebut konkuren jika proses tersebut ada dan berjalan pada
waktu yang sama. Pada kali ini akan dibahas lebih lanjut mengenai salah satu
masalah tersebut, yaitu deadlock. Deadlock merupakan suatu kondisi dimana dua
proses atau lebih saling menunggu proses untuk melepaskan sumber daya atau
resources yang sedang dipakai. Masing-masing program tidak ada yang
memberikan sumber daya yang dibutuhkan oleh program yang sedang
berlangsung.

B. Rumusan Masalah
1. Apa itu deadlock dan apa penyebabnya?
2. Bagaimana cara mencegah terjadinya deadlock?
3. Bagaimana cara mendeteksi terjadinya deadlock dan upaya mengatasi
nya?

C. Tujuan
1. Memahami deadlock dan penyebab terjadinya deadlock.
2. Mengetahui cara mencegah terjadinya deadlock.
3. Memahami cara mendeteksi dan mengatasi deadlock.

1
BAB II

PEMBAHASAN

A. Pengertian Deadlock
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu
proses untuk melepaskan sumber daya atau resources yang sedang dipakai. Dua
atau lebih proses dikatakan berada dalam kondisi deadlock apabila setiap
proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh
proses lain dalam himpunan tersebut. Mudahnya, ada proses A yang
membutuhkan suatu resources, tetapi resources tersebut sedang dipakai oleh

proses lain.

Contoh ilustrasi berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal
yang dapat membuat deadlock pada suatu persimpangan, yaitu:
1. Terdapat satu jalur pada jalan.
2. Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
3. Untuk mengatasinya beberapa mobil harus preempt (mundur).
4. Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak
akan mendapatkan sumber daya).

Kejadian Deadlock selalu tidak lepas dari sumber daya, bahwa hampir seluruhnya
merupakan masalah sumber daya yang digunakan bersama-sama. Oleh karena
itu, kita juga perlu tahu tentang jenis sumber daya yang digunakan, yaitu sumber

2
daya dapat digunakan lagi berulang-ulang dan sumber daya yang dapat
digunakan dan habis dipakai atau dapat dikatakan sumber daya sekali pakai.
Deadlock diilustrasikan dengan arus lalu lintas kendaraan yang ada pada
perempatan jalan. Setiap sisi dipenuhi mobil, sementara diantara mereka tidak ada
yang mengalah maka yang terjadi adalah kemacetan dan tidak akan teratasi jika
tidak ada mobil yang mau mengalah untuk mundur.

Terjadinya deadlock ialah misalnya ketika suatu proses dapat berjalan jika
memakai disk A dan B sekaligus, maka akan terjadi deadlock jika proses tersebut
sudah memiliki salah satu disk dan meminta disk yang lain tetapi disk tersebut
masih digunakan oleh proses lain, tidak ada yang mengalah memberikan sumber
daya yang digunakan (disk).

Contoh lainnya misalkan pada suatu komputer terdapat dua buah program. Sebuah
tape drive dan sebuah printer. Program A mengontrol tape drive, sementara
program B mengontrol printer. Setelah beberapa saat, program A meminta printer,
tapi printer masih digunakan oleh program B. Berikutnya, program B meminta
tape drive. sedangkan A masih mengontrol tape drive. Dua program tersebut
memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang
lain. Tidak ada yang dapat melanjutkan proses masing masing sampai program
yang lain memberikan sumber dayanya. Kondisi inilah yang disebut deadlock atau
pada beberapa buku disebut deadly embrace.

Ada empat kondisi yang menyebabkan terjadinya deadlock, dimana seluruh


kondisi tersebut harus terpenuhi. Kondisi tersebut adalah sebagai berikut.

A. Mutual exclusion
Tiap sumber daya saat itu diberikan pada tepat satu proses dan proses
tersebut mengklaim kontrol eksklusif terhadap sumber daya yang
dibutuhkannya.
B. Hold and wait
Proses yang sedang memegang sumberdaya, menunggu sumber daya yang
baru.

3
C. No preemption
Sumber daya yang diberikan sebelumnya tidak dapat diambil paksa dari
proses yang sedang menggenggamnya. Harus terlebih dahulu dilepaskan
oleh proses yang menggenggamnya.
D. Circular wait
Harus terdapat rantai sirkuler dari dua proses atau lebih, dan masing-
masing proses menunggu sumber daya yang digenggam oleh proses
berikutnya.

Ketiga kondisi pertama merupakan syarat perlu (necessary conditions) bagi


terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi
diatas, tidak mungkin terjadi deadlock bila tidak ada ketiga kondisi tersebut, tetapi
adanya ketiga kondisi itu belum berarti terjadi deadlock. Deadlock baru benar-
benar terjadi bila kondisi keempat terpenuhi. Kondisi keempat merupakan
keharusan bagi terjadinya peristiwa deadlock. Bila salah satu saja dari kondisi
tidak terpenuhi maka deadlock tidak terjadi.

B. Menghindari Terjadinya Deadlock (Deadlock Avoidance)


Deadlock dapat dihindari dengan beberapa cara, diantaranya sebagai berikut.
1. Memastikan deadlock tidak terjadi dengan cara mencegah salah satu
kondisi terjadinya deadlock agar tidak pernah terjadi.

2. Jangan memberi kesempatan pada suatu proses untuk


meminta sumber daya lagi, jika penambahan ini akan membawa kita
pada suatu keadaan deadlock. Proses harus menyatakan seluruh sumber
daya maksimum yang dibutuhkan sebelum eksekusi. Ketika eksekusi
berlangsung, proses meminta sumber daya yang diperlukan hingga batas
maksimum yang dinyatakan di awal. Proses yang menyatakan kebutuhan
melewati kapasitas sistem, tidak akan dieksekusi.

3. Ignore Deadlock, yaitu Membiarkan deadlock terjadi, dan ketika deadlock


benar-benar terjadi sistem operasi akan mengabaikannya (kebanyakan OS

4
melakukan hal tersebut), tetapi hal ini membutuhkan deteksi terhadap
kondisi proses jika terjadi deadlock. Selanjutnya sistem operasi harus
memperbaiki kondisi tersebut dengan cara memperoleh kembali resource
yang menyebabkan deadlock.

4. Deadlock avoidance algorithm, yang secara rutin memeriksa state dari


sistem untuk memastikan tidak adanya kondisi circular wait serta
sistem berada pada kondisi safe state. Safe state adalah suatu kondisi
dimana semua proses mendapatkan sumber daya yang dimintanya
dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus
menunggu selama waktu tertentu, kemudian mendapatkan sumber daya
yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali
sumber daya tersebut. Terdapat dua jenis algoritma penghindaran
yaitu resource allocation graph untuk single instances resources serta
banker’s algorithm untuk multiple instances resources.

Algoritma ini diungkapkan oleh Dijkstra (1965) lebih dikenal dengan


nama Algoritma Bankir. Model ini menggunakan suatu kota kecil sebagai
percontohan dengan suatu bank sebagai sistem operasi, pinjaman sebagai
sumber daya dan peminjam sebagai proses yang membutuhkan sumber
daya. 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.

Beberapa kelemahan algoritma Bankir adalah sebagai berikut:


1. Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses
pada awal eksekusi.
2. Jumlah proses yang tidak tetap dan berubah-ubah.

5
3. Sumber daya yang tadinya tersedia dapat saja menjadi tidak tersedia
kembali.
4. Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan
sinkronisasi antar proses.
5. Algoritma ini menghendaki memberikan semua permintaan selama
waktu yang berhingga.
Dalam banker’s algorithm, terdapat beberapa struktur data yang
digunakan, yaitu:
 Available ,yaitu Jumlah sumber daya yang tersedia
 Max, yaitu Jumlah sumber daya maksimum yang diminta oleh tiap
proses
 Allocation, yaitu Jumlah sumber daya yang sedang dimiliki oleh tiap
proses
 Need, yaitu sisa sumber daya yang masih dibutuhkan oleh proses,
didapat dari max - allocation.
 Kemudian terdapat Safety algorithm untuk menentukan apakah
sistem berada pada safe state atau tidak.

Contoh:

Terdapat 5 proses, yaitu P0-P4 dengan 3 sumber daya yaitu A (10


Instances), B (5 Instances), C (7 Instances). Tentukan urutan eksekusi
proses nya (safety sequence)!

6
C. Mencegah Terjadinya Deadlock (Deadlock Prevention)
Metode ini berkaitan dengan pengkondisian sistem agar menghilangkan
kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang
bersih dipandang dari sudut tercegahnya deadlock. Metode ini sering
menghasilkan utilisasi sumber daya yang buruk. Pencegahan deadlock merupakan
metode yang banyak dipakai. Untuk mencegah deadlock dilakukan dengan
meniadakan salah satu dari syarat perlu sebagai berikut:
A. Mencegah Mutual Exclusion
Mutual exclusion benar-benar tidak dapat dihindari. Hal ini dikarenakan
tidak ada sumber daya yang dapat digunakan bersama-sama, jadi sistem
harus membawa sumber daya yang tidak dapat digunakan bersamasama.
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 inimempunyai utilitas sumber
daya yang rendah dan kemungkinan terjadi starvation jika proses
membutuhkan sumber daya yang popular sehingga terjadi keadaan

7
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:
 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.
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 dinaikkan. Cara ini
tidak akan menimbulkan siklus. Masalah yang timbul adalah tidak ada cara
pengurutan nomor sumber daya yang memuaskan semua pihak.

D. Pendeteksian Deadlock
Pada dasarnya kejadian deadlock sangatlah jarang terjadi. Apabila kondisi
tersebut terjadi, masing-masing sistem operasi mempunyai mekanisme
penanganan yang berbeda. Ada sistem operasi yang ketika terdapat kondisi
deadlock dapat langsung mendeteksinya. Namun, ada pula sistem operasi yang
bahkan tidak menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem
operasi yang dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara
lebih mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock
yang dilaksanakan apabila sistem telah berada pada kondisi deadlock.

8
Sistem akan mendeteksi proses mana saja yang terlibat dalam kondisi deadlock.
Setelah diketahui proses mana saja yang mengalami kondisi deadlock, maka
diadakan mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan
kembali dengan normal. Mekanisme pendeteksian adalah dengan menggunakan
detection algorithm (algoritma deteksi) yang akan memberitahu sistem mengenai
proses mana saja yang terkena deadlock. Setelah diketahui proses mana saja yang
terlibat dalam deadlock, selanjutnya adalah dengan menjalankan mekanisme
pemulihan sistem.

E. Pemulihan Deadlock (Deadlock Recovery)


Pemulihan kondisi sistem terkait dengan pendeteksian terhadap deadlock.
Apabila menurut algoritma pendeteksian deadlock sistem berada pada keadaan
deadlock, maka harus segera dilakukan mekanisme pemulihan sistem. Berbahaya
apabila sistem tidak segera dipulihkan dari deadlock, karena sistem dapat
mengalami penurunan performance dan akhirnya terhenti. Cara - cara yang
ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:

1. Terminasi proses
Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi
terhadap semua proses yang terlibat dalam deadlock. Dapat pula dilakukan
terminasi terhadap proses yang terlibat dalam deadlock secara satu per satu
sampai circular wait hilang. Seperti diketahui bahwa circular wait adalah
salah satu karakteristik terjadinya deadlock dan merupakan kesatuan
dengan tiga karakteristik yang lain. Untuk itu, dengan menghilangkan
kondisi circular wait dapat memulihkan sistem dari deadlock.
Dalam melakukan terminasi terhadap proses yang deadlock, terdapat
beberapa faktor yang menentukan proses mana yang akan diterminasi.
Faktor pertama adalah prioritas dari proses - proses yang terlibat deadlock.
Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi
dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa
banyak sumber daya yang telah dihabiskan dan yang masih dibutuhkan.

9
Terakhir, faktor utilitas dari proses pun menjadi pertimbangan sistem
untuk melakukan terminasi pada suatu proses.
2. Rollback and Restart
Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan
dengan cara sistem melakukan preempt terhadap sebuah proses dan
kembali ke state yang aman. Pada keadaan safe state tersebut, proses
masih berjalan dengan normal, sehingga sistem dapat memulai proses dari
posisi aman tersebut. Untuk menentukan pada saat apa proses akan
rollback, tentunya ada faktor yang menentukan. Diusahakan untuk
meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi
korban. Harus pula dihindari keadaan dimana proses yang sama selalu
menjadi korban, sehingga proses tersebut tidak akan pernah sukses
menjalankan eksekusi.

10
BAB III

PENUTUP

A. Kesimpulan
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu
proses untuk melepaskan sumber daya atau resources yang sedang dipakai.
Ada empat kondisi yang menyebabkan terjadinya deadlock, dimana seluruh
kondisi tersebut harus terpenuhi yaitu Mutual exclusion, Hold and wait, No
preemption, dan Circular wait. Mekanisme pendeteksian adalah dengan
menggunakan detection algorithm (algoritma deteksi) yang akan memberitahu
sistem mengenai proses mana saja yang terkena deadlock. Cara yang ditempuh
untuk memulihkan sistem dari deadlock adalah Terminasi (penghentian) proses
dan Rollback and Restart.

B. Saran
Dengan adanya pembahasan mengenai deadlock ini, penulis beharap pembaca
dapat memahami lebih lanjut tentang deadlock dan dapat mengatasinya dengan
baik.

11
DAFTAR PUSTAKA
Dharma Oetomo, B.S., Wibowo, E., Hartono, E., & Prakoso, S. (2006) Konsep &
Aplikasi Pemrograman Client Server dan Sistem Terdistribusi.Penerbit
ANDI : Yogyakarta, Sinkronisasi dan Deadlock Sistem Operasi - PDF Free
Download (docplayer.info)

Josi, A (2019). Sistem Operasi., books.google.com, https://books.google.com/books?


hl=en&lr=&id=dxjGDwAAQBAJ&oi=fnd&pg=PA1&dq=deadlock+sistem+oper
asi&ots=zCPTLIQMU8&sig=5Udf1EfAL7u7D5lWnMybXEUR6nc

Nidhom, AM, Hakiki, MA, Damayanti, H, Novelia, L, & ... (2021). BUKU AJAR
SISTEM OPERASI., books.google.com, https://books.google.com/books?
hl=en&lr=&id=lbdQEAAAQBAJ&oi=fnd&pg=PP1&dq=deadlock+sisteom+ope
rasi&ots=TrcyLzFg9m&sig=HXnIRIcp7lvpUFqZ8aFv8ava5Uk

Utami, M (2021) Sistem Operasi & Utility. Penerbit Yayasan Prima Agus Teknik,
penerbit.stekom.ac.id,
https://penerbit.stekom.ac.id/index.php/yayasanpat/article/view/223

Watrianthos, R, & Purnama, I (2018). Buku Ajar Sistem Operasi., books.google.com,


https://books.google.com/books?
hl=en&lr=&id=2j9tDwAAQBAJ&oi=fnd&pg=PT6&dq=deadlock+sisteom+oper
asi&ots=4bv-0ViMOk&sig=5RZtfaikmCzXPclRccZJmWWk2Zs

12

Anda mungkin juga menyukai