İŞLETİM SİSTEMLERİ DERS 8 (ÖLÜMCÜL KİTLENMELER)

Benzer belgeler
İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar.

Bölüm 7: Kilitlenme (Deadlocks)

Ölümcül Kilitlenme. Ölümcül Kilitlenme 5. İşletim Sistemleri

Ölümcül Kilitlenme. Ölümcül Kilitlenme Örneği - 1

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemleri (Operating Systems)

Bölüm 7: Kilitlenmeler. Operating System Concepts with Java 8 th Edition

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

İşlem Yönetimi (Process Management)

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

İşletim Sistemlerine Giriş

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

Bilgisayar İşletim Sistemleri BLG 312

İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI

İŞLETİM SİSTEMLERİ. (Operating Systems)

İşletim Sistemlerine Giriş

EKLER EK 12UY0106-5/A4-1:

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

İşletim Sistemi. BTEP205 - İşletim Sistemleri

C) 19 inçlik CRT ile LCD monitörün görünebilir alanı farklıdır. D) Dijital sinyali, analog sinyale çevirmek için DAC kullanılır.

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

DİSK DEPOLAMA ALANLARI

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

İşletim Sistemleri (Operating Systems)

Çekirdek Nedir? Ne yapar?

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

HIZLI BAşVURU KILAVUZU

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

Laboratuvar Çalışması Veri Depolama Kapasitesini Belirleme

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

Dersin Adı Alan Meslek/Dal Dersin Okutulacağı Dönem / Sınıf Süre Dersin Amacı Dersin Tanımı Dersin Ön Koşulları

İstemci Yönetimi ve Genel Yazdırma Çözümleri

Ölümcül Kilitlenme- Deadlock

Yazılım Güncelleştirmeleri

İşletim Sistemlerinde Çok Prosesli Çalışma

Akış Kontrol Mekanizmaları

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

DONANIM VE YAZILIM. Ahmet SOYARSLAN biltek.info

1. Daha önce bilgisayarınıza USB bağlantı noktasından hiç kurup kullanmadığınız bir USB yazıcı paylaşacaksanız, lütfen tıklayınız.

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

İş Parçacıkları (Threads)

AirPrint Kılavuzu. Bu Kullanıcı Kılavuzu şu modeller içindir:

İşletim Sistemlerine Giriş

Çözüm Bilgisayar. Çözüm SIRAMATİK

Algoritmalar ve Programlama. Algoritma

MEHMET ÇEKİÇ ORTAOKULU

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Seçenekler Menüsünde Yazdır, Kaydet, Kullanıcı Bilgisi Ve Uyumluluk Sekmelerinin Anlatımı

Giriş Çıkış Birimleri:

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Bilgisayar Kurulum Kullanıcı Kılavuzu

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

Aktivite 8. Saati Yen Sıralama ağları

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

AirPrint Kılavuzu. Sürüm 0 TUR

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

Donanım ve Yazılım Altyapısı Bileşeni

Touchstone Kisisel-Egitim Sürümü Level 2 DVD-ROM ve Video DVD talimatlari ve bilinen teknik konulari

AirPrint Kılavuzu. Bu Kullanıcı Kılavuzu aşağıdaki modeller için geçerlidir: MFC-J3520/J3720. Sürüm 0 TUR

VERİ YAPILARI VE PROGRAMLAMA

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

Yazılım Güncelleştirmeleri Kullanıcı Kılavuzu

İÇİNDEKİLER. Elektronik İmza... 3 Tanım... 3 Mevzuat... 3 Giriş... 3 Akıllı Akis Kart Alındıktan Sonra İzlenecek Adımlar Adım:...

Internet Programming II

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

TL-WPS510U PRINT SERVER KURULUM DÖKÜMANI

AirPrint Kılavuzu. Bu Kullanıcı Kılavuzu şu modeller içindir:

Genel Graf Üzerinde Mutlak 1-merkez

İşletim Sistemlerine Giriş

AirPrint Kılavuzu. Bu Kullanım Kılavuzu aşağıdaki modeller için geçerlidir: DCP-J105, MFC-J200. Sürüm 0 TUR

köşe (vertex) kenar (edg d e)

Sanal Bellek (Virtual Memory)

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Gidilen sayfadan bir önceki sayfaya geçilir. Şekil Git İşlemi diyalog kutusu

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

SIMAN KULLANIM KILAVUZU

Hızlı Kurulum ve Yapılandırma Kılavuzu

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM

ALGORİTMA VE PROGRAMLAMA I

Dokunmatik Yüzey ve Klavye

Kuruluma başlamadan önce gerekli tüm bileşenlerin mevcut olup olmadığını kontrol edin. Kutuda şunlar bulunmalıdır:

