Click here to load reader

BÖLÜM 8

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

BÖLÜM 8. DEADLOCKS. İçerik. Kilitlenme Problemi Sistem Modeli Deadlock Karakterizasyonu Kilitlenmeyi Yakalama Metotları Kilitlenmeyi Önleme Kilitlenmeden Kaçınma Kilitlenmeyi Tespit Kilitlenmeden Geri Dönme. Sistem Modeli. - PowerPoint PPT Presentation

Text of BÖLÜM 8

PowerPoint Presentation

BLM 8DEADLOCKSerikKilitlenme ProblemiSistem ModeliDeadlock KarakterizasyonuKilitlenmeyi Yakalama MetotlarKilitlenmeyi nlemeKilitlenmeden KanmaKilitlenmeyi Tespit Kilitlenmeden Geri Dnme Sistem ModeliSistemde snrl sayda kaynak vardr ve bu kaynaklar belli sayda proses tarafndan paylalarak kullanlrlar. Bir proses bir kayna kullanp brakmadan nce o kayna kullanmak iin istekte bulunmaldr. Bir proses iini tamamlamak iin birden fazla kaynak talebinde bulunabilir. Fakat bu isteklerin says sistemde tanml toplam cihaz saysn geemez. Baka bir deyile eer sistemde 2 printer var ise proses 3 printer isteyemez.Normal iletimde kaynak kullanm u ekilde gerekleir : Request : Proses kayna kullanmak iin istekte bulunur. Use: Proses kayna kullanrRelease : Proses kayna serbest brakr. stek ve kayna serbest brakma system calls aracl ile gerekleir:Request device release device , open/close file , allocate /free memory vb.. Deadlock ayn kaynaklarn istei veya farkl kaynaklarn istei durumunda oluabilir. 3 proses sistemdeki 3 tape drive tutuyor ve ilerini tamamlamak iin bir 2. tape drive a ihtiyalar var veya 2 proses ilerini tamamlamak iin 1 er adet tape drive ve 1 er adet printer a ihtiya duyuyor. Proseslerden birisi tape drive tutuyor , dieri printer tutuyor. Deadlock KarakterizasyonuBlok duruma gemi iki proses iletimlerinin devam iin birbirlerinin kaynaklarna ihtiya duyarlarsa sistem kilitlenme durumundadr.Deadlock olumas durumunda proses iletimini hibir zaman tamamlayamayacak , sistem kaynaklar dmlenecek bu da dier proseslerin almalarn engelleyecek veya hi alamamalarna sebep olacaktr. Deadlock Problemirnek:Sistemde 2 tape drive vardr.P1 ve P2 herbiri bir tane tape drivea sahiptir ve dierine ihtiya duyar.rnek: Semaphore A=1 ve B=1P0P1wait (A);wait(B)wait (B);wait(A)

Gerekli Durumlar1. Mutual Exclusion (paylam reddetme) En azndan bir kaynak paylalamaz moddadr yani o kayna ayn anda sadece 1 proses kullanabilir. Baka bir proses bu kayna kullanmak isterse kaynak release olana kadar beklemelidir. 2. Hold and Wait (Tut ve Bekle)Bir kayna tutan bir proses olmaldr ve bu kaynak iini tamamlamak iin baka bir proses tarafndan tutulan dier bir kaynaa ihtiya duymaktadr. 3. No Preemption (Ele Geirememek) Kaynaklar ele geirilememektedir. Kaynak sadece kendisini tutan prosesin iini tamamlamas ve sonrasnda izni ile serbest hale geebilir. 4. Circular Wait (Dngsel Bekleme)Sistemde P0 , P1 , P2 , Pn proses olsun. P0 , P1 tarafndan tutulmu kayna ; P1 , P2 tarafndan tutulmu kayna .. Pn , P0 tarafndan tutulmu kayna bekler. Kaynak Paylam emasKilitenmeler, System Resource Allocation Graph kullanlarak daha kesin bir ekilde gzlenebilirler. G(V(Dey) ,E(Kenar) ) bileenlerinden oluur. E: Proses ve prosesin kullanmak istediini kaynak bileenlerinden oluur. P=P1,P2,P3R=r1,r2,r3,r4E=(p1,r1),(P2,r3) ,(r1,p2) , (r2,P2) ,(r2,P1),(r3,P3)...ProcessResource Type with 4 instances

Pi requests instance of Rj

Pi is holding an instance of RjPiPiRjRjKaynak Paylam rnei

Kilitlenme Durumu

