**lem Yönetimi (**lem, Semafor ve Kilitlenme)

Download Report

Transcript **lem Yönetimi (**lem, Semafor ve 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:
 Bir prosesin kendinden sonraki prosesin elinde olan
kaynağa ihtiyaç duyması
 İki prosesin karşılıklı olarak ellerindeki kaynaklara
ihtiyaç duyması
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ğı (ö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
R1
allocate
request
P1
request
P2
R2
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.
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 deadlock olma ihtimali vardır.
Kilitlenme algılama algoritması
Available= [0 0 0]
Allocation=
Request=
Finish=
Allocation=
Request=
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.
Çakışma Durumunda:
 Öncelik verilebilir
 İşlem sonlandırılabilir
 İşlem geri alınabilir
Bazı Kavramlar
 Petrinet: Proses modelleme dili
 Semafor: 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ır
 Boru 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