Sistem Operasi
Prinsip Deadlock, Pencegahan
Deadlock, Penghindaran Deadlock,
Deteksi Deadlock, Strategi Deadlock,
Starvation
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.
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.
Contoh solusi: proses P dibuat agar tidak membutuhkan resource A dan B secara bersamaan
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.
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.
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.
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses
berikutnya.
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.
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
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.
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
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.
Proses yang kekuranganresource (karena terjadi deadlock) tidak akan pernah mendapat
resource yang dibutuhkan sehingga mengalami starvation (kelaparan)
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
¨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.
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.
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.
Pangera Ali Abas M.Kom. Ariyus Dony.2005, Sistem Operasi, Penerbit ANDI
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