Anda di halaman 1dari 10

DEADLOCK & ALGORITMA OSTRICH

DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH

Sistem Operasi

Dosen Pengampu Bapak Alun Sujjada, S.Kom, M.T.

Di Susun Oleh :

Azril Mulyana
20190040041

PROGRAM STUDI TEKNIK INFORMATIKA


UNIVERSITAS NUSA PUTRA
SUKABUMI 2021

1
KATA PENGANTAR

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga
saya dapat menyelesaikan tugas makalah yang berjudul DeadLock & Algoritma Ostrichini
tepat pada waktunya.

Adapun tujuan dari penulisan dari makalah ini adalah untuk memenuhi tugas Alun Sujjada,
S.Kom, M.T.. pada Sistem Operasi .Selain itu, makalah ini juga bertujuan untuk menambah
wawasan tentang DeadLock & Algoritma Ostrichbagi para pembaca dan juga bagi penulis.

Saya mengucapkan terima kasih kepada bapak Alun Sujjada, S.Kom, M.T.. ,selaku Dosen
Sistem Operasi yang telah memberikan tugas ini sehingga dapat menambah pengetahuan
dan wawasan sesuai dengan bidang studi yang saya tekuni.
Saya juga mengucapkan terima kasih kepada semua pihak yang telah membagi sebagian
pengetahuannya sehingga saya dapat menyelesaikan makalah ini.
Saya menyadari, makalah yang saya tulis ini masih jauh dari kata sempurna. Oleh karena itu,
kritik dan saran yang membangun akan saya nantikan demi kesempurnaan makalah ini.
12-04-2021

Penulis

i
DAFTAR ISI

KATA PENGANTAR .................................................................................... i


DAFTAR ISI .................................................................................................. ii
BAB I PENDAHULUAN

1.1 Latar Belakang ................................................................................. 1


1.2 Rumusan Masalah ............................................................................ 1
1.3 Tujuan Penulisan .............................................................................. 1
1.4 Manfaat Penulisan ............................................................................ 1

BAB II PEMBAHASAN

2.1 DeadLock ......................................................................................... 2


2.2 Algoritma Ostrich ............................................................................ 5

BAB III PENUTUP

A. Kesimpulan ...................................................................................... 6

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

ii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Dalam perkembangan dunia ilmu pengetahuan dan teknologi saat ini, terkadang
sangatlah sulit untuk menyelesaikan suatu permasalahan yang timbul dengan menggunakan
konsep konsep yang sudah ada. Untuk itu graph merupakan salah satu bagian ilmu matematika
yang dapat digunakan untuk mencari solusi yang diharapkan. Saat ini pemakaian teori graph
semakin luas sesuai dengan tuntutan yang senantiasa terus bertambah. Teori graph merupakan
topik yang banyak mendapat perhatian, karena model modelnya sangat berguna untuk
aplikasi yang luas, seperti masalah dalam jaringan komunikasi, transportasi, dan ilmu computer.

Salah satu aplikasi graph pada sistem operasi adalah graph alokasi sumber daya yang
digunakan untuk melakukan pendeteksian dan pencegahan deadlock. Deadlock dalam arti
sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah
kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi ataupun
tidak ada komunikasi lagi antar proses.Deadlock disebabkan karena proses yang satu
menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber
daya yang dipegang oleh proses tersebut. Dengan kata lain setiap proses dalam set menunggu
untuksumber yang hanya dapat dikerjakan oleh proses lain dalam set yang sedang menunggu.

1.2 Rumusan Masalah

Masalah dalam penulisanini adalah bagaimana menyelesaikan permasalahan dalam


mendeteksi deadlock pada sistem operasi dan pencegahannya dengan algoritma pencegahan dan
pemulihan.

1.3 Tujuan Penulisan

Adapun tujuan penulisanini adalah untuk mendeteksi dan mencegah deadlock pada sistem
operasi beserta contoh dan penanganannya.

1.4 Manfaat Penulisan

Manfaat penulisan ini untuk pembaca adalah agar bisa menambah wawasannya, dan bagi
penulis bisa menjadi pegangan referensi untuk artikel-artikel selanjutnya.

1
BAB II
DEADLOCK
2.1 DeadLock

