Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Silberschatz, Galvin and Gagne  2002 8.1 Operating System Concepts Chapter 8: Deadlocks (ölümcül kilitlenmeler) Sistem Modeli Deadlock Tanımlama Deadlock.

Benzer bir sunumlar


... konulu sunumlar: "Silberschatz, Galvin and Gagne  2002 8.1 Operating System Concepts Chapter 8: Deadlocks (ölümcül kilitlenmeler) Sistem Modeli Deadlock Tanımlama Deadlock."— Sunum transkripti:

1 Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 8: Deadlocks (ölümcül kilitlenmeler) Sistem Modeli Deadlock Tanımlama Deadlock ile başa çıkma yöntemleri Deadlock Önleme Deadlocktan Kaçınma Deadlock Tespiti Deadlocktan Kurtarma Deadlok ile başa çıkmada birleşik yaklaşımlar

2 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock Problemi Her biri bir kaynak tutan bir grup bloke edilmiş proses gruptaki bir başka prosesin tuttuğu kaynağa da sahip olmak istiyor. Örnek  Sistem 2 tape sürücüsüne sahip  P 1 ve P 2 in her biri bir tane tape sürücüsü tutuyor ve her biri diğerine de ihtiyaç duyuyor. Örnek  A ve B semaforları 1’e eşitlenmiş P 0 P 1 wait (A);wait(B) wait (B);wait(A)

3 Silberschatz, Galvin and Gagne  Operating System Concepts Kesişen Köprü Örneği Trafik sadece tek yönde Köprünün her bir bölümü bir kaynak olarak düşünülebilir. Eğer deadlock oluşursa, arabalardan birinin geri çekilmesiyle çözülebilir. (kaynakları geçersiz kılma ve geri alma) Eğer bir Deadlock oluşursa birkaç araba geri çekilmek zorunda kalabilir. Açlık durumu mümkündür.

4 Silberschatz, Galvin and Gagne  Operating System Concepts Sistem Modeli Kaynak tipleri R 1, R 2,..., R m CPU devirleri, bellek alanı, G/Ç cihazları Her bir R i kaynak tipi W i örneklerine sahip Her proses kaynağı şöyle kullanır:  istek  kullanım  serbest bırakma

5 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock Tanımlama Karşılıklı dışlama: Sadece bir proses bir anda bir tane kaynak kullanabilir. Tut ve bekle: En azından bir kaynak kullanmakta olan bir proses diğer kaynaklar tarafından kullanılan ek kaynakları edinmek için bekliyor. Bırakma yok: Bir kaynak ancak kendisini kullanan proses tarafından görevini tamamladıktan sonra gönüllü olarak bırakılabilir. Döngüsel Bekleme: Bir set bekleyen proses {P 0, P 1, …, P n } var. Şöyle ki P 0, P 1 tarafından kullanılan kaynağı bekliyor, P 1,P 2 tarafından kullanılan kaynağı bekliyor, P n–1,P n tarafından kullanılan kaynağı bekliyor ve Pn,P 0 tarafından kullanılan kaynağı bekliyor. Eğer dört durum eş zamanlı olarak gerçekleşirse Deadlock ortaya çıkar.

6 Silberschatz, Galvin and Gagne  Operating System Concepts Kaynak Tahsisi Grafiği V iki türe bölünlenmiştir:  P = {P 1, P 2, …, P n }, sistemdeki tüm prosesleri içeren küme  R = {R 1, R 2, …, R m }, sistemdeki tüm kaynakları içeren küme İstek oku– yönlü ok P 1  R j Tahsis oku – yönlü ok R j  P i Noktalardan oluşan V kümesi ve oklardan oluşan bir E kümesi

7 Silberschatz, Galvin and Gagne  Operating System Concepts Kaynak Tahsisi Grafiği (devam) Proses 4 Örnekli bir kaynak tipi P i, R j kaynağının bir örneğini talep ediyor P i, R j kaynağının bir örneğini tutuyor PiPi PiPi RjRj RjRj

8 Silberschatz, Galvin and Gagne  Operating System Concepts Kaynak Tahsisi Grafiği Örneği

