410 likes | 801 Vues
Deadlock. SISTEM OPERASI. Pengertian dan Latar Belakang. Keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah
E N D
Deadlock SISTEM OPERASI
Pengertian dan Latar Belakang • Keadaandimana 2 ataulebihprosessalingmenunggumeminta resources untukwaktu yang tidakterbataslamanya • Analoginyasepertipadakondisijalanrayadimanaterjadikemacetanparah • Deadlock adalahefeksampingdarisinkronisasi, dimanasatuvariabeldigunakanoleh 2 proses
Kondisiyang diperlukan • Mutual Exclusion • Gengganmdantunggu • No Preemption • Menunggusecarasirkuler Deadlock harusmemenuhisemuasyaratdiatas
Resource allocation graph • Deadlock dapatdigambarkanlebihpresisidenganmenggunakan graph berarah yang disebut resource allocation graph. Graph terdiriatashimpunantitik ( vertex ) V dibagimenjadiduatipeyaituhimpunan proses yang aktifpadasistem p = {p1,p2…..,pn} dantipesumberdayapadasistem R= {R1,R2,….Rm}.
Metodemenangani deadlock Terdapattigametodeuntukmenanganipermasalahan deadlock yaitu : • Menngunakan protocol untukmenjaminbahwasistemtidakpernahmemasuki status deadlock • Mengizinkansistemmemasuki status deadlock dankemudianmemperbaikinya. • Mengabaikanpermasalahandanseakan-akan deadlock tidakpernahterjadipadasistem.
Mencegah deadlock Mencegah deadlock dilakukandenganmeniadakansalahsatudarisyaratsebagaiberikut : • Mencegah mutual exclusion Mutual exclusion benar-benartakdapatdihindari. Hal inidikarenakantidakadasumberdaya yang dapatdigunakanbersama-sama, jadisistemharusmembawasumberdaya yang tidakdapatdigunakanbersama-sama
Mencegah Hold and wait Untukmencegah hold and wait, sistemharusmenjaminbilasuatumenjaminbilasuatu proses memintasumberdaya, maka proses tersebuttidaksedangmemegangsumberdaya yang lain.
Mencegah Non preemption Cara mencegahkondisi non preemption : • Jikasuatu proses yang membawabeberapasumberdayamemintasumberdaya lain yang tidakdapatsegeradipenihiuntukdialokasikanpada proses tersebut, makasemuasumberdaya yang sedangdibawa proses tersebutharusdibebaskan.
Proses yang sedangdalamkeadaanmenunggu, sumberdaya yang dibawanyaditundadanditambahkanpadadaftarsumberdaya. • Proses akan di restart hanyajikadapatmemperolehsumberdaya yang lama dansumberdayabarudiminta.
Menghindari deadlock • Metodealterntifuntukmenghindari deadlock adalahdigunakaninformasitambahantentangbagaimanasumberdayadimita. Misalnyapadasistemdengansatu tape drive dansatu printer, proses P pertamameminta tape drive dankemudian printer sebelummelepaskankeduasumberdayatersebut. Sebaliknya proses Q peramameminta printer kemudian tape drive.
State selamat • Ketikasuatu proses memintasumberdaya yang tersedia, sistemharusmenentukanapakahalokasisumberdayapada proses mengakibatkansistemdalam safe state. Sistemdikatakandalam safe state jikasistemdapatmengalokasikansumberdayauntuksetiap proses secaraberurutandanmenghindari deadlock.
Algoritma resource allocation graph Untukmenghindari deadlock padasistem yang hanyamempunyaisatuanggotauntuksetiaptipesumberdaya, dapatdigunakanalgoritma resource allocation graph. Clain edge pi Rjmanandakanbahwa proses pi mungkinmemintasumberdayaRj yang direpresentasikandengangarispututs-putus.
Clainadgeakanberubahke request adgebila proses memintasumberdaya. Bilasumberdayadibebaskanoleh proses, assigmentdiubahke claim edge. Sumberdayasebelumnyaharusdiklaimpadasistem. Sehinggasebelum proses pi mulaidieksekusi, semua claim edge harusmunculpada resource allocation graph.
Algoritma banker Algoritma resource allocation graph tidakdapatdiaplikasikanpadasistem yang mempunyaibeberapaanggotapadasetiaptipesumberdaya. Setiap proses sebelumdieksekusiharusmenentukanjumlahsumberdayamaksimum yang dibutuhkan. Jikasuatu proses memintasumberdaya, makakemungkinan proses harusmenunggu.
Kelemahanalgoritma banker • Di awal proses, proses-proses jarangmengetahuijumlahmaksimumsumberdaya yang akandiperlukan. • Jumlah proses tidaktetap, secaradinamisberagambegitu user baru login gan logout. • Sumberdaya yang dihitungsebagaitersediadapatsajatiba-tibaditinggalkansehinggasebenarnyamenjaditidaktersedia. • Proses-proses harus independent, yaituurutan proses-proses dieksekusitidakdibatasikebutuhansinkronisasiantarproses. • Algoritmamenghendakimemberikansemuapermintaanselamawaktu yang berhingga. • Algoritmamenghendaki client-client mengembalikansumberdayasetelahsuatuwaktu yang berhingga.
Mendeteksi deadlock Jikasistemtidakmenyediakanalgoritmamencegahdeadlochdeadloch. Padalingkunganinisistemharusmenyediakan : • Algoritma yang menguji state sistemuntukmenentukanapakahdeadlochtelahterjadi. • Algoritmauntukmemperbaikidarideadloch.
Perbaikanterhadapdeadloch • Terdapatduapilihanuntukmembebaskan deadlock. Satusolusisederhanaadalahdenganmenghentikansatuataubeberapa proses untumembebaskankondisimenunggusirkular. Pilihankeduaadalahmenundabeberapasumberkondisidayadarisatuataulebih proses yang deadloch.