Dalam sistem komputer, terdapat banyak sumber daya yang hanya bisa dimanfaatkan oleh
satu proses pada suatu waktu. Contohnya adalah penggunaan sumber daya seperti printer, tape
drives dan CD-ROM drives. Dua buah proses yang menggunakan slot yang sama pada tabel
proses dapat menyebabkan kerusakan pada sistem. Untuk itu, setiap sistem operasi memiliki
mekanisme yang memberikan akses eksklusif pada sumber daya.

Pada kenyataannya, proses membutuhkan akses eksklusif untuk beberapa sumber daya
sekaligus. Bayangkan apabila sebuah proses, sebut saja proses A, meminta sumber daya X dan
mendapatkannya. Kemudian ada proses B yang meminta sumber daya Y dan mendapatkannya
juga. Setelah itu, proses A meminta sumber daya Y dan proses B meminta sumber daya X. Pada
situasi tersebut, kedua proses harus ter- block dan menunggu secara terus-menerus. Keadaan
seperti itu dinamakan deadlock.

Deadlock secara bahasa berarti buntu atau kebuntuan. Dalam definisi lebih lengkap,
deadlock berarti suatu keadaan dimana sistem seperti terhenti dikarenakan setiap proses memiliki
sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang
dimiliki oleh proses lain. Keadaan seperti ini hanya dapat terjadi pada akses terhadap sumber
daya yang tidak bisa dibagi atau non-sharable.

Gambar Contoh kasus deadlock pada lalu lintas di jembatan

Pada contoh di atas, digambarkan ilustrasi dari kejadian deadlock pada dunia nyata, yaitu
pada lalu lintas di jembatan. Dapat dilihat bahwa kedua mobil yang berada di tengah-tengah
jembatan tidak dapat maju dan hanya menunggu. Penyelesaian dari masalah tersebut adalah salah
satu dari mobil tersebut mundur, sehingga mobil yang lain dapat maju. Mobil pada kasus ini
adalah proses, sedangkan jembatan adalah sumber daya. Kedua mobil berebut untuk
menggunakan sumber daya, namun karena sumber daya tersebut hanya dapat digunakan oleh satu
proses saja, maka terjadilah deadlock. Kondisi tersebut bila terjadi dalam waktu yang lama dapat
menyebabkan terjadinya starvation.

2
Gambar Contoh kasus deadlock pada lalu lintas di persimpangan

Gambar di atas adalah contoh lain terjadinya deadlock pada dunia nyata. Pada gambar jelas
terlihat bahwa lalu lintas terhenti dan terjadi antrian pada empat arah datangnya mobil. Tidak ada
mobil yang bisa melanjutkan perjalanan dan hanya menunggu saja. Permasalahan ini dapat
dipecahkan dengan cara salah satu dari antrian tersebut mundur dan memberikan kesempatan
antrian lain untuk berjalan terlebih dahulu. Kasus seperti ini sangat potensial untuk terjadinya
starvation.
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses
yang lain untuk melepaskan resource (sumber daya) 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. Salah satu contoh sebuah deadlock:
a. Proses A menggunakan CD-ROM.
b. Proses B menggunakan Scanner.
c. Proses A meminta Scanner (tanpa melepas CD-ROM) → menunggu.
d. Proses B meminta CD-ROM (tanpa melepas Scanner) → menunggu.
e. Menunggu… menunggu… DEADLOCK.

Contohnya dapat dilihat dari kode berikut ini :

//dari kelas proses kita tambahkan method yaitu meminta


public void meminta (int banyakA)
{
//meminta dari sumber daya a
if ( banyakA < banyak )
banyak = banyak - banyakA;
else
wait();
}

3
//mengubah kode pada mainnya sebagai berikut
public static void main ( String [] args )
{
Proses P = new Proses();
Proses Q = new Proses();
P.meminta(80);
Q.meminta(70);
P.meminta(60);
Q.meminta(80);
}
private int banyak = 200;
private int banyakA;