9 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock içeren Kaynak Tahsisi Grafiği Örneği

10 Silberschatz, Galvin and Gagne  Operating System Concepts Döngü içeren fakat Deadlock içermeyen Kaynak Tahsisi Grafiği

11 Silberschatz, Galvin and Gagne  Operating System Concepts Temel Özellikler Eğer grafik döngü içermiyorsa  deadlock yok Eğer grafik bir döngü içeriyorsa   Eğer sadece her bir kaynak tipinden sadece bir örnek varsa deadlock vardır.  Eğer her bir kaynak tipinden birçok örnek varsa deadlock olma ihtimali vardır.

12 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock ile başa çıkma yöntemleri Sistemin asla Deadlock durumuna girmeyeceğinden emin olunur. Sistemin Deadlock durumuna girebilmesine izin verilir ve olursa kurtarma yapılır. Sorun görmezden gelinir ve sistemde asla Deadlock olmuyormuş gibi davranılır. Bu yöntem UNIX dahil birçok işletim sistemi tarafından kullanılır.

13 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock Önleme Karşılıklı Dışlama– paylaşılan kaynaklar için gerekli değildir; paylaşılmayan kaynaklar için geçerli olmalıdır. Tut ve Bekle – bir prosesin bir kaynak talep ettiğinde başka bir kaynağı tutmadığını garanti edilmeli  Prosesin istekte bulunması için çalışmaya başlamadan önce bütün kaynaklarının tahsis edilmiş olmasını gerektirir, ya da prosesin hiçbir kaynağı olmadığında kaynak talebinde bulunmasına izin verir.  Düşük kaynak kullanımı, açlık durumu oluşabilir. İsteğin yapılabileceği yolları yasakla

14 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock Önleme (Devam) Bekleme yok –  Eğer kaynakların bazılarını kullanmakta olan bir proses başka kaynak talebinde de bulunursa kaynak tahsisi hemen yapılamaz, bu durumda kullanılmakta olan bütün kaynaklar serbest bırakılır.  Bırakılmış kaynaklar bekleyen proses için kaynak listesine eklenir.  Proses ancak eski kaynakları ile birlikte talep ettiği yeni kaynakları elde ettiğinde yeniden başlatılır. Döngüsel Bekleme – tüm kaynak türlerine bir toplam sıralama uygulamayı ve proseslerin artan numaralandırma sırasıyla kaynak talebinde bulunmalarını gerektirir.

15 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock’tan Kaçınma En basit ve en kullanışlı model, her bir prosesin ihtiyaç duyabileceği her bir kaynak tipi için maksimum kaynak sayısını bildirmesini gerektirir. Deadlock’tan kaçınma algoritması asla döngüsel bekleme olmamasını sağlamak için dinamik olarak kaynak tahsisi durumunu kontrol eder. Kaynak tahsisi durumu kullanılabilir olan ve tahsis edilmiş olan kaynakların numaralarıyla ve proseslerin maksimum kaynak talebiyle tanımlanır. Sistemin bazı ek öncelik bilgilerinin var olması gerektirir.

16 Silberschatz, Galvin and Gagne  Operating System Concepts Güvenli Durum Bir proses kullanılabilir durumda olan bir kaynağı talep ettiğinde sistem direk tahsisin sistemi güvenli olmayan duruma geçirip geçirmediğine karar vermelidir. Eğer bütün proseslerin güvenli bir sırası varsa sistem de güvenli durumdadır. sırası her bir P i için güvenli ise, Pi’in talep ediyor oldukları, kullanılabilir olan uygun kaynaklar ile ya da j

17 Silberschatz, Galvin and Gagne  Operating System Concepts Temel Özellikler Eğer bir sistem güvenli durumdaysa  deadlock yok Eğer bir sistem güveli durumda değilse  deadlock ihtimali Kaçınma  Sistemin asla güvenli olmayan duruma girmeyeceğinden emin olunur.

18 Silberschatz, Galvin and Gagne  Operating System Concepts Güvenli,Güvenli olmayan, Deadlock Durumu

19 Silberschatz, Galvin and Gagne  Operating System Concepts Kaynak Tahsisi Grafiği Algoritması Talep oku P i  R j ; P j ‘ nin R j kaynağını talep edebileceğini gösterir, kesikli çizgi ile temsil edilir. Bir proses bir kaynak isteğinde bulunduğunda talep oku istek okuna dönüşür. Bir kaynak proses tarafından serbest bırakıldığında tayin oku tekrar talep okuna dönüşür. Kaynaklar sistemde bir öncelik iddia etmelidir.

20 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock’tan Kaçınma için Kaynak Tahsisi Grafiği

21 Silberschatz, Galvin and Gagne  Operating System Concepts Kaynak Tahsisi Grafiğinde Güvenli Olmayan Durum

22 Silberschatz, Galvin and Gagne  Operating System Concepts Banker’s Algoritması Çoklu örneklendirme Her proses maksimum kullanım öncelik talebi gerektirir. Bir proses bir kaynak talep ettiğinde beklemek zorunda kalabilir. Bir proses bütün kaynaklarını elde ettiğinde onları belirli bir zaman aralığında iade etmelidir.

23 Silberschatz, Galvin and Gagne  Operating System Concepts Banker’s Algoritması için Veri Yapıları Mevcut: Vektör uzunluğu m. Eğer Available[j] = k, R j kaynak tipinin k tane örneği mevcuttur. Max: n x m matrix. Eğer Max [i,j] = k, ise P i prosesi R j kaynak tipinin en fazla k tane örneğini talep eder. Tahsis etme: n x m matrix. Eğer Allocation [i,j] = k ise P i ‘e R j kaynak tipinin k tane örneği tahsis edilmiş bulunmaktadır. İhtiyaç: n x m matrix. Eğer Need[i,j] = k, ise P i görevini tamamlamak için R j kaynak tipinin k tane daha örneğine ihtiyaç duyabilir. Need [i,j] = Max[i,j] – Allocation [i,j]. n = proseslerin numarası, ve m = kaynak tiplerinin numarası olsun

24 Silberschatz, Galvin and Gagne  Operating System Concepts Safety Algorithm 1.Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i - 1,3, …, n. 2.Find and i such that both: (a) Finish [i] = false (b) Need i  Work If no such i exists, go to step 4. 3.Work = Work + Allocation i Finish[i] = true go to step 2. 4.If Finish [i] == true for all i, then the system is in a safe state.

25 Silberschatz, Galvin and Gagne  Operating System Concepts Resource-Request Algorithm for Process P i Request = request vector for process P i. If Request i [j] = k then process P i wants k instances of resource type R j. 1.If Request i  Need i go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim. 2.If Request i  Available, go to step 3. Otherwise P i must wait, since resources are not available. 3.Pretend to allocate requested resources to P i by modifying the state as follows: Available = Available = Request i ; Allocation i = Allocation i + Request i ; Need i = Need i – Request i;; If safe  the resources are allocated to P i. If unsafe  P i must wait, and the old resource-allocation state is restored

26 Silberschatz, Galvin and Gagne  Operating System Concepts Example of Banker’s Algorithm 5 processes P 0 through P 4 ; 3 resource types A (10 instances), B (5instances, and C (7 instances). Snapshot at time T 0 : AllocationMaxAvailable A B CA B C A B C P P P P P

27 Silberschatz, Galvin and Gagne  Operating System Concepts Example (Cont.) The content of the matrix. Need is defined to be Max – Allocation. Need A B C P P P P P The system is in a safe state since the sequence satisfies safety criteria.

28 Silberschatz, Galvin and Gagne  Operating System Concepts Example P 1 Request (1,0,2) (Cont.) Check that Request  Available (that is, (1,0,2)  (3,3,2)  true. AllocationNeedAvailable A B CA B CA B C P P P P P Executing safety algorithm shows that sequence satisfies safety requirement. Can request for (3,3,0) by P 4 be granted? Can request for (0,2,0) by P 0 be granted?

29 Silberschatz, Galvin and Gagne  Operating System Concepts Deadlock Detection Allow system to enter deadlock state Detection algorithm Recovery scheme

30 Silberschatz, Galvin and Gagne  Operating System Concepts Single Instance of Each Resource Type Maintain wait-for graph  Nodes are processes.  P i  P j if P i is waiting for P j. Periodically invoke an algorithm that searches for a cycle in the graph. An algorithm to detect a cycle in a graph requires an order of n 2 operations, where n is the number of vertices in the graph.

31 Silberschatz, Galvin and Gagne  Operating System Concepts Resource-Allocation Graph and Wait-for Graph Resource-Allocation GraphCorresponding wait-for graph

32 Silberschatz, Galvin and Gagne  Operating System Concepts Several Instances of a Resource Type Available: A vector of length m indicates the number of available resources of each type. Allocation: An n x m matrix defines the number of resources of each type currently allocated to each process. Request: An n x m matrix indicates the current request of each process. If Request [i j ] = k, then process P i is requesting k more instances of resource type. R j.

33 Silberschatz, Galvin and Gagne  Operating System Concepts Detection Algorithm 1.Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b)For i = 1,2, …, n, if Allocation i  0, then Finish[i] = false;otherwise, Finish[i] = true. 2.Find an index i such that both: (a)Finish[i] == false (b)Request i  Work If no such i exists, go to step 4.

34 Silberschatz, Galvin and Gagne  Operating System Concepts Detection Algorithm (Cont.) 3.Work = Work + Allocation i Finish[i] = true go to step 2. 4.If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock state. Moreover, if Finish[i] == false, then P i is deadlocked. Algorithm requires an order of O(m x n 2) operations to detect whether the system is in deadlocked state.

35 Silberschatz, Galvin and Gagne  Operating System Concepts Example of Detection Algorithm Five processes P 0 through P 4 ; three resource types A (7 instances), B (2 instances), and C (6 instances). Snapshot at time T 0 : AllocationRequestAvailable A B C A B C A B C P P P P P Sequence will result in Finish[i] = true for all i.

36 Silberschatz, Galvin and Gagne  Operating System Concepts Example (Cont.) P 2 requests an additional instance of type C. Request A B C P P P P P State of system?  Can reclaim resources held by process P 0, but insufficient resources to fulfill other processes; requests.  Deadlock exists, consisting of processes P 1, P 2, P 3, and P 4.

37 Silberschatz, Galvin and Gagne  Operating System Concepts Detection-Algorithm Usage When, and how often, to invoke depends on:  How often a deadlock is likely to occur?  How many processes will need to be rolled back?  one for each disjoint cycle If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes “caused” the deadlock.

38 Silberschatz, Galvin and Gagne  Operating System Concepts Recovery from Deadlock: Process Termination Abort all deadlocked processes. Abort one process at a time until the deadlock cycle is eliminated. In which order should we choose to abort?  Priority of the process.  How long process has computed, and how much longer to completion.  Resources the process has used.  Resources process needs to complete.  How many processes will need to be terminated.  Is process interactive or batch?

39 Silberschatz, Galvin and Gagne  Operating System Concepts Recovery from Deadlock: Resource Preemption Selecting a victim – minimize cost. Rollback – return to some safe state, restart process for that state. Starvation – same process may always be picked as victim, include number of rollback in cost factor.

40 Silberschatz, Galvin and Gagne  Operating System Concepts Combined Approach to Deadlock Handling Combine the three basic approaches  prevention  avoidance  detection allowing the use of the optimal approach for each of resources in the system. Partition resources into hierarchically ordered classes. Use most appropriate technique for handling deadlocks within each class.

41 Silberschatz, Galvin and Gagne  Operating System Concepts Traffic Deadlock for Exercise 8.4


"Silberschatz, Galvin and Gagne  2002 8.1 Operating System Concepts Chapter 8: Deadlocks (ölümcül kilitlenmeler) Sistem Modeli Deadlock Tanımlama Deadlock." indir ppt

Benzer bir sunumlar


Google Reklamları