DEADLOCK
150 likes | 282 Vues
DEADLOCK. ilustrasi. Di dalam lingkungan multiprogramming, beberapa proses mungkin beradu cepat untuk memperoleh resource. Sebuah proses membutuhkan resource, apabila resource tidak ada maka proses akan memasuki Wait state.
DEADLOCK
E N D
Presentation Transcript
ilustrasi • Di dalamlingkungan multiprogramming, beberapaprosesmungkinberaducepatuntukmemperoleh resource. • Sebuahprosesmembutuhkan resource, apabila resource tidakadamakaprosesakanmemasuki Wait state. • Adakemungkinanprosestersebuttidakakanpindahke state berikutnya, karena resource yang dimintamasihdipakaiproses lain yang sedangmenunggujuga. • Kondisiinilahdisebut DEADLOCK
FAsepenggunaan resource • Request • PermintaanProsesuntukmenggunakan Resource • Jika Resource sedangdipakaiolehproses yang lain makaProsesharusmenunggusampai Request bisamemperoleh Resource • Use • Prosesbisamengoperasikan Resource • Release • Prosesmelepaskan Resource
Kondisipenyebab deadlock • Mutual Exclusion • Hanyaadasatuproses yang bolehmemakaisumberdaya,danproses lain yang inginmemakaisumberdayatersebutharusmenungguhinggasumberdayatadidilepaskanatautidakadaproses yang memakaisumberdayatersebut. • Hold & Wait • Proses yang sedangmemakaisumberdayabolehmemintasumberdayalagimaksudnyamenungguhinggabenar-benarsumberdaya yang dimintatidakdipakaiolehproses lain, halinidapatmenyebabkankelaparansumberdayasebabdapatsajasebuahProsestidakmendapatsumberdayadalamwaktu yang lama.
Kondisipenyebab deadlock • No PreEmption • Sumberdaya yang adapadasebuahprosestidakbolehdiambilbegitusajaolehproseslainnya. Untukmendapatkansumberdayatersebut, makaharusdilepaskanterlebihdahuluolehproses yang memegangnya, selainituseluruhprosesmenunggudanmempersilahkanhanyaproses yang memilikisumberdaya yang bolehberjalan • Circular Wait • Kondisi P0 menunggu P1, lalu P1 menunggu P2, P2 menunggu P0 jadisepertirantai.
Algoritmapencegahdeadlock • Safe State • Yaitumemastikansemuaprosesdalamkondisi yang tidakterjadi deadlock • Ex: Resource = 12
Algoritmapencegahdeadlock • AlgoritmaBankir • Yaituadabankir yang meminjamkanpadanasabah, setiapnasabahdiberibataspinjaman, tentunyanasabahmeminjamsecarabertahap, bankirmemprioritaskan yang pinjamannyalebihbesar.Faktornya : • SumberdayaTersedia • Maximum permintaan • Alokasi tiap2 proses • Kebutuhan
Resource allocation GRaph • Deadlock bisadenganmudahdiketahuidenganmenggambarkankedalambentuk yang disebut “Resource Allocation Graph” • Resource digambarkandalambentukberikut • Prosesdigambarkandalambentukberikut • Penggunaan prosesmenggunakanbentuk . P1
RAG • Mengetahui Graph apakahada yang deadlock • JikatidakAda Cycle/Putaranmakatidakadapotensi deadlock • Jikaada Cycle/Putaranmakaadapotensi deadlock • Resource dgn instance tunggaldanperputaranmengakibatkan deadlock
Contoh RAG • P(process)={P1,P2,P3} ; R(res)={R1,R2,R3,R4} ; • E(edge)={P1R1,P2R3,R1P2, R2P2,R2P1,R3P3} Apakahproses deadlock?
Contoh RAG • P(process)={P1,P2,P3} ; R(res)={R1,R2,R3,R4} ; • E(edge)={ P1R1,P2R3,R1P2, R2P2,R2P1,R3P3,P3R2} Apakah proses2 tsbt deadlock?
Menangani deadlock • MenghentikanProses • Menghentikanseluruhproses • Menghentikansalahsatuprosesdengancost terkecil, antara lain: • Yang memiliki prioritas terkecil • Berapa lama prosessudahdikerjakandanberapa lama lagiprosesmemerlukanwaktuuntukselesai • Berapabanyakdan resource apa yang digunakansehinggamudahuntukdihentikan • Berapabanyak resource yang diperlukan • Berapabanyakproses yang perludihentikan • ApakahProsesdalam mode interaktifataukah batch
Menangani deadlock • Resource PreEmption • Memilihprosessebagaikorban, dengankriteria • Jumlah resource yang digunakanolehproses yang deadlock. • Waktu yang diperlukanolehprosesuntukmenyelesaikanpekerjaan. • Rollback/Mengulang • Yaitudenganmenghentikanseluruhprosesdanmengulanginyadariawal • Starvation / Kelaparan Resource • Yaitudenganmengulangprosestetapimenghindariproses yang menyebabkankekurangan resource.
Menangani deadlock • Menghiraukan Deadlock tersebut (metodeAlgoritma Ostrich) • Sistemmenghiraukan, danjika deadlock makatabelakanpenuhsehinggaproses yang barutidakakanbisamasuklagi • Dipakaidisebagianbesar OS termasuk Unix.