Anda di halaman 1dari 14

TUGAS SISTEM OPERASI

MAKALAH MATERI DEADLOCK

Nama : Alifia Risda Fauzi

NIM : 3193111051

Prodi : D3 Manajemen Informatika

FAKULTAS TEKNOLOGI INFORMASI DAN ELEKTRO

UNIVERSITAS TEKNOLOGI YOGYAKARTA

2019/2020
DAFTAR ISI

HALAMAN JUDUL

DAFTAR ISI

KATA PENGANTAR

BAB I PENDAHULUAN

1.1 Latar Belakang

1.2 Rumusan Permasalahan

1.3 Tujuan

BAB II PEMBAHASAN

2.1 Pengertian Deadlock

2.2 Resource Deadlock

2.3 Penyebab Deadlock

2.4 Penanganan Deadlock

2.5 Mencegah Deadlock

2.6 Menghindari Deadlock

2.7 Mendeteksi Deadlock dan Memulihkan

BAB III PENUTUP

Kesimpulan

BAB IV DAFTAR PUSTAKA


KATA PENGANTAR

Puji syukur say ucapkan kehadirat Allah SWT atas rahmat dan karunianya
sehingga saya dapat menyelesaikan makalah ini dengan baik. Makalah ini dibuat sebagai
salah satu ilmu pengetahuan dan pemenuhan tugas mata kuliah Sistem Operasi. Makalah ini
mencakuo tentang materi “Deadlock”.

Dengan saya sadari makalah ini masih banyak kekurangan dan masih jauh dari
sempurna. Hal tersebut di karenakan keterbatasan kemampuan dan pengetahuan saya. Oleh
karena itu saya mengharapkan kritik dan saran yang membangun dari pembaca sekiranya
agar dapat melengkapi makalah ini. Semoga makalah ini dapat bermanfaat bagi saya dan
pembaca. Akhir kata, saya memohon maaf apabila dalam penulisan makalah ini masih
terdapat kesalahan.

Yogyakarta, 18 November 2019


BAB I. PENDAHULUAN

1.1 Latar Belakang

Dengan adanya perkembangan teknologi yang pesat pada zaman sekarang dengan
berbagai macam jenis dan bidang teknologi, seperti halnya adalah komputer yang memiliki
sebuah sistem operasi. Pada dasarnya sistem operasi sangatlah penting dikarena dengan
adanya sistem operasi maka komputer akan berjalan dengan baik. Sistem operasi juga
berperan penting dalam proses – proses yang ada, contohnya hubungan antara PC dengan
I/O.

Dalam sistem operasi terdapat beberapa masalah yang ditemukan, yaitu Mutual
Exclusion, Deadlock, StarVation, dan Sinkronisasi. Dibawah ini akan dibahas salah satu
masalah yang ditemukan di sistem operasi yaitu Deadlock.

1.2 Rumusan Masalah

 Apakah yang dimaksut dengan Deadlock ?


 Apakah penyebab dan cara mengatasi Deadlock ?

1.3 Tujuan

 Mengetahui apa itu Deadlock


 Mengetahui apa penyebab dan bagaimana mengatasi Deadlock
BAB II. PEMBAHASAN

2.1 Pengertian Deadlock

Deadlock dalam artinya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem
operasi adalah kebuntuan suatu proses. Jadi Deadlock adalah suatu koncisi dimana proses
tidak berjalan lagi atau kondisi dimana tidak ada komunikasi anatar proses yang membuat
proses berhenti. Dalam keadaan ini tidak ada yang dapat melanjutkan proses masing – masing
sampai program memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Deadlock dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu
kejadian tertentu yang sebenarnya tidak akan terjadi. Suatu proses dapat dikatakan berada
dalam deadlock apabila setiap proses yang ada menunggu suatu kejadian yang hanya dapat
dilakukan proses lain dalam himpunan tersebut.
Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh
2 proses.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, yaitu: sumber daya dapat
digunakan lagi berulang-ulang dan sumber daya yang dapat digunakan dan habis dipakai atau
dapat dikatakan sumber daya sekali pakai. Sumber daya ini tidak habis dipakai oleh proses
mana pun.Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk dipakai oleh
proses lain yang sebelumnya tidak kebagian sumber daya ini.

Model sistem deadlock pada model operasi normal, sebuah proses menggunakan sumber
daya dengan urutan sebagai berikut:

 Mengajukan permohonan (request)


Bila permohonan tidak dapat dikabulkan dengan segera (misal karena sumber daya
sedang digunakan proses lain), maka proses itu harus menunggu sampai sumber daya
yang dimintanya tersedia.
 Menggunakan sumber daya (use)
