17
Deadlock (Ölümcül Kilitlenme)

Deadlock (Ölümcül Kilitlenme)

  • Upload
    ianthe

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Deadlock (Ölümcül Kilitlenme). Kilitlenme Türleri. Karşılıklı dışlama: Aynı anda kaynak kullanımı Sahiplenme ve bekleme: Elindeki kaynağı bırakmadan başka prosesi bekleme Geri alınamaz kaynak: Prosesin kaynağı işletim sistemine geri vermemesi Çevrel bekleme: - PowerPoint PPT Presentation

Citation preview

Page 1: Deadlock (Ölümcül Kilitlenme)

Deadlock (Ölümcül Kilitlenme)

Page 2: Deadlock (Ölümcül Kilitlenme)
Page 3: Deadlock (Ölümcül Kilitlenme)

Kilitlenme TürleriKarşılıklı dışlama: Aynı anda kaynak kullanımıSahiplenme ve bekleme: Elindeki kaynağı

bırakmadan başka prosesi bekleme Geri alınamaz kaynak: Prosesin kaynağı

işletim sistemine geri vermemesiÇevrel bekleme:

Bir prosesin kendinden sonraki prosesin elinde olan kaynağa ihtiyaç duyması

İki prosesin karşılıklı olarak ellerindeki kaynaklara ihtiyaç duyması

Page 4: Deadlock (Ölümcül Kilitlenme)

Kilitlenme (Deadlock)A set of two or more processes are

deadlocked if they are blocked (i.e., in the waiting state) each holding a resource and waiting to acquire a resource held by another process in the set.

İki veya daha fazla işlem bloklanmışlarsa yani, her işlem bir kaynağı kullanıyor (allocate) iken diğerinin kullandığı kaynağı istiyor (request) olursa ölümcül kilitlenme meydana gelir.

Page 5: Deadlock (Ölümcül Kilitlenme)

Kilitlenme (Deadlock)Örneğin bir işlem bir kaynağı (örneğin A dosyasını)

kullanırken diğer bir kaynağı (örneğin B dosyasını) kullanmak istemektedir.

Ancak aynı zamanda başka bir işlem B dosyasını kullanırken A dosyasını kullanmak istemektedir.

Bu durumda her iki işlem de istedikleri dosyaları alamayacakları için bu işlemler bloklanacaklardır.

Page 6: Deadlock (Ölümcül Kilitlenme)

Kilitlenme örneği : Resource-Allocation Graph

P1 P2

R1

R2

request

request

allocate

allocate

P1 işlemi R1 kaynağını kullanıyor (allocate etmiş) iken R2 kaynağını istiyor.P2 işlemi R2 kaynağını kullanıyor iken R1 kaynağını istiyor.

Page 7: Deadlock (Ölümcül Kilitlenme)

Kilitlenme algılamaEğer graph ta dairesel bir ilişki yoksa

deadlock da yoktur. Eğer graphta döngü varsa:

Eğer her kaynağın (resource) bir örneği (instance) varsa deadlock.

Birden fazla örneği varsa deadlock olma ihtimali vardır.

Page 8: Deadlock (Ölümcül Kilitlenme)
Page 9: Deadlock (Ölümcül Kilitlenme)

Kilitlenme algılama algoritması

Page 10: Deadlock (Ölümcül Kilitlenme)

Available= [0 0 0]

Allocation= Request= Finish=1 0 00 0 10 1 00 1 0

0 1 10 1 01 0 00 0 0

FalseFalseFalseFalse

Page 11: Deadlock (Ölümcül Kilitlenme)

Başlarken Work= Available = [0 0 0]Hangi Request elemanı work ten yani [0 0 0] den küçük eşittir?

4.Eleman i=4 o zaman work=work+allocation(4) = [0 1 0] ve finish(4)=True;Geriye kalan hangi request elemanı [0 1 0] dan küçük eşittir?

2.Elaman i=2 o zaman work+=allocation(2) = [0 1 0]+[0 0 1]=[0 1 1] ; finish(2)=true;

Geriye kalan hangi request elemanı [0 1 1] dan küçük eşittir?1.Eleman i=1 o zaman work+=allocation(1) =[0 1 1]+[1 0 0]=[1 1 1];

finish(1)=True;Geriye kalan hangi request elemanı [1 1 1] dan küçük eşittir?

3.Eleman i=3 o zaman work+=allocation(3) =[1 1 1]+[0 1 0]=[1 2 1]; finish(3)=True;Finish in tüm elemanları true olduğundan sistemde deadlock yoktur.

Request=

0 1 10 1 01 0 00 0 0

Allocation=

1 0 00 0 10 1 00 1 0

Page 12: Deadlock (Ölümcül Kilitlenme)
Page 13: Deadlock (Ölümcül Kilitlenme)
Page 14: Deadlock (Ölümcül Kilitlenme)
Page 15: Deadlock (Ölümcül Kilitlenme)
Page 16: Deadlock (Ölümcül Kilitlenme)

Çakışma Durumunda:Öncelik verilebilirİşlem sonlandırılabilirİşlem geri alınabilir

Page 17: Deadlock (Ölümcül Kilitlenme)

Bazı KavramlarPetrinet: Proses modelleme diliSemafor: Prosesler arasında işaretleşme için

kullanılan değişken. (Bayrak ile işaret verme)Boru (Pipe): Temel olarak processler arası

iletişim için kullanılırBoru Hattı (Pipeline): Her bir elemanın çıktısı

bir sonraki elemanın girdisi olacak şekilde sıralanmış işlemler zinciridir.

Soket: Aynı veya farklı bilgisayarlar üzerinde çalışan prosesler arasında bilgi alışverişi yapmayı sağlar