DERS 8 ÖLÜMCÜL KİTLENMELER ÖLÜMCÜL KİTLENMELER DEADLOCKS Bilgisayar sistemleri bir anda sadece tek bir proses tarafından kullanılabilecek kaynaklar ile doludur Genel örnekler Yazıcı disket sürücüleri tarayıcı ID: 605265
Download Presentation The PPT/PDF document "İŞLETİM SİSTEMLERİ" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
İŞLETİM SİSTEMLERİ
DERS
8 (
ÖLÜMCÜL KİTLENMELER
)Slide2
ÖLÜMCÜL KİTLENMELER (DEADLOCKS)
Bilgisayar sistemleri, bir anda sadece tek bir proses tarafından kullanılabilecek kaynaklar ile doludur. Genel örnekler; Yazıcı, disket sürücüleri, tarayıcı,
cd
/dvd yazıcısı ve okuyucusu vb. Örneğin iki prosesin yazıcıyı aynı anda kullanması durumunda karma karışık çıktılar elde edilir.Her işletim sistemi, belirli kaynaklara aynı anda sadece tek bir proses erişmesini sağlayan erişim mekanizmalarına sahiptir. Ayrıca bir proses aynı anda birden fazla kaynağa da erişmek isteyebilir.
2Slide3
Örneğin, A ve B prosesleri tarayıcıdan aldıkları veriyi CD’ ye yazdırmak istesinler. Tarayıcının kullanım izni A prosesine, CD yazıcısının kullanım izni ise B prosesine verilmiş olsun. A prosesi CD yazıcısını kullanmak istediğinde,
B'nin
kullanımı nedeniyle A
prosesine yetki verilmez.Aynı şekilde B süreci de tarayıcıya erişmeye çalıştığında, tarayıcıyı A süreci kullandığı için B’ye tarayıcıyı kullanma yetkisi verilmez. Bu durumda iki proses de bloklanır ve sonsuza kadar bloklanmış
olarak kalır. Bu duruma ölümcül
kitlenme (deadlock) denir.
3Slide4
SİSTEM KAYNAKLARI
Kaynak bazen bir donanımsal cihaz (örneğin yazıcı), bazen de yazılımsal bir bilgi (örneğin veritabanındaki bir kayıt) olabilir. Bazı kaynaklardan sistemde bir fazla bulunabilir, örneğin bilgisayarda iki tane
cd
-writer olması gibi. Eğer sistemde aynı tipde kaynaktan birden fazla varsa, bunlardan herhangi biri kullanılabilir. Kısaca, bir kaynak anlık olarak sadece bir proses tarafından kullanılabilen sistem elemanıdır.
4Slide5
YARIDA
KESİLEBİLİR
ve YARIDA KESİLEMEZ KAYNAKLARBilgisayarda bulunan kaynaklar aşağıdaki şekilde kategorileştirilebilir:Yarıda kesilebilir(preemptable) kaynaklarYarıda kesilemez (non-preemptable) kaynaklar
Yarıda kesilebilir kaynak, bir proses tarafından kullanılıyorken, kaynağın bu prosesin elinden alınması ve başka bir prosese tahsis edilmesinde herhangi bir olumsuzluk çıkmayan kaynak tipleridir.
Örneğin bellek bir yarıda kesilebilir bir kaynaktır. Bu durumu bir örnekle açıklayalım. 32 MB bellek kapasitesine sahip bir bilgisayarda 32 MB bellek alanına ihtiyacı olan ve yazıcıdan çıktı almak isteyen 2 proses olsun. Proses 1 yazıcı kullanımı için talepte bulunur ve yazıcı
Prose
1’e tahsis edilir. Proses 1 yazıcıda yazdıracağı bilgileri hazırlarken
quantum
süresi dolar ve işlemci dışına anahtarlanır.
5Slide6
İşlemciye anahtarlanan Proses 2 ise yazıcıyı kullanmak ister fakat buna sistem tarafından izin verilmez. Bu durumda, Proses 1 yazıcı kullanım hakkına sahipken , Proses 2 ise bellek kullanım hakkına sahiptir. İkisi
de işlemlerine devam edemez ve bu durumda potansiyel bir
deadlock durumu söz konusudur. Fakat bellek yarıda kesilebilir bir kaynak olduğundan dolayı 2. proses belleği 1. prosese bırakarak deadlock durumu engellenmiş olur. Buna karşılık yarıda kesilemez kaynaklar, bir prosesin elinden alınıp diğerine verilemez. Örneğin Cd-Writer bir CD’ye yazma işlemi yapıyorken yarıda kesilirse bozuk bir CD elde etmiş olunur. Genel olarak
deadlock
durumları yarıda kesilemez kaynakların kullanımı sırasında olur.
6Slide7
Bir kaynağı kullanmak için aşağıdaki adımlar izlenir:
Kaynağı iste
Kaynağı kullan
Kaynağı serbest bırakBir proses kaynağı talep ettiğinde kaynak musait değil ise bu proses bekletilir. Bu durumda bazı işletim sistemleri talepte bulunan bu proses bloklar ve kaynak müsait olunca tekrar uyandırırken, bazı işletim sistemlerinde ise kaynak müsait değilken hata kodu üretilir ve proses tarafından bir müddet sonra tekrar kaynağın müsaitliği kontrol edilir.
7Slide8
KAYNAKLARIN KULLANIMI
Sistemde kaynakların düzgün bir şekilde kullanımı için her bir kaynağa bir semafor atanır. Proses, kaynağı kullanmadan önce semafora ait olan
down
() metodu çalıştırılarak kaynağı elde eder. Kaynağı kullandıktan sonra sonra ise up() metodu ile kaynağı serbest bırakır.Bazen bir
proses görevi
gereği
iki
ya
da
daha
fazla
kaynağı
kullanmak ister. Bu durumda sırası ile bu kaynakları talep eder ve kullanır.
8Slide9
9
Sadece tek bir proses çalışıyorsa,
deadlock
oluşma ihtimali yoktur.Çünkü kaynak kullanımı konusunda bir yarış durumu yoktur.
Slide10
Şimdi
ise
A ve B gibi iki prosesin beraber çalıştıdığı durumu inceleyelim.
(Deadlock oluşmaz)
(
DeadLock
Oluşabilir
)
10Slide11
Deadlock
olmuş bir proses,
deadlock
olmuş diğer bir prosesin ya da proseslerin elinde tuttuğu kaynakları bekliyordur. Deadlock olmuş proseslerin hiçbiri çalışmasına devam edemez, elindeki kaynakları serbest bırakamaz ve devamlı bloklamış olarak uyku modunda beklerler. Deadlock olmuş proseslerin ve kaynakların sayısının hiç bir önemi yoktur. Bu kaynaklar yazılımsal ve donanımsal kaynaklar olabilir.
11Slide12
Deadlock
’a
Neden Olan Durumlar
Karşılıklı Dışlama(Mutual Exclusion) : Herhangi bir kaynağı
anlık
olarak sadece bir proses ya kullanabilir.
Sahiplenme ve Bekleme Koşulu:
Elindeki kaynağı bırakmadan başka kaynak ister ve bu kaynağı elde edemediğinde beklemeye geçen
ler
.
Yarıda
Kesilemez
Koşulu:
Bir prosese daha önceden verilen kaynaklar zorla elinden alınamaz.
Çevrimsel Bekleme Koşulu:
İki veya daha proses zincir şeklinde bir sonraki sürece ait olan kaynağı bekler.
Deadlock oluşumu için bu dört durumun geçerli olması gerekir. Bu durumlardan birinin yokluğunda deadlock oluşmaz.12Slide13
Deadlock
Modelleme
Graf
yapısı kullanarak deadlocklar modellenebilir. Bu grafta daire şeklindeki düğümler prosesleri, kare şeklindeki düğümler ise kaynakları temsil etmektedir. Kaynaktan prosese doğru gösterilen ok ise, prosesin kaynağa sahip olduğunu gösterir (Şekil a).Yine
bir prosesten kaynağa doğru giden ok, bu prosesin ilgili kaynağı talep ettiği ve
bloklanarak bekletildiğini gösterir (Şekil b)
13Slide14
Aşağıdaki şekilde bir
deadlock
durumu görülmektedir. C prosesi T kaynağını istiyor ve U kaynağını kullanıyor. D prosesi ise T kaynağını kullanıyor ve onu serbest bırakmadan U kaynağını kullanmak istiyor. Bu durumda her iki proses de sonsuza kadar
bloklanmış olarak bekler. Graf yapısında döngü var ise deadlock vardır denir. Aşağıdaki grafta C–T–D–
U
–C deadlock olmuş durumdadır.
14Slide15
Kaynak
kullanım
Şekil d’deki gibi olursa;15Slide16
Eğer işletim sistemi
deadlock
durumunu sezebilen bir işletim sistemi ise, B prosesini bekleterek,
deadlock oluşumunu engellemiş olur. 16Slide17
Genel olarak
deadlock
durumları ile başa çıkmak için 4 farklı yaklaşım vardır:
Deadlock durumlarını ihmal etme. Deadlock oluşumu durumunda tespit etme ve geri yüklemeDikkatli kaynak dağıtımı ile deadlock durumlarından kaçınmaDeadlock
oluşumu için gerekli olan 4 şarttan birini kaldırarak
deadlock oluşumunun önüne geçme
17Slide18
1.
Devekuşu
Algoritmasi (Ostrich Algorithm )
Devekuşu gibi başını kuma gömerek, bir şey yokmuş gibi davranmak.
Matematikçiler tamamen kabul edilmez bulurlar ve deadlock
oluşumu
ne pahasına olursa olsun önlenmesini söylerler.
Mühendisler ise problemin ne kadar sıklıkla olması beklendiğini ve sitemin diğer nedenlerden ne kadar sıklıkla hata verdiğini sorgularlar. Eğer ölümcül kilitlenmeler ortalama beş yılda bir kez oluyorsa fakat sistemdeki donanım bozulmaları, derleyici hataları ve işletim sistemi hataları ile haftada bir kez karşılıyorsa, birçok mühendis ölümcül kilitlenmelerin
çözülmesininin
getireceği performans kaybına ve kullanıcıların kısıtlanmasına,
deadlock
durumu ile karşılaşmayı tercih ederler.
UNIX ve Windows’un da içinde bulunduğu birçok işletim sistemi bu yaklaşımı benimser.
18Slide19
2.
Deadlock
Tespiti ve Geri Yükleme
Bu teknik kullanıldığında, işletim sistemi deadlock oluşumunu engellemez. Bunun yerine deadlock oluşumuna izin verir, oluştuğu zamanda deadlock öncesi duruma geri dönüş için bazı işlemler yapar.
19Slide20
1. Her kaynak Tipinden Sistemde Bir Adet Olduğu Durumda
Deadlock
Tespiti
Sistemde sadece bir tane yazıcı, bir cd yazıcı, bir disket sürücü vb kaynak olsun.Deadlock tespitinde graph yapısı kullanılır. Graf bir veya daha fazla döngü(cycle) içeriyorsa, “
deadlock
vardır” denir.Döngünün parçası olan bütün proses ve kaynaklar deadlock olmuştur.
Eğer çizilen
grafta
döngü yok ise sistemde
deadlock
durumu da yoktur.
20Slide21
Örneğin; 7
proses
ve 6 adet kaynak olsun. A,B,C,D,E,F,G prosesleri; R,S,T,U,V,W ise kaynakları göstersin.1. A prosesi R yi tutar ve S i ister.2. B prosesi T yi ister.
3. C
prosesi S i ister.4. D prosesi
U yu tutar ve S ile T yi ister.
5. E
prosesi
T yi tutar ve V yi ister.
6. F
prosesi W yi tutar ve S i ister.
7. G
prosesi
V yi tutar ve U yu ister.
21Slide22
Çizgedeki her N düğümü için,
N'i
başlangıç düğümü alarak 2-6 adımlarını yap.
L yi boş liste olarak başlat. Tüm kenarları işaretlenmemiş yap.Şu anki düğümü L ye ekle. L de iki kez olup olmadığını kontrol et. İkinci kez bulunursa çizgede döngü vardır ve algoritma sonlanır.Verilen düğümden başka düğümlere işaretlenmemiş giden kenar var mı?
Varsa 5. adıma yoksa 6. adıma git.
İşaretli olmayan bir kenar seç ve işaretle. Bu kenarı izleyerek yeni düğüme git.
Adım 3 e git.
Bir ölü noktaya ulaştık. Bu düğümü çıkar ve bir önceki düğüme git. Önceki
düğümü aktif düğüm yap ve adım 3 e git. Eğer bu düğüm başlangıç düğümü ise
döngü yoktur.
Algoritma bir döngü bulunca çıkar. L düğümlerin listesidir.
22Slide23
L=[ ] → L=[R] → L=[R,A] → L=[R,A,S] → L=[R,A] Burası daha fazla ilerlemez. R için
biter
.
Algoritmayı A için tekrar başlatırız. L=[A,S]→L=[A]Algoritmayı B için başlatırız. B 'den D ye kadar gelince L=[B,T,E,V,G,U,D] olur. Bu noktada eğer S i seçersek ölü nokta olur ve D ye geri geliriz. T yi
seçelim.
L=[B,T,E,V,G,U,D,T] olur. Bu noktada döngü tespit edilir ve algoritma durur.
23Slide24
2.
Her Kaynak Tipten Birden Fazla Kaynak Olduğunda Ölümcül
Kilitlenme TespitiBu tip durumlar için matris temelli bir çözüm geliştirilmiştir. Sistemde çalışan n tane proses (P1, …, Pn), m farklı kaynak tipi vardır. E vektörü sistemde var olan kaynak sayısını tutar. Örneğin E1 disket sınıfı olsun. E
1
= 2 elimizde 2 adet disket sürücüsü olduğunu gösterir. Belirli bir anda bu kaynaklardan bazıları proseslere tahsis edilmiş, bazıları ise boşta bekliyor olabilir. A vektörü kullanılabilir olan kaynakları göstersin.
Ai
i. sınıf kaynaktan kullanılabilir kaç tane örnek olduğunu gösterir. Eğer A1=0 ise, disket sürücüsünden kullanılabilir yok demektir. Tüm disket sürücüleri şu anda kullanılıyordur.
24Slide25
Algoritmada iki adet matris kullanılır.
C = Prosesler tarafından kullanılmakta olan kayakları ve sayılarını gösteren matristir.
R = Proseslerin istedikleri kaynakları ve sayılarını gösteren matristir.
Cij = j kaynağından i. prosesin kaç tane j kaynağından kullandığını gösterir. Rij = i prosesinin j kaynağından kaç adet istediğini gösterir.
25Slide26
Aşağıdaki örnekte 3 proses, 4 kaynağı (
tape
driver, plotter, scanner, CD-Rom driver) kullanmaktadır. 1. proses bir tane scanner; ikinci proses 2 tane tape driver ve 1 CD-Rom; üçüncü proses ise 1
plotter
ve 2 scanner kullanmaktadır. Her bir prosesin hangi kaynaklara ihtiyaç duyduğu ise R matrisinde gösterilmiştir.
26Slide27
Önceki slayttaki örneğe göre,
A = (2 1 0 0)
vektörü ile ilk çalışabilecek olan proses 3
nolu prosestir. 3 nolu proses çalıştıktan sonra yeni A = (2 2 2 0) olur. Daha sonra 2 nolu proses çalışır ve yeni A = (4 2 2 1) olur. Bu durumda son olarak 3 nolu proses de çalışarak tüm prosesler görevlerini
deadlock
oluşmadan tamamlamış olur.Örneğin 2 nolu
proses ihtiyaç duyduğu kaynaklara ilave olarak bir CD-Rom daha talep etmiş olsaydı, bütün sistem
deadlock
olurdu.
27Slide28
Deadlock
tespiti için aşağıdaki algoritma kullanılır:
R matrisindeki proseslerden işaretlenmemiş olanlardan hangisinin A vektörüne eşit ya da küçük olduğuna bakılır. Eğer böyle bir proses bulunur ise (P
i), 2. adıma git; bulunamaz ise 3. adıma git.i. proses işaretlenir ve C matrisinin i. satırındaki değerleri A vektörüne eklenir. 1. adıma geri dön.Eğer işaretlenmemiş proses kalmış ise deadlock vardır.
28Slide29
Deadlock
Durumunun
OnarilmasiKullanılan algoritmalar deadlock durumu tespit ettiğinde ne yapılmalıdır?Bazı durumlarda kaynağı geçici olarak sahibinden alıp başkasına vermek mümkün olabilir.Örneğin; Bir lazer yazıcının kullanımı bir prosesten alınıp başka bir prosese verilebilir. Kullanıcı o ana kadar yazdırılmış olan çıktıları bir deste halinde alır ve proses askıya alınır. Bu andan sonra yazıcı başka bir prosese verilir. İkinci proses yazıcıyı kullandıktan sonra ilk proses kaldığı yerden yazdırma işlemine devam eder. Bunun için kullanıcının deste halinde çıktıları tekrar yazıcıya yerleştirmesi gerekir.Bu şekilde onarım oldukça zordur.
29
1.
Keserek
OnarmaSlide30
2.
Geri
Yukleyerek OnarmaSistemde ölümcül kilitlenmelerin olası olduğunu biliyorsa, prosesler için periyodik olarak kontrol noktaları oluştur. Kontrol noktası prosesin mevcut durumunun bir dosyaya yazılmasıdır. Böylece proses daha sonra bu noktadan çalışmasına devam edebilir. Deadlock durumunda hangi kaynakların deadlocka neden olduğu belirlenir. Bu kaynaklara sahip olan, proses kontrol noktasına geri yüklenerek sahip olduğu kaynaklar elinden alınır ve ihtiyaç duyana verilir. Kaynakları elinden alınan prosesin kontrol
notkasından
o anki durumuna kadar olan bütün işlemler ve veriler kaybolmuş olur. Kaynakların işleri bittiğinde alındıkları proses kontrol noktasından itibaren tekrar çalıştırılmaya başlanır.
30Slide31
3.
Sonlandirarak
OnarmaAcımasızca fakat en kolay yol bir veya birden fazla prosesin sonlandırılmasıdır. Deadlock döngüsündeki proseslerden biri ya da birkaç tanesi sonlandırılarak deadlock durumu çözülebilir. Eğer deadlock olmuş proseslerden birini sonlandırmak deadlock durumunu çözmüyorsa, çözünceye kadar prosesler teker teker sonlandırılır.
Sonlandırılacak prosesleri seçerken tekrar çalıştırılması problem oluşturmayacak olan proseslerin sonla
ndırılması uygun bir seçim olacaktır.
31Slide32
3.Deadlock
Durumunu
ÖnlemeDeadlock tespitinde, prosesin ihtiyaç duyduğu tüm kaynakları peşinen başlangıçta bilindiğini varsaydık (R matirisi). Fakat bir çok sistemde kaynaklar belirli bir çalışma anında teker teker istenirler.Bu yüzden sistem istenilen kaynağın verilmesinin güvenli olup olmadığına kontor edip kaynak tahsisini buna göre yapmalıdır.
32Slide33
G
ü
venli
ve Güvensiz DurumlariSistemde deadlock yoksa ya da sistemdeki tüm prosesler ihtiyaç duydukları kaynakları bir seferde istese bile sıralı bir şekilde çalışıp işlemlerini bitirebiliyorlarsa bu durum gü
venli
durumdur. Tek bir kaynak için durumu inceleyelim. Aşağıdaki şekilde A prosesi 3 kaynağı, B ve C prosesleri ise 2 kaynağı elinde bulunduruyor. Bunun yanı sıra A prosesi işlemi bitirmek için 6 kaynağa, B prosesi 2 kaynağa, C prosesi ise 5 kaynağa daha ihtiyaç duyuyor. Toplamda sistemde 10 kaynak var bu kaynakların 7 tanesi kullanımda…
33Slide34
Şekil a’da sistem güvenlidir. Çünkü çalışabilecek durumda bir proses (B prosesi) vardır. B prosesi çalışırsa ve ihtiyaç duyduğu bütün kaynakları kullanırsa Şekil b’deki durum oluşur. B prosesi işlemi bitirdiğinde Şekil c’deki durum oluşur. Bu durumda C prosesi çalışabilecek durumdadır. C işlemi bitirdiğinde Şekil d oluşur. Bundan sonra A prosesi çalışarak işlemini bitirebilir. Bu şekilde dikkatli bir zamanlama yaparak deadlock durumuna yakalanılmamış olur.
34Slide35
Şimdi de başlangıç durumunun Şekil
a’daki
gibi
olduuğunu düşünelim. A prosesi bir kaynağın birini aldığında Şekil b’deki durum elde edilir. Bu durumda ancak B prosesi bütün kaynaklarını kullanarak işlemini bitirecek durumdadır (Şekil c). B prosesi işlemini bitirdiğinde Şekil d’deki durum elde edilir ve bu durumda hiçbir proses işlemini bitirebilecek durumda değildir.Bu durumda A prosesi kaynaklardan birini serbest bırakıp, deadlock oluşmadan C’nin işleme devam etmesi sağlanabilir. Sonuç olarak güvenli durum bütün proseslerin işlemi bitirmesinin garanti edildiği, güvensiz durum ise böyle bir garantinin verilemediği durumdur.
35Slide36
1.Tek Tip Kaynak İçin Bankaci
(Banker)
Algoritmasi
Bu algoritmada bir bankanın bir grup müşteriye kredi vermesi örneği model alınmıştır. Algoritma, müşteri kredi talebinde bulunduğunda kredinin verilmesinin güvenli olup olmadığını inceler. Eğer güvensiz bir durum varsa müşteriden gelen kredi talebini reddeder. Bu örnekte A, B, C ve D kredi verilen müşterilerdir. Banka müşterilerin ihtiyaç duydukları maksimumum krediyi bir seferde talep etmeyeceklerini bilmektedir. Bu sebeple
reservinde
22 birim kredi değil 10 birim kredi bulundurmaktadır. (Bu örnekte, müşteriler prosesleri, krediler kaynakları, bankacı da işletim sistemi rolünü üstelenmiştir.)
36Slide37
2.Birden Çok Kaynak Tipi İçin
Bankaci
AlgoritmasiR matrisinden ihtiyaç duyulan kaynaklar aranır. Eğer bu satırlarda A vektöründen daha küçük bir satır yoksa sistem ölümcül kilitlidir.Bu sürecin tüm istekleri aynı anda karşılansın. Tüm sahip oldukları A vektörüne
eklenir.
1-2 adımlarını tüm süreçler sonlandı olarak işaretleninceye kadar tekrar edelim.
37Slide38
4.Deadlock
Durumundan
Kaçinma
Karşılıklı Dışlama KoşuluElinde Tut ve Bekle KoşuluYarıda Kesilemez KoşuluZincirsel Bekleme KoşuluEğer yukarda belirtilen bu 4 koşuldan en azından birini ortadan kaldırılırsa deadlock oluşumu engel
l
enmiş olur.
38Slide39
1.
Karşilikli
Dişlamayi Koşulunu Ortadan Kaldirma Eğer bir kaynağı iki proses aynı anda kullanabiliyor olsaydı deadlock oluşumu imkansız hale gelirdi. Yazıcılarda spooling teknolojisi ile birden fazla prosesin yazıcıdan hizmet alması olanaklı hale gelmiştir. Aslında burada yazıcı yine printer deamon
adı verilen tek bir proses tarafından kullanılmaktadır ama
spooler’da birden fazla prosese ait yazdırılacak dosyalar bekletilmektedir.
Malesef
sistemdeki bütün kaynaklar
spooling
teknolojisini uygulamaya uygun değildir (Örneğin proses tablosu).
39Slide40
2. Tut
ve
Bekle Koşulunu Ortadan KaldirmaEğer proseseler kullanacakları kaynakları
başlangıçta toptan elde
edebilseler
deadlock
problemi
ortaya çıkmazdır.
Bunun
için
bir
proses çalışması boyunca ihtiyaç duyacağı bütün kaynakları eğer musaitlerde başlangıçta talep eder ve
kullanım
iznini
alır
.
Böylece
elinde
bir
kaynak
varken
başka
bir
kaynak
için
beklememiş
olur
.
Fakat
bu
modelin
de
olumsuz
yönleri
vardır
.
Örneğin
bir
type’den
yüklü
miktarda
veri
okuyup
onu
analiz
edip
yazıcıdan
çıktılarını
alacak
bir
prosesi
düşünelim
. Bu
işlem
bir
saat
kadar
sürüyorsa
bu
süre
zarfında
hem type hem de
yazıcı
başka
prosesler
tarafından
hiç
bir
şekilde kullanılamayacaktır.
40Slide41
3.
Yarida
Kesilemez Koşulunu Ortadan KaldIrmaBazı kaynakların prosesler
tarafından
kullanımını yarıda
kesip
bir
başka bir
prosese
tahsis
etmek
imkansızdır.41Slide42
4.
Zinci
r
sel Bekleme Koşulunu Ortadan KaldirmakBu model için birkaç çözüm önerisi sunulmuştur.Birincisi bir proses elindeki kaynağı bırakmadan diğer bir kaynağı talep edemez. Bu yaklaşım büyük dosyaların type’den kopyalanması ve yazıcıdan çıktı alınması gibi işlemlerde kullanılmaz.
İkinci yaklaşım ise şekilde görüldüğü gibi kaynakların global bir numaralandırma sistemine sahip olmasıdır. Bir proses kullanacağı kaynakları bu sıraya göre talep ederse
deadlock oluşmaz.
42