Proses dapat menggunakan sumber daya, misalnya printer untuk mencetak, disk drive
untuk melakukan operasi I/O, dan sebagainya.
 Melepaskan sumber daya (relase)
Setelah proses menyelesaikan penggunaan sumber daya, maka sumber daya harus
dilepaskan sehingga dapat digunakan oleh proses lain.
2.2 Resource Deadlock
Deadlock bisa terjadi pada saat proses akan mengakses obyek secara tidak
semestinya. Obyek tersebut dinamakan sumber daya. Sumber daya ada dua jenis, yaitu:

1. Preemptable

Sumber daya dikatakan preemptable jika sumber daya tersebut dapat diambil (dilepas)
dari proses yang sedang memakainya tanpa member efek apapun pada proses tersebut.
Sumber daya ini tidak habis dipakai oleh proses mana pun. Tetapi setelah proses berakhir,
sumber daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak
kebagian sumber daya ini.

2. Non-preemtable

Pada sumber daya jenis ini, sumber daya tidak dapat diambil dari proses yang sedang
membawanya karena akan menimbulkan kegagalan komputasi. Printer adalah salah satu
contohnya. Jika suatu proses sedang menggunakan printer untuk mencetak sesuatu, maka
printer tersebut tidak dapat diambil untuk mencetak sesuatu dari proses lain. Sumber daya
jenis ini biasanya berpotensi terjadinya deadlock.

DIAGRAM GRAF

Sebuah sistem komputer terdiri dari berbagai macam sumber daya (resources), seperti:

1. Fisik (Perangkat, Memori)


2. Logika (Lock, Database record)
3. Sistem Operasi (PCB Slots)
4. Aplikasi (Berkas)

Mekanisme hubungan dari proses-proses dan sumber-daya yang dibutuhkan/digunakan


dapat di diwakilkan dengan graf.

Untuk mengetahui ada atau tidaknya deadlock (Pendeteksian) dalam suatu graf dapat
dilihat dari perputaran dan resource yang dimilikinya, yaitu:
 Jika tidak ada perputaran berarti tidak deadlock.
 Jika ada perputaran, ada potensi terjadi deadlock.
 Resource dengan instan tunggal dan perputaran mengakibatkan deadlock.

2.3 Penyebab Deadlock

Terdapat beberapa keadaan yang dapat menyebabkan deadlock, diantaranya :

1. Mutual exclusion (mutual exclusion conditional)

Hanya ada satu proses yang boleh memakai sumber daya, dan untuk proses lain
harus menggu hingga sumber daya yang dipakai dilepaskan atau tidak ada proses memakai
sumber daya.

2. Kondisi genggam dan tunggu (hold and wait)

Proses yang sedang memakai sumber daya meminta sumber daya lagi, hal ini akan
menyebabkan kelaparan atau kekurangan sumber daya sebab dapat saja sebuah proses tidak
mendapat sumber daya dalam waktu yang lama

3. Kondisi non-preemption (non-preemption condition)

Sumber daya yang ada pada sebuah proses tidak boleh diambil beitu saja oleh proses
lainnya. Untuk mendapatkan sumber daya, maka harus melepaskan terlebih dahulu oleh
proses pemegangnya, selain itu juga seluruh proses menunggu dan mempersilahkan hanya
proses yang mempunyai sumber daya yang diperbolehkan.

4. Kondisi menunggu secara sirkuler (circular wait condition)

Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang
proses berikutnya.

Kondisi untuk Terjadinya Deadlock

1. Terjadi deadlock bila terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu
belum berarti terjadi deadlock.
2. Deadlock benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
keempat merupakan keharusan bagi terjadinya deadlock.
3. Deadlock bisa terjadi pada saat proses akan mengakses objek seperti file,device, dll
secara tidak semestinya. Objek tersebut dinamakan resource.

2.4 Penanganan Deadlock

1. Mengabaikan masalah deadlock

Bisa berupa menghadapi deadlock dengan berpura-pura tidak ada masalah


apapun. Memakai jika yakin deadlock akan sangat jarang terjadi dan biaya untuk
deteksi atau pemulihan deadlock tinggi.

2. Mendeteksi dan Memperbaiki

Deteksi deadlock adalah teknik untuk menentukan apakah deadlock terjadi


serta mengidentifikasi proses – proses dan sumber daya yang terlibat deadlock.
Periode yang biasa dilakukan adalah memonitor permintaan dan pelepasan sumber
daya.

Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah:

1. Permintaan sumber daya dikabulkan selama memungkin-kan.


2. Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
3. Pemeriksaan adanya Deadlock dapat dilakukan setiap ada sumber daya yang
hendak digunakan oleh sebuah proses.
4. Memeriksa dengan algoritma tertentu.

Setelah diketahui hasil pendeteksiaannya makan akan diadakan proses


memperbaiki dan menjadikan sistem berjalan kembali. Jika tidak bisa berjalan
kembali maka proses akan dihentikan dan direstart.

Untuk perbaikan terdapat :


 Preemption

Dengan cara untuk sementara waktu menjauhkan sumber daya dari pemakainya,
dan memberikannya pada proses yang lain.

 Melacak kembali
o Proses yang diambil sumber dayanya ketika dilakukan preemption akan
berhenti, dibutuhkan langkah untuk melanjutkan proses tersebut
o Sulit dilakukan sehingga umumnya proses dimulai lagi dari awal
 Menghentikan proses yang menyebabkan deadlock – cara paling umum digunakan

Cara yang paling umum adalah mematikan semua proses yang mengalami
deadlock. Dilakukan dengan memilih salah satu korban untuk melepas sumber
dayanya, dengan cara ini maka masalah pemilihan korban menjadi selektif.

Berikut adalah kriteria pemilihan korban :


1. Yang paling jarang memakai processor

2. Yang paling sedikit hasil programnya

3. Yang paling banyak memakan sumber daya selama ini

4. Yang alokasi sumberdayanya sedikit

5. Yang memiliki prioritas kecil

3. Menghindari Deadlock (Avoidance)

Menghindari deadlock dengan cara hanya memberi akses ke permintaan


sumber daya yang tidak mungkin menimbulkan deadlock. Dapat menggunakan
algoritma bangkir, Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari
Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma
bankir.

Algoritma ini dapat digambarkan sebagai seorang bankir yang berurusan


dengan kelompok orang yang meminta pinjaman. Jadi kepada siapa dia dapat
memberikan pinjamannya. Dan setiap pelanggan memberikan batas pinjaman
maksimum kepada setiap peminjam dana.

Secara umum algoritma mempunya 4 struktur data, yaitu :

1. Tersedia : Jumlah sumber daya/dana yang tersedia.


2. Maksimum. : Jumlah sumber daya maksimum yang diminta oleh setiap proses.
3. Alokasi : Jumlah sumber daya yang dibutuhkan oleh setiap proses.
4. Kebutuhan. : Maksimum-alokasi, sisa sumber daya yang dibutuhkan oleh
proses setelah dikurangi dengan yang dialokasikan

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.

Berikut adalah beberapa kelemahan algoritma Bankir Tanenbaum (1992), Stallings


(1995) dan Deitel (1990) 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.
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

2.5 Mencegah Deadlock

1. Sebisa mungkin tidak mempergunakan mutual exclusion


2. Jika proses sedang memegang sumberdaya tertentu, untuk permintaan berikutnya
proses harus melepas dulu sumberdaya yang dipegangnya.
3. Tiap proses harus meminta semua sumber daya yang diperlukan secara sekaligus dan
tidak berlanjut sampai semuanya diberikan.
4. Beri pengurutan linier terhadap tipe-tipe sumber daya pada semua proses, yaitu jika
proses telah dialokasikan suatu tipe sumber daya, proses hanya boleh meminta tipe
sumber daya pada urutan berikutnya.

2.6 Menghindari Deadlock

Metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya
yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian
akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka
sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang
meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi
ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah
dilepaskan.

Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan


keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta
disebut unsafe-state.

1. Kondisi Aman (Safe state)

Suatu keadaan dapat dinyatakan sebagai safe state jika tidak


terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya
yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.

2. Kondisi Tak Aman (Unsafe state)

Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak
terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan
menjalankan proses-proses dengan suatu urutan.
2.7 Mendeteksi Deadlock dan Memulihkan

Metode ini mengunakan pendekatan dengan teknik untuk menentukan


apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam
deadlock tersebut. Setelah kondisi deadlockdapat dideteksi, maka langkah pemulihan dari
kondisi deadlock dapat segera dilakukan.

Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang


diperlukan oleh proses-proses yang membutuhkannya. Beberapa cara digunakan untuk
mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-
emption (mundur) suatu proses. Metode ini banyak digunakan pada
komputer mainframe berukuran besar.

BAB III DAFTAR PUSTAKA

1. https://docplayer.info/45923535-Sistem-operasi-deadlock.html

2. https://www.gurupendidikan.co.id/deadlock-dan-starvation/

3. https://majalahpendidikan.com/sistem-operasi-pengertian-deadlock/