Sistemde iki dngsel bekleme var. P1, P2 ve P3 prosesleri kilitlenme durumundadr.Dngsel Beklemede, Kilitlenme yok

Sistemde tek bir dngsel bekleme var. Aadaki dngsel beklemeye gre Kilitlenme yoktur....Eer grafta dng yoksa kilitlenme de yoktur. Eer grafta bir dng varsa Her kaynaktan 1 rnek varsa kilitlenme oluur. Her kaynaktan birden fazla rnek varsa kilitlenme olasl vardr.Kilitlenmeden KurtulmaTemelde 2 eit kilitlenme ile mcadele yntemi vardr: Sistemin asla deadlock durumuna dmeyecei bir protokol kullanabiliriz veya alternatif olarak sistemin deadlocka girmesine izin verir daha sonra kurtarma operasyonu gerekletiririz. Kilitlenme durumuna dmesini engellemenin 2 bilinen metodu vardr : Deadlock Prevention (nleme) ve Deadlock Avoidance (kanma) Kilitlenmeyi EngellemeMutual Exclusion Prosesler paylalabilir kaynaklar iin srada beklemezler. Eer kaynaklar mmkn olduunca paylalabilir yapabilirsek kilitlenmeyi bir derece nlemi oluruz. (Readonly dosyalar bu durumda kilitlenme iin kt rneklerdir.)

Hold and Wait Bir proses bir kayna kullanmak istediinde bir baka prosesin o kayna tutmadndan emin olduktan sonra kaynan kullanmna izin verebiliriz. Bir proses iletilmeye balanmadan nce kullanaca btn kaynaklar kendisine verilebilir. Bir baka alternatif protokol de proseslere kaynak kullanmn eer o proses baka bir kayna kullanmyor ise vermektir. Bir proses bir kaynak kullanmn istemeden nce kulland dier tm kaynaklar serbest brakm olmaldr. ...No Preemption 3.Koul kullanlmak istenen kaynaklarn kullanmda olmas nedeni ile ele geirilememesi kullanmna balanamamas idi.Bu durumun olumamas iin izleyeceimiz yol;Eer bir proses bir kayna kullanyorsa ve yeni bir kayna kullanmak istiyorsa, bu yeni kullanmak istedii kayna belli bir sre kullanamayacaksa, tutmu olduu kayna da serbest brakmaldr. Proses bekleme konumuna geer ve belli bir sre sonra serbest brakt kayna tekrar ele geirir ve kullanaca yeni kaynan elverililiine bakar.

Circular Wait Circular wait oluumunu engellemek iin tm kaynaklarn kullanmnda her birine bir id vermeliyiz. Bu id ile kaynaklara ncelik tanmal, kaynaklar kyaslayabilmeliyiz. Bir proses ayn anda 2 kaynak kullanm istediinde ncelikle daha yksek id li kaynaklar kullansn. Bu bir prosesin ayn anda 2 ayn tip kayna kullanmasn engellememize yardmc olacaktr. Hzl cihazlarn ncelikli kullanm salayabiliriz. Kilitlenmeden SaknmaBasit ve en kullanl olan model, her prosesin, ihtiya duyabilecei her tipteki kaynaktan maksimum say belirtmesidir.Kilitlenmeden saknma algoritmas, dinamik olarak kaynak yerleim durumunu, dngsel beklemeye dmemek iin test eder.Kaynak yerleim durumu, uygun olan ve tahsis edilmi kaynak says ile tanmlanr.

Safe State (Gvenli Durum)Bir proses, uygun olan kaynaktan istekte bulunduunda, sistem kaynak yerleim iinin sistemi gvenilir durumda brakacan tespit etmelidir.Tm proseslerin iletimi gvenilir ise sistem gvenilir durumdadr.rnek:Sistemde 12 tape drive ve 3 proses(P0, P1, P2) var.

Maksimum htiyaMevcut htiyaP0 105P1 42P2 92

Balangta sistem gvenilir durumdadr ve 3 adet bo kaynak vardr.P1, tm tape drivelarn alr, kullanr ve sisteme geri iade eder. (Sistemde bota 5 kaynak olmu olur)P0 tm kaynaklarn alabilir ve sonra geri iade eder.(Sistemde bota 10 kaynak olmu olur)Son olarak da P2 kaynaklarnn tmn alr ve iade eder.(Son olarak sistemde yine 12 kaynak bulunur)

Safe, Unsafe, Deadlock State

