lem Ynetimi Kilitlenme Yrd Do Dr Musa ATA

  • Slides: 14
Download presentation
İşlem Yönetimi (Kilitlenme) Yrd. Doç. Dr. Musa ATAŞ Ref: Uğur HALICI METU EEE

İşlem Yönetimi (Kilitlenme) Yrd. Doç. Dr. Musa ATAŞ Ref: Uğur HALICI METU EEE

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

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.

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

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.

Kilitlenme örneği : Resource-Allocation Graph R 1 allocate request P 1 request P 2

Kilitlenme örneği : Resource-Allocation Graph R 1 allocate request P 1 request P 2 R 2 allocate P 1 işlemi R 1 kaynağını kullanıyor (allocate etmiş) iken R 2 kaynağını istiyor. P 2 işlemi R 2 kaynağını kullanıyor iken R 1 kaynağını istiyor.

Kilitlenme algılama Eğer graph ta dairesel bir ilişki yoksa deadlock da yoktur. Eğer graphta

Kilitlenme algılama Eğ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 deadlocak olma ihtimali vardır.

Kilitlenme algılama algoritması

Kilitlenme algılama algoritması

Available= [0 0 0] 100 Allocation= 0 0 1 010 011 Request= 0 100

Available= [0 0 0] 100 Allocation= 0 0 1 010 011 Request= 0 100 000 False Finish= False

100 001 Allocation= 010 Request= 011 010 100 000 Başlarken Work= Available = [0

100 001 Allocation= 010 Request= 011 010 100 000 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.