150 likes | 279 Views
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.
E N D
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.