TemeldeSistem gvenli durumda ise kilitlenme yoktur. Sistem unsafe durumda alyor ise kilitlenme olasl vardr. Kilitlenmeden kanmak demek, sistemin unsafe duruma dmemesini garanti altna almak demektir.Bankers AlgorithmYeni bir proses sisteme dahil olduunda her tip kaynaktan maksimum ka adet kullanacan deklare eder. Bu say sistemdeki ilgili kaynak toplam kaynak miktarn aamaz. Proses kaynak kullanmn istediinde eer kaynaklarn tahsisi durumunda safe state koulu salanyorsa kaynaklar tahsis edilir. Aksi taktirde kaynaklarn tahsisinden sonra safe state durumunu salayacak kadar kaynak elverili duruma gelene kadar beklenir. Bankers AlgorithmN sistemdeki proses says ve m sistemdeki kaynak says iken u verileri dikkate almamz gerekir: Available: her tipteki uygun kaynak saysn belirtir m boyutlu bir vektrdr. Available[j]=k, Rj kaynandan uygun durumda bulunan k tane rnek var demektir. Max: n*m boyutlu matris. Her proses iin kullanlabilecek maksimum kaynak says. Max[i,j]=k, Pi maksimum k adet rj isteyebilir demektir.Allocation: n*m boyutlu matris, her prosesin kullanmakta olduu kaynak saysn belirtir. Allocation[i,j]=k, Proses Pi , rj kaynaklarndan k adedini kullanmaktadr demektir. Need: n*m boyutlu matris prosesin tamamlanmas iin ihtiya duyulan kaynak adedi. Need[i,j]=k ,Pi prosesi iletimini tamamlamak iin k tane daha Rj kaynana ihtiya duymaktadr demektir.Need[i,j]=Max[i,j]-Allocation[i,j]Bankers AlgorithmSafety Algorithm: Sistemin safe state de alp almadn bulan algoritmadr.

Bankaclar Alg.Resource-Request (Kaynak-Talep) Algortihm

Bankaclar Alg. rnekP0 dan P4 e kadar 5 proses var. Kaynak Adan 10 rnek var, B (5 rnek) ve C (7 rnek).T0 zamanndaki durum:

AllocationMaxAvailable A B CA B C A B CP0 0 1 07 5 3 3 3 2P1 2 0 0 3 2 2 P2 3 0 2 9 0 2P3 2 1 1 2 2 2P4 0 0 24 3 3rn..Need belirlenir: Max Allocation.NeedA B C P07 4 3 P11 2 2 P26 0 0 P30 1 1 P44 3 1

Sistem < P1, P3, P4, P2, P0> srasnda gvenli durum saland srece gvenli durumdadr.rn...Request Available (rnek olarak, P1,1 tane A 2 tane de C kayna istedii zaman (1,0,2) (3,3,2) true olduunu kontrol et

Allocation Need Available A B C A B C A B C P00 1 0 7 4 3 2 3 0 P13 0 2 0 2 0 P23 0 1 6 0 0 P32 1 1 0 1 1P40 0 2 4 3 1

P1 istei karlandnda P4 prosesinden (3,3,0 ) istei geliyor karlanr m?

Deadlock detectionletim sistemi kilitlenmeden saknma ve nleme algoritmalar kullanmyor ise kilitlenme oluur. Bu durumda sistem unlar salamaldr:Sistemin kilitlenme durumunu tespit eden bir algoritmaKilitlenmeden geri dnen bir algoritmaHer kaynaktan tek bir rnek var iseResource allocation graph wait for grapha dntrlerek karar verilir:Wait-for graphta sadece dng var ise sistem kilitlenirletim sistemi bu dngy kontrol eden bir algoritmay periyodik olarak altrmaldr.

Her kaynaktan birden ok rnek var iseHer kaynaktan birden ok rnek olduu durumda wait-for graph zm deildir. Bu durumda bankaclar algoritmas benzeri bir algoritma ile zm salanr.Her kaynaktan birden ok rnek var iseVeri yaplar:

rnek Sistemde 5 proses varP0,P1,P2,P3,P53 kaynak var A(7 adet), B(2 adet),C(6 adet)T0 zamannda kaynak yerleim durumu:

Algoritma iletilir ise srasnda tm iler iin finish[i]==true ile sonulanr. Sistem deadlock durumuna dmez. Bu zamanda P2 bir tane daha C kayna isteinde bulunur ise kilitlenme gerekleir.

Kilitlenmenin DzeltilmesiKilitlenmeyi tespit algoritmalar sistemde kilitlenme tespit edildiinde, yaplm

Search related