Setelah proses P dan Q telah melakukan fungsi meminta untuk pertama kali, maka sumber daya
yang tersedia dalam banyak ialah 50 (200-70-80). Maka saat P menjalankan fungsi meminta lagi
sebanyak 60, maka P tidak akan menemukan sumber daya dari banyak sebanyak 60, maka P akan
menunggu hingga sumber daya yang diminta dipenuhi. Demikian juga dengan Q, akan menunggu
hingga permintaannya dipenuhi, akhirnya terjadi deadlock. Cara mengatasinya dengan
menggunakan memori maya.

Adapun 4 kondisi penyebab deadlock adalah sebagai berikut :

a. Mutual Exclusion

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.

b. Hold and Wait

Proses yang sedang memakai sumber daya boleh meminta sumber daya lagi maksudnya
menunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh proses lain, hal ini
dapat menyebabkan kelaparan sumber daya sebab dapat saja sebuah proses tidak mendapat
sumber daya dalam waktu yang lama.

c. No Preemption

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 dan mempersilahkan hanya proses yang
memiliki sumber daya yang boleh berjalan.

d. Circular Wait

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

4
2.2 Algoritma Ostrich

Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah dengan berpura
pura bahwa tidak ada masalah apa pun. Diibaratnya seperti burung unta yang menempelkan
kepalanya di pasir dan berpura-pura tidak terjadi masalah apa pun. Hal ini seakanakan melakukan
suatu hal yang fatal, tetapi sistem operasi menanggulangi Deadlock dengan cara ini dengan tidak
mendeteksi Deadlock dan membiarkannya secara otomatis mematikan program sehingga seakan
akan tidak terjadi apa pun. Jadi jika terjadi Deadlock, maka tabel akan penuh, sehingga proses
yang menjalankan proses melalui operator harus menunggu pada waktu tertentu dan mencoba
lagi.

Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan
deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang
sumber daya yang mana yang akan suatu proses meminta dan berapa lama akan digunakan.
Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak. Hal
ini disebabkan oleh keberadaan sumber daya, apakah ia sedang digunakan oleh proses lain atau
tidak.

Algortima Ostrich di gunakan oleh dua metode sebagai berikut :

1. Trade-offs : merupakan metode penanganan deadlock dengan sistem dimana ada asumsi bahwa
suatu masalah (dalam hal ini deadlock) jarang terjadi atau masalah tersebut belum tentu benar
bisa saja sewaktu-waktu berubah atau bahkan akan kembali terjadi, sehingga jangan terlalu
terpaku akan satu masalah yang ada.

2. Pendekatan Hybird : merupakan metode yang mengasumsikan masalah (dalam hal ini misal
deadlock) sangat jarang terjadi atau bahkan tidak akan pernah terjadi sama sekali, dan biasanya
bisa saja beralih pada algoritma yang lebih kompleks untuk mengetahui masalah tersebut benar-
benar terjadi atau tidak.

5
BAB III
PENUTUP
3.1 Kesimpulan

Dari uraian diatas, maka dapat ditarik kesimpulan yaitu:


Deadlock adalah suatu kondisi dimana sekumpulan proses tidak dapat berjalan kembali akibat
kompetisi memperebutkan sumber daya.
Sebuah proses berada dalam keadaan deadlock apabila semua proses berada dalam keadaan
menunggu (di dalam waiting queue) peristiwa yang hanya bisa dilakukan oleh proses yang berada
dalam waiting queue tersebut.
Sebenarnya deadlock dapat disebabkan oleh empat hal yaitu:
1. Proses Mutual Exclusion.
2. Proses memegang dan menunggu.
3. Proses Preemption.
4. Proses Menunggu dengan siklus deadlock tertentu.

6
DAFTAR PUSTAKA

[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005 . Operating Systems
Concepts. Seventh Edition. John Wiley & Sons.

[Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997 . Operating Systems


Design and Implementation . Second Edition. Prentice-Hall.

[WEBRpi2004] Computer Science RPI. 2004 . Deadlock


http://www.cs.rpi.edu/academics/courses/fall04/os/c10/index.html. Diakses 28 Maret 2007.

[WEBWiki2006a] Wikipedia. 2006 . Deadlock http://en.wikipedia.org/wiki/Deadlock. Diakses


05 Februari 2007.

[WEBWiki2006b] Wikipedia. 2006 . Banker's Algorithm


http://en.wikipedia.org/wiki/Banker%27s_algorithm. Diakses 16 Februari 2007.

Anda mungkin juga menyukai