HARMONİK DENKLEM. Burada göz önüne alınacak problem Dirichlet problemidir; yani fonksiyonun sınırda kendisinin verilmesi halidir. 2 2 (15.

23. Sistem denge denklemlerinin direkt kurulması

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Lineer Denklem Sistemleri

Setup Yardımcı Programı

Bu ürün WinXP, 2000, ME, Win98 de çalıştırılmak için tasarlanmıştır. Her işletim sistemi için yükleme yordamı yaklaşık olarak aynıdır.

Transkript:

İŞLETİM SİSTEMLERİ 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ı, 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. 2

Ö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 prosesi de tarayıcıya erişmeye çalıştığında, tarayıcıyı A prosesi 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. 3

YARIDA KESİLEBİLİR VE YARIDA KESİLEMEZ KAYNAKLAR Bilgisayarda bulunan kaynaklar aşağıdaki şekilde kategorileştirilebilir: Yarıda kesilebilir(preemptable) kaynaklar Yarı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. 4

İş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. 5

Bir kaynağı kullanmak için aşağıdaki adımlar izlenir: 1. Kaynağı iste 2. Kaynağı kullan 3. Kaynağı serbest bırak Bir 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. 6

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. 7

Sadece tek bir proses çalışıyorsa, deadlock oluşma ihtimali yoktur.çünkü kaynak kullanımı konusunda bir yarış durumu yoktur. 8

Şimdi ise A ve B gibi iki prosesin beraber çalıştıdığı durumu inceleyelim. (Deadlock oluşmaz) (DeadLock Oluşabilir) 9

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. 10

DEADLOCK A NEDEN OLAN DURUMLAR 1. Karşılıklı Dışlama(Mutual Exclusion) : Herhangi bir kaynağı anlık olarak sadece bir proses ya kullanabilir. 2. Sahiplenme ve Bekleme Koşulu: Elindeki kaynağı bırakmadan başka kaynak ister ve bu kaynağı elde edemediğinde beklemeye geçenler. 3. Yarıda Kesilemez Koşulu: Bir prosese daha önceden verilen kaynaklar zorla elinden alınamaz. 4. Ç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. 11

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) 12

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. 13

Kaynak kullanım Şekil d deki gibi olursa; 14

Eğer işletim sistemi deadlock durumunu sezebilen bir işletim sistemi ise, B prosesini bekleterek, deadlock oluşumunu engellemiş olur. 15

Genel olarak deadlock durumları ile başa çıkmak için 3 farklı yaklaşım vardır: 1. Deadlock durumlarını ihmal etme. 2. Deadlock oluşumu durumunda tespit etme ve geri yükleme 3. Dikkatli kaynak dağıtımı ile deadlock durumlarından kaçınma 16

1.DEVEKUŞU ALGORİTMASİ (OSTRİCH ALGORİTHM ) 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. 17

2.DEADLOCK TESPİTİ VE GERİ 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. 18

1. HER KAYNAK TİPİNDEN SİSTEMDE BİR ADET OLDUĞU DURUMDA DEADLOCK TESPİTİ 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. 19

Ö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. 20

1. Çizgedeki her N düğümü için, N'i başlangıç düğümü alarak 2-6 adımlarını yap. 2. L yi boş liste olarak başlat. Tüm kenarları işaretlenmemiş yap. 3. Ş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. 4. Verilen düğümden başka düğümlere işaretlenmemiş giden kenar var mı? Varsa 5. adıma yoksa 6. adıma git. 5. İşaretli olmayan bir kenar seç ve işaretle. Bu kenarı izleyerek yeni düğüme git. Adım 3 e git. 6. 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. 21

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. 22

2. HER KAYNAK TİPTEN BİRDEN FAZLA KAYNAK OLDUĞUNDA ÖLÜMCÜL KİLİTLENME TESPİTİ Bu tip durumlar için matris temelli bir çözüm geliştirilmiştir. Sistemde çalışan n tane proses (P 1,, P n ), 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. 23

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. C ij = j kaynağından i. prosesin kaç tane j kaynağından kullandığını gösterir. R ij = i prosesinin j kaynağından kaç adet istediğini gösterir. 24

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. 25

Ö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. 26

Deadlock tespiti için aşağıdaki algoritma kullanılır: 1. 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. 2. i. proses işaretlenir ve C matrisinin i. satırındaki değerleri A vektörüne eklenir. 1. adıma geri dön. 3. Eğer işaretlenmemiş proses kalmış ise deadlock vardır. 27

DEADLOCK DURUMUNUN ONARİLMASİ Kullanılan algoritmalar deadlock durumu tespit ettiğinde ne yapılmalıdır? 1. KESEREK ONARMA 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. 28

2. GERİ YUKLEYEREK ONARMA Sistemde ö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. 29

3. SONLANDİRARAK ONARMA Acı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 sonlandırılması uygun bir seçim olacaktır. 30

3.DEADLOCK DURUMUNU ÖNLEME Deadlock 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. 31

GÜVENLİ VE GÜVENSİZ DURUMLARİ Sistemde 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 32

Ş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. 33

Ş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. 34

GÜVENLİ/GÜVENSİZ DURUMLAR 1.TEK TİP KAYNAK İÇİN 2.BİRDEN ÇOK KAYNAK TİPİ İÇİN 35