Sunuyu indir
1
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 Operating System Concepts
2
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 P1 ve P2 in her biri bir tane tape sürücüsü tutuyor ve her biri diğerine de ihtiyaç duyuyor. A ve B semaforları 1’e eşitlenmiş P0 P1 wait (A); wait(B) wait (B); wait(A) Operating System Concepts
3
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. Operating System Concepts
4
Sistem Modeli Kaynak tipleri R1, R2, . . ., Rm
CPU devirleri, bellek alanı, G/Ç cihazları Her bir Ri kaynak tipi Wi örneklerine sahip Her proses kaynağı şöyle kullanır: istek kullanım serbest bırakma Operating System Concepts
5
Eğer dört durum eş zamanlı olarak gerçekleşirse Deadlock ortaya çıkar.
Deadlock Tanımlama Eğer dört durum eş zamanlı olarak gerçekleşirse Deadlock ortaya çıkar. 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 {P0, P1, …, Pn} var. Şöyle ki P0 , P1 tarafından kullanılan kaynağı bekliyor, P1 ,P2 tarafından kullanılan kaynağı bekliyor, Pn–1 ,Pn tarafından kullanılan kaynağı bekliyor ve Pn ,P0 tarafından kullanılan kaynağı bekliyor. Operating System Concepts
6
Kaynak Tahsisi Grafiği
Noktalardan oluşan V kümesi ve oklardan oluşan bir E kümesi V iki türe bölünlenmiştir: P = {P1, P2, …, Pn}, sistemdeki tüm prosesleri içeren küme R = {R1, R2, …, Rm}, sistemdeki tüm kaynakları içeren küme İstek oku– yönlü ok P1 Rj Tahsis oku – yönlü ok Rj Pi Operating System Concepts
7
Kaynak Tahsisi Grafiği (devam)
Proses 4 Örnekli bir kaynak tipi Pi , Rj kaynağının bir örneğini talep ediyor Pi , Rj kaynağının bir örneğini tutuyor Pi Rj Pi Rj Operating System Concepts
8
Kaynak Tahsisi Grafiği Örneği
Operating System Concepts
9
Deadlock içeren Kaynak Tahsisi Grafiği Örneği
Operating System Concepts
10
Döngü içeren fakat Deadlock içermeyen Kaynak Tahsisi Grafiği
Operating System Concepts
11
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. Operating System Concepts
12
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. Operating System Concepts
13
İsteğin yapılabileceği yolları yasakla
Deadlock Önleme İsteğin yapılabileceği yolları yasakla 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. Operating System Concepts
14
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. Operating System Concepts
15
Deadlock’tan Kaçınma Sistemin bazı ek öncelik bilgilerinin var olması gerektirir. 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. Operating System Concepts
16
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. <P1, P2, …, Pn> sırası her bir Pi için güvenli ise, Pi’in talep ediyor oldukları, kullanılabilir olan uygun kaynaklar ile ya da j<I olmak üzere Pj tarafından tutulan kaynaklar ile karşılanabilir. Eğer Pi ‘nin kaynak ihtiyacı hemen uygun değilse, Pi , Pj tamamlanana kadar bekleyebilir. Pj tamamlandığında, Pi kendisine gereken kaynakları elde eder, çalıştırır, ayrılmış kaynakları iade eder ve sonlanır. Pi sonlandığı zaman, Pi+1 kendisine gereken kaynakları elde eder ve böylece devam eder. Operating System Concepts
17
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. Operating System Concepts
18
Güvenli,Güvenli olmayan, Deadlock Durumu
Operating System Concepts
19
Kaynak Tahsisi Grafiği Algoritması
Talep oku Pi Rj ; Pj ‘ nin Rj 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. Operating System Concepts
20
Deadlock’tan Kaçınma için Kaynak Tahsisi Grafiği
Operating System Concepts
21
Kaynak Tahsisi Grafiğinde Güvenli Olmayan Durum
Operating System Concepts
22
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. Operating System Concepts
23
Banker’s Algoritması için Veri Yapıları
n = proseslerin numarası, ve m = kaynak tiplerinin numarası olsun Mevcut: Vektör uzunluğu m. Eğer Available[j] = k, Rj kaynak tipinin k tane örneği mevcuttur. Max: n x m matrix. Eğer Max [i,j] = k, ise Pi prosesi Rj kaynak tipinin en fazla k tane örneğini talep eder. Tahsis etme: n x m matrix. Eğer Allocation [i,j] = k ise Pi ‘e Rj kaynak tipinin k tane örneği tahsis edilmiş bulunmaktadır. İhtiyaç: n x m matrix. Eğer Need[i,j] = k, ise Pi görevini tamamlamak için Rj kaynak tipinin k tane daha örneğine ihtiyaç duyabilir. Need [i,j] = Max[i,j] – Allocation [i,j]. Operating System Concepts
24
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) Needi Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish[i] = true go to step 2. 4. If Finish [i] == true for all i, then the system is in a safe state. Operating System Concepts
25
Resource-Request Algorithm for Process Pi
Request = request vector for process Pi. If Requesti [j] = k then process Pi wants k instances of resource type Rj. 1. If Requesti Needi go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim. 2. If Requesti Available, go to step 3. Otherwise Pi must wait, since resources are not available. 3. Pretend to allocate requested resources to Pi by modifying the state as follows: Available = Available = Requesti; Allocationi = Allocationi + Requesti; Needi = Needi – Requesti;; If safe the resources are allocated to Pi. If unsafe Pi must wait, and the old resource-allocation state is restored Operating System Concepts
26
Example of Banker’s Algorithm
5 processes P0 through P4; 3 resource types A (10 instances), B (5instances, and C (7 instances). Snapshot at time T0: Allocation Max Available A B C A B C A B C P P P P P Operating System Concepts
27
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 < P1, P3, P4, P2, P0> satisfies safety criteria. Operating System Concepts
28
Example P1 Request (1,0,2) (Cont.)
Check that Request Available (that is, (1,0,2) (3,3,2) true. Allocation Need Available A B C A B C A B C P P P P P Executing safety algorithm shows that sequence <P1, P3, P4, P0, P2> satisfies safety requirement. Can request for (3,3,0) by P4 be granted? Can request for (0,2,0) by P0 be granted? Operating System Concepts
29
Deadlock Detection Allow system to enter deadlock state
Detection algorithm Recovery scheme Operating System Concepts
30
Single Instance of Each Resource Type
Maintain wait-for graph Nodes are processes. Pi Pj if Pi is waiting for Pj. 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 n2 operations, where n is the number of vertices in the graph. Operating System Concepts
31
Resource-Allocation Graph and Wait-for Graph
Corresponding wait-for graph Operating System Concepts
32
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 [ij] = k, then process Pi is requesting k more instances of resource type. Rj. Operating System Concepts
33
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 Allocationi 0, then Finish[i] = false;otherwise, Finish[i] = true. 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti Work If no such i exists, go to step 4. Operating System Concepts
34
Detection Algorithm (Cont.)
3. Work = Work + Allocationi 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 Pi is deadlocked. Algorithm requires an order of O(m x n2) operations to detect whether the system is in deadlocked state. Operating System Concepts
35
Example of Detection Algorithm
Five processes P0 through P4; three resource types A (7 instances), B (2 instances), and C (6 instances). Snapshot at time T0: Allocation Request Available A B C A B C A B C P P P P P Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i. Operating System Concepts
36
Example (Cont.) P2 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 P0, but insufficient resources to fulfill other processes; requests. Deadlock exists, consisting of processes P1, P2, P3, and P4. Operating System Concepts
37
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. Operating System Concepts
38
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? Operating System Concepts
39
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. Operating System Concepts
40
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. Operating System Concepts
41
Traffic Deadlock for Exercise 8.4
Operating System Concepts
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.