/
İŞLETİM SİSTEMLERİ İŞLETİM SİSTEMLERİ

İŞLETİM SİSTEMLERİ - PowerPoint Presentation

liane-varnes
liane-varnes . @liane-varnes
Follow
425 views
Uploaded On 2017-11-13

İŞLETİM SİSTEMLERİ - PPT Presentation

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

deadlock bir kullan

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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

Related Contents


Next Show more