Anda di halaman 1dari 11

MODUL PERKULIAHAN

Sistem Operasi
Prinsip Deadlock, Pencegahan
Deadlock, Penghindaran Deadlock,
Deteksi Deadlock, Strategi Deadlock,
Starvation

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

07
Ilmu Komputer Teknik Informatika W151700010 Mohamad Yusuf, S.Kom.,M.C.S.

Abstract Kompetensi
Penjelasan dalam materi modul-7 Mahasiswa memahami dan dapat
terkaitan dengan masalah deadlock, menjelaskan konsep Deadlock dan
munculnya starvation, algoritma starvation
yang ada pada SO, Round Robin.
Pembahasan
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 adalah masalah
yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh
dirubah oleh satu proses saja dalam satu waktu. Di kehidupan nyata, deadlock dapat
digambarkan dalam gambar berikut.

Gambar 7.1 Analogi Deadlock

Deadlock dapat didefinisikan sebagai pemblokiran permanen sejumlah proses yang


berkompetisi dalam mendapatkan sumber daya sistem atau yang berkomunikasi satu dengan
yang lainnya. Semua deadlock mencangkup konflik kebutuhan akan sumber daya oleh dua
proses atau lebih.

Gambar 7.2 Contoh Deadlock


Gam

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


2 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Pada gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi
jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk
mengosongkan jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi
kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses
B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A
memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan
memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan.
Sehingga akan terjadi tunggu-menunggu.

Sekarang kita perhatikan penggambaran deadlock yang terdiri dari proses-proses dan sumber
daya komputer. Gambar 7.2 menjelaskan keadaan dua proses yang sedang berkompetisi untuk
mendapatkan dua sumber daya. Masing- masing proses memerlukan pemakaian eklusif kedua
sumber daya dalam periode waktu tertentu. Proses P memiliki bentuk umum.

Kemungkinan yang dapat terjadi:

1. Proses Q memperoleh B kemudian A, kemudian membebaskan B dan A → Saat proses P


memerlukan kedua resource → sudah tersedia

2. Proses Q memperoleh B kemudian A. Saat proses P membutuhkan resource →menunggu


dulu hingga kedua resource bebas

3. Proses Q memperoleh B kemudian proses P memperoleh A. Selanjutnya proses P akan


mengambil B, tetapi B sedang digunakan oleh proses Q, demikian pula untuk resource A.
Kedua proses saling menunggu → deadlock !

4. Proses P memperoleh A kemudian proses Q memperoleh B. Selanjutnya proses Q akan


mengambil A, tetapi A sedang digunakan oleh proses P, demikian pula untuk resource B.
Kedua proses saling menunggu → deadlock !

5. Proses P memperoleh A kemudian B. Saat proses Q membutuhkan resource→menunggu


dulu hingga kedua resource bebas

6. Proses P memperoleh A kemudian B, kemudian membebaskan A dan B → Saat proses Q


memerlukan kedua resource → sudah tersedia

Contoh solusi: proses P dibuat agar tidak membutuhkan resource A dan B secara bersamaan

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


3 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Syarat terjadinya Deadlock
1. Mutual exclusion (mutual exclusion conditional)

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.

2. Kondisi tahan dan tunggu (hold and wait)

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.

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

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.

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.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


4 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Gambar 7.3 Circular Wait

PENCEGAHAN DEADLOCK

Pencegahan deadlock dapat dilakukan dengan cara mencegah salah satu dari empat
karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara pencegahan
terhadap empat karakteristik tersebut.

1.Mutual Exclusion . Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar
terjadi, yaitu pada sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada
sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang
pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.

2.Hold and Wait . Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses
meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses
meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi,
sehingga tidak perlu menunggu.

3.No Preemption . Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption.
Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber
daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya
yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang
menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber
daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir.

4.Circular Wait . Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total
kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme
enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan meminta sumber
daya harus meminta sumber daya dengan urutan yang menaik. Misalkan sumber daya printer

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


5 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
memiliki nomor 1 sedangkan CD-ROM memiliki nomor 3. Proses boleh melakukan
permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.

Penghindaran Deadlock

Pendekatan 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.

a. 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.

b. 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.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


6 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Pada sistem kebanyakan permintaan terhadap sumber daya dilakukan sebanyak sekali saja.
Sistem sudah harus dapat mengenali bahwa sumber daya itu aman atau tidak (tidak terkena
deadlock), setelah itu baru dialokasikan.

Pada sistem deadlock avoidance (penghindaran) dilakukan dengan cara memastikan bahwa
program memiliki maksimum permintaan. Dengan kata lain cara sistem ini memastikan
terlebih dahulu bahwa sistem akan selalu dalam kondisi aman. Baik mengadakan permintaan
awal atau pun saat meminta permintaan sumber daya tambahan, sistem harus selalu berada
dalam kondisi aman.

Pengertian STARVATION

Berkembangannya Sistem Imformasi saat ini dan mendatang akan menuju ke sebuah sistem
multiprogramming, multi-processing, paralel dan terdistribusi yang mengharuskan adanya
proses-proses yang berjalan bersama sama dalam waktu yang bersamaan

¨Starvation adalah kondisi yang biasanya terjadi setelah deadlock.

Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah
mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan).

¨Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang
kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang
dibutuhkan sehingga mengalami starvation (kelaparan). ¨Starvation dapat terjadi pada proses
penjadwalan yang menggunakan prinsip “proses yang paling cepat diselesaikan didahulukan”,
seperti pada Shortest Job First (SJF) dan Penjadwalan Prioritas.

Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah
mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan). Starvation
dapat diatasi dengan Aging dan pemrosesan dengan cara Round Robin.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


7 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
KARENA ADANYA DEADLOCK

Proses yang kekuranganresource (karena terjadi deadlock) tidak akan pernah mendapat
resource yang dibutuhkan sehingga mengalami starvation (kelaparan)

TANPA ADANYA DEADLOCK

Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam
pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak
pernah mendapatkannya

Karakteristik Starvation

Starvation dapat terjadi pada proses penjadwalan yang menggunakan prinsip “proses yang
paling cepat diselesaikan didahulukan”, seperti pada Shortest Job First (SJF) dan Penjadwalan
Prioritas

Mengatasi Starvation Aging & RR

Mengatasi Starvation Aging

 ¨Proses awal yang ada diberi urutan (N) pemrosesan dengan rumus N = (P+T ) / P. N
maksimum akan mulai dikerjakan dan proses yang lain dinaikkan tingkat urutan
prosesnya agar nanti jika ada proses lain yang masuk, proses terdahulu mendapatkan
bagian resource dan dapat dikerjakan.
 Jika ada beberapa proses yang memiliki N maksimum, maka diantara proses tersebut
dilihat dari waktu yang dibutuhkan untuk menyelesaikannya. Jika masih sama juga,
maka dilihat waktu kedatangannya.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


8 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Mengatasi Starvation RR
Ada beberapa cara untuk mengatasi Starvation, salah satunya dengan Aging, proses awal yang
ada diberi urutan (N) pemrosesan dengan rumus N = ( P+T ) / P. N maksimum akan mulai
dikerjakan dan proses yang lain dinaikkan tingkat urutan prosesnya agar nanti jika ada proses
lain yang masuk, proses terdahulu mendapatkan bagian resource dan dapat dikerjakan.

Jika ada beberapa proses yang memiliki N maksimum, maka diantara proses tersebut dilihat
dari waktu yang dibutuhkan untuk menyelesaikannya. Jika masih sama juga, maka dilihat
waktu kedatangannya. Selain itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara
Round Robin.

Round Robin, adalah proses yang akan dimasukkan ke dalam antrian menurut proses
kedatangannya. Dalam penyelesainnya, suatu proses tidak akan langsung selesai jika waktu
yang dibutuhkan melebihi waktu kuantum yang diberikan.

Waktu kuantum itu sendiri adalah waktu telah yang diberikan untuk menyelesaikan suatu
proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses tersebut
dikembalikan ke antrian paling belakang dan resource dipindahkan ke proses selanjutnya.
Dengan cara ini, semua proses yang mengantri, akan mendapatkan resource secara bergantian
( tidak ada proses yang memonopoli resource ) sehingga semua proses dapat diselesaikan.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


9 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
 Round Robin , adalah proses yang akan dimasukkan ke dalam antrian menurut proses
kedatangannya. Dalam penyelesainnya, suatu proses tidak akan langsung selesai jika
waktu yang dibutuhkan melebihi waktu kuantum yang diberikan.

 Waktu kuantum adalah waktu telah yang diberikan untuk menyelesaikan suatu proses.
Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses tersebut
dikembalikan ke antrian paling belakang dan resource dipindahkan ke proses
selanjutnya. Dengan cara ini, semua proses yang mengantri, akan mendapatkan
resource secara bergantian ( tidak ada proses yang memonopoli resource) sehingga
semua proses dapat diselesaikan.

Status Aman Status ini terjadi jika sistem dapat mengalokasikan sumber daya bagi tiap proses
dalam keadaan tertentu dan masih dapat terjadi deadlock. Status aman bukanlah status
deadlock, jadi status deadlock merupakan status tidak aman, tetapi tidak selamanya status
tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat terjadi.

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


10 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id
Daftar Pustaka

Pangera Ali Abas M.Kom. Ariyus Dony.2005, Sistem Operasi, Penerbit ANDI

Tanenbaun Andrew S,, Modern Operating System.

https://www.tutorialspoint.com/operating_system/os_process_scheduling_algorithms.htm

http://www.mikirbae.com/2016/09/penjadwalan-processor-pada-sistem.html

http://ftp.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-
1/ch17s07.htm

http://www.virtualofworld.com/2016/04/penanganan-dan-pencegahan-deadlock.html

2019 Sistem Operasi Pusat Bahan Ajar dan eLearning


11 Mohamad Yusuf, S.Kom.,M.C.S. http://www.mercubuana.ac.id

Anda mungkin juga menyukai