Bölüm 7: Kilitlenme (Deadlocks)

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

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

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

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

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

İşletim Sistemleri (Operating Systems)

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Ölümcül Kilitlenme- Deadlock

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

Bilgisayar İşletim Sistemleri BLG 312

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

İşletim Sistemlerine Giriş

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

Background (Arka Plan)

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

İşletim Sistemleri (Operating Systems)

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

Bölüm 6: İşlem Senkronizasyonu (1) Operating System Concepts with Java 8 th Edition

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

YZM 3102 İşletim Sistemleri

Bilgisayar İşletim Sistemleri BLG 312

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

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

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

İşlem Yönetimi (Process Management)

Multithreading & Asynchronous Programlama

İşletim Sistemlerine Giriş

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

YZM 2116 Veri Yapıları

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

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

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

ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR GÜZ

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

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Bölüm 9: Sanal Bellek

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Multicore/Multithread Programlama

Algoritma ve Programlamaya Giriş

SINAV YÖNERGESİ. Numarası : CEVAP. Adı Soyadı : ANAHTARI A) 512 B) 513 C) 256 D) 1024 E) 1025 A) 252 B) 256 C) 3024 D) 126 E) =?

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

3. Herhangi bir G çizgesi için aşağıdaki önermelerden hangi(ler)si her zaman doğrudur?

Chapter 12: Depolama Sistemleri

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

Algoritma ve Akış Şemaları

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

5- AKIŞ DİYAGRAMLARI (FLOW- CHART) M.İLKUÇAR - 1

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

KÜTLE VE AĞIRLIK MERKEZİ

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

Bölüm 5: Süreç Senkronizasyonu

1. LabVIEW ile Programlama

MAT223 AYRIK MATEMATİK

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK

Genel Graf Üzerinde Mutlak 1-merkez

Montoya

İş Parçacıkları (Threads)

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Zeki Optimizasyon Teknikleri

Bilgisayar İşletim Sistemleri BLG 312

MAT223 AYRIK MATEMATİK

Veri Yapıları ve Algoritmalar

İşletim Sistemleri. İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık

ALGORİTMA (ALGORITHM) M.İLKUÇAR -

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

YZM 3102 İşletim Sistemleri

İşletim Sistemlerine Giriş

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

Bölüm 11: Dosya Sistem Gerçekleştirilmesi

ÇARPANLAR VE KATLAR ÖĞRENİYORUM

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BEKLEMELĐ ÇALIŞMA VE ZAMAN SINIRLI ĐŞLER. 1. Genel Tanıtım. 2- WAIT işaretinin üretilmesi

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Kuyruk Sistemlerinin Simülasyonu

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

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

HAFTA 09: CPU Planlama (MİB İş Sıralama-Scheduling)

Bölüm 8: Ana Bellek. Operating System Concepts 9 th Edition. Mehmet Demirci tarafından çevrilmiştir.

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

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

License. Veri Tabanı Sistemleri. Konular. Hareket Özellikleri. Tanım hareket: bir işin mantıksal bir birimi

METASEZGİSEL YÖNTEMLER

OBEB OKEK ÇÖZÜMLÜ SORULAR

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir.

Transkript:

Bölüm 7: Kilitlenme (Deadlocks) Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013

Bölüm 7: Kilitlenme (Deadlocks) Sistem modeli Kilitlenme Belirleme Kilitlenme Yönetim Yöntemleri Kilitlenmeyi Önleme Kilitlenme Tespiti Kilitlenmeden Kurtulma 7.2 Silberschatz, Galvin and Gagne 2013

Bölüm Hedefleri Eşzamanlı çalışan süreçlerin işlerini bitirmesini engelleyen kilitlenme durumunu tanımlamak Kilitlenmeyi önlemek için kullanılan yöntemleri sunmak 7.3 Silberschatz, Galvin and Gagne 2013

Sistem Modeli Sistem kaynaklardan oluşur Kaynak türleri: R 1, R 2,..., R m CPU döngüleri, bellek alanı, I/O cihazları Her kaynak türü R i için W i tane örnek Bir süreç bir kaynağı şöyle kullanır: İste (request) Kullan (use) Bırak (release) 7.4 Silberschatz, Galvin and Gagne 2013

Kilitlenme Neden Oluşur? Kilitlenme (deadlock), aşağıdaki dört şart aynı anda sağlanırsa gerçekleşebilir. Karşılıklı dışlama (Mutual exclusion): herhangi bir zamanda sadece bir süreç kaynağı kullanabiliyor. Tutup bekleme (Hold and wait): en az bir kaynağı tutan bir süreç, başka süreçlerin tuttuğunu kaynakları bekliyor. Preemption yok: kaynak ancak onu tutan süreç tarafından işi bitince gönüllü olarak bırakılabiliyor. Dairesel bekleme (Circular wait): Bekleyen süreçlerden oluşan bir {P 0, P 1,, P n } kümesi vardır ki P 0 P 1 in elindeki bir kaynağı, P 1 P 2 nin elindeki bir kaynağı,, P n 1 P n in elindeki bir kaynağı ve P n de P 0 ın elindeki bir kaynağı bekliyor. 7.5 Silberschatz, Galvin and Gagne 2013

Mutex Kilitleriyle Kilitlenme Kilitlenmeler sistem çağrıları, kilitler vb. nedenlerle oluşabilir. Mutex kilitlenmesi için kitapta Sayfa 318 7.6 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi Köşeler kümesi V ile kenarlar kümesi E. V iki türe ayrılır: P = {P 1, P 2,, P n }, sistemdeki süreçler kümesi R = {R 1, R 2,, R m }, sistemdeki kaynaklar kümesi İstek kenarı yönlü kenar P i R j Atama kenarı yönlü kenar R j P i 7.7 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi Süreç 4 örnekli kaynak türü P i istiyor R j P i P i tutuyor R j R j P i R j 7.8 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi Örneği 7.9 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesinde Kilitlenme 7.10 Silberschatz, Galvin and Gagne 2013

Döngü Var ama Kilitlenme Yok 7.11 Silberschatz, Galvin and Gagne 2013

Temel Gerçekler Çizgede döngü yoksa kilitlenme yok Çizgede döngü varsa Her kaynak türünden bir örnek varsa, kilitlenme var Her kaynak türünden birkaç örnek varsa, kilitlenme olabilir 7.12 Silberschatz, Galvin and Gagne 2013

Kilitlenme Yönetim Yöntemleri Sistemin asla kilitlenme durumuna düşmemesini sağlamak için: Kilitlenmeyi önleme (prevention) Kilitlenmeden sakınma (avoidance) Sistemin kilitlenme durumuna girmesine izin verip sonra kurtarmak Sorunu görmezden gelip sistemde kilitlenme olmayacağını varsaymak; UNIX dahil birçok OS tarafından kullanılır. 7.13 Silberschatz, Galvin and Gagne 2013

Kilitlenme Örneği /* thread one runs in this function */ void *do_work_one(void *param) { } pthread_mutex_lock(&first_mutex); pthread_mutex_lock(&second_mutex); /** * Do some work */ pthread_mutex_unlock(&second_mutex); pthread_mutex_unlock(&first_mutex); pthread_exit(0); /* thread two runs in this function */ void *do_work_two(void *param) { } pthread_mutex_lock(&second_mutex); pthread_mutex_lock(&first_mutex); /** * Do some work */ pthread_mutex_unlock(&first_mutex); pthread_mutex_unlock(&second_mutex); pthread_exit(0); 7.14 Silberschatz, Galvin and Gagne 2013

Kilitlenmeyi Önleme İstek yapma yollarını kısıtlayarak Karşılıklı Dışlama paylaşılabilir kaynaklar için karşılıklı dışlama şartı olmasın (örn., salt okunur dosyalar) Genel çözüm olamaz çünkü bazı kaynakların paylaşılması mümkün değil, karşılıklı dışlama şart Tutup Bekleme süreç kaynak istediğinde başka kaynak tutmadığı garanti edilsin Süreç çalışmaya başlamadan önce bütün kaynaklarını alsın, veya ancak kendinde hiçbir kaynak yoksa isteyebilsin. Sorun: Düşük kaynak kullanımı; açlık mümkün 7.15 Silberschatz, Galvin and Gagne 2013

Kilitlenmeyi Önleme Preemption Yok Bazı kaynakları tutan bir süreç başka kaynak ister ama hemen alamazsa, tuttuğu bütün kaynakları bırakmak zorunda kalsın. Elinden alınan kaynaklar beklediklerinin arasına eklenir. Süreç ancak hepsini (eskileri ve yenileri) alabildiğinde yeniden başlar. Dairesel Bekleme bütün kaynak türlerine bir sıra verilsin, her süreç kaynakları artan sırada istemek zorunda olsun. Süreç önce R i sonra R j istiyorsa, F(R i ) < F(R j ) 7.16 Silberschatz, Galvin and Gagne 2013

Kilitlenmeden Sakınma Sistemin önceden bazı bilgilere sahip olması gerekir. En basit ve kullanışlı modelde her süreç her tür kaynaktan en çok kaç tane isteyebileceğini bildirmek zorundadır. Kilitlenmeden sakınma algoritması kaynak paylaşım durumunu dinamik olarak inceler ve dairesel bekleme olmayacağından emin olur. Kaynak paylaşım durumu: boşta ve verilmiş olan kaynak sayısı, süreçlerin maksimum talepleri 7.18 Silberschatz, Galvin and Gagne 2013

Güvenli Durum Bir süreç boştaki bir kaynağı istediğinde, kaynağın hemen verilmesi halinde güvenli durum korunacak mı diye sistemin bakması gerekir. Sistemin güvenli durumda olması için, bütün süreçlerin en az bir <P 1, P 2,, P n > sıralaması var olmalı ki, her P i için, P i tarafından istenebilecek kaynaklar ya boşta olsun veya j < i şartını sağlayan P j süreçleri tarafından tutuluyor olsun. Bu durumda: P i istediği tüm kaynakları alamıyorsa, j < i şartını sağlayan bütün P j ler bitene kadar bekler. Sonra, P i gerekli kaynakları alır, çalışır, kaynakları geri verir, ve sonlanır. P i sonlanınca, P i +1 istediği kaynakları alabilir, 7.19 Silberschatz, Galvin and Gagne 2013

Temel Gerçekler Sistem güvenli durumdaysa kilitlenme yok Sistem güvensiz durumdaysa kilitlenme olabilir Sakınma Sistemin hiçbir zaman güvensiz duruma girmemesini sağlama 7.20 Silberschatz, Galvin and Gagne 2013

Güvenli, Güvensiz, Kilitlenme Durumları 7.21 Silberschatz, Galvin and Gagne 2013

Sakınma Algoritmaları Kaynak türünden tek örnek Kaynak ayırma çizgesi kullan Kaynak türünden çok örnek Banker algoritmasını kullan 7.22 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizge Şeması Talep kenarı (Claim edge) P i R j gösterir ki P j süreci R j kaynağını ileride isteyebilir (kesikli çizgiyle gösterilir) Talep kenarı, süreç kaynağı isteyince istek kenarına dönüşür. İstek kenarı, sürece kaynak ataması yapılınca atama kenarına dönüşür. Süreç kaynağı bırakınca atama kenarı talep kenarına dönüşür. Kaynak talepleri sistemde önceden yapılır. 7.23 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi 7.24 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesinde Güvensiz Durum 7.25 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi Algoritması P i süreci R j kaynağını istiyor. İstek, ancak istek kenarını atama kenarına dönüştürmek çizgede döngü oluşturmuyorsa karşılanabilir. 7.26 Silberschatz, Galvin and Gagne 2013

Banker s Algorithm Kaynakların birden fazla kopyası var. Her süreç önceden en fazla kullanımını belirleyip kaynak talep etmeli. Süreç kaynak istediğinde beklemek zorunda kalabilir. Süreç istediği bütün kaynakları aldıktan sonra sonlu sürede geri vermeli. 7.27 Silberschatz, Galvin and Gagne 2013

Banker s Algorithm Veri Yapıları n = süreç sayısı, m = kaynak türü sayısı Boşta: m uzunluğunda vektör. Eğer Boşta[j] = k ise, R j kaynak türünden k tane kaynak boştadır. Max: n x m matris. Eğer Max[i,j] = k ise, süreç P i, R j türündeki kaynaktan en fazla k tane isteyebilir. Atama: n x m matris. Eğer Atama[i,j] = k ise, P i şu anda R j türündeki kaynaktan k tanesini almıştır. İhtiyaç: n x m matris. Eğer İhtiyaç[i,j] = k ise, P i ileride R j türündeki kaynaktan k tanesine daha ihtiyaç duyabilir. İhtiyaç[i,j] = Max[i,j] Atama[i,j] 7.28 Silberschatz, Galvin and Gagne 2013

Güvenlik Algoritması 1. İş ve Bitiş vektörleri m ve n uzunluğunda olsun. Başlangıçta: İş = Boşta Bitiş[i] = false for i = 0, 1,, n- 1 2. Şu iki şartı birlikte sağlayan i bul: (a) Bitiş[i] = false (b) İhtiyaç i İş Öyle bir i yoksa, 4. adıma git. 3. İş = İş + Atama i Bitiş[i] = true 2. adıma git 4. Eğer her i için Bitiş[i] == true ise, sistem güvenli durumdadır. 7.29 Silberschatz, Galvin and Gagne 2013

P i Süreci için Kaynak İsteme Algoritması İstek i = P i sürecinin istek vektörü. Eğer İstek i [j] = k ise, P i süreci R j türündeki kaynaktan k tane istiyor. 1. Eğer İstek i İhtiyaç i ise 2. adıma git. Değilse, hata ver, çünkü süreç talep sınırını aştı. 2. Eğer İstek i Boşta ise 3. adıma git. Değilse, P i beklemeli, çünkü boşta yeterli kaynak yok. 3. P i sürecine kaynak atamayı dene yani şunları yap: Boşta = Boşta İstek i ; Atama i = Atama i + İstek i ; İhtiyaç i = İhtiyaç i İstek i ; Eğer güvenliyse kaynakları P i ye ata. Eğer güvensizse P i beklemeli, yukarıdaki değişiklikleri geri al. 7.30 Silberschatz, Galvin and Gagne 2013

Banker s Algorithm Örneği 5 süreç: P 0 P 4 3 kaynak türü: A (10 tane), B (5 tane), ve C (7 tane) T 0 zamanındaki durum: Atama Max Boşta A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 2 4 3 3 7.31 Silberschatz, Galvin and Gagne 2013

Banker s Algorithm Örneği İhtiyaç matrisi tanıma göre Max Atama İhtiyaç A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 Sistem güvenli durumda çünkü < P 1, P 3, P 4, P 2, P 0 > sıralaması güvenlik kriterlerini sağlıyor. 7.32 Silberschatz, Galvin and Gagne 2013

Örnek: P 1 İster (1,0,2) İstek Boşta olduğunu kontrol et (yani, (1,0,2) (3,3,2) true) Atama İhtiyaç Boşta A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 2 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 Güvenlik algoritmasına göre < P 1, P 3, P 4, P 0, P 2 > sıralaması güvenlik şartını sağlıyor. P 4 (3,3,0) isterse verebilir miyiz? P 0 (0,2,0) isterse verebilir miyiz? 7.33 Silberschatz, Galvin and Gagne 2013

Kilitlenme Tespiti Sistemin kilitlenme durumuna girmesine izin ver Tespit algoritması Düzeltme yolu 7.34 Silberschatz, Galvin and Gagne 2013

Her Kaynak Türünden Tek Örnek Bekleme (wait-for) çizgesi Düğümler süreçlerdir. P i P j eğer P i bekliyor P j ise Periyodik olarak çizgede döngü ara. Döngü varsa kilitlenme var demektir. Çizgede döngü bulma algoritması O(n 2 ) işlem gerektirir, n çizgedeki düğüm sayısıdır. 7.35 Silberschatz, Galvin and Gagne 2013

Kaynak Ayırma Çizgesi ve Bekleme Çizgesi Resource-Allocation Graph Corresponding wait-for graph 7.36 Silberschatz, Galvin and Gagne 2013

Her Kaynak Türünden Çok Örnek Boşta: m uzunluğunda vektör, her kaynak türünden kaç tane boşta Atama: n x m matris, her kaynak türünden her sürece kaç tane atanmış İstek: n x m matris, her sürecin isteklerini gösterir. Eğer İstek[i][j] = k ise, P i süreci R j kaynağından k tane daha istiyor. 7.37 Silberschatz, Galvin and Gagne 2013

Tespit Algoritması 1. İş ve Bitiş vektörleri m ve n uzunluğunda olsun. Başlangıçta: (a) İş = Boşta (b) i = 1,2,, n için, eğer Atama i 0 ise Bitiş[i] = false; yoksa, Bitiş[i] = true 2. Aşağıdaki iki şartı sağlayan i bul: (a) Bitiş[i] == false (b) İstek i İş Eğer öyle i yoksa, 4. adıma git. 7.38 Silberschatz, Galvin and Gagne 2013

Tespit Algoritması 3. İş = İş + Atama i Bitiş[i] = true 2. Adıma git 4. Eğer en az bir i, 1 i n, için Bitiş[i] == false ise, o zaman sistem kilitlenme halindedir. Bitiş[i] == false eşitliğini sağlayan P i süreci kilitlenmiştir. Algoritma O(m x n 2 ) işlem gerektirir. 7.39 Silberschatz, Galvin and Gagne 2013

Tespit Algoritması Örneği Beş süreç P 0 P 4 ; üç kaynak türü A (7 tane), B (2 tane), ve C (6 tane) T 0 zamanındaki durum: Atama İstek Boşta A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 <P 0, P 2, P 3, P 1, P 4 > sıralamasında Finish[i] = true for all i 7.40 Silberschatz, Galvin and Gagne 2013

Tespit Algoritması Örneği P 2 C den bir tane daha istiyor. İstek A B C P 0 0 0 0 P 1 2 0 2 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Sistemin durumu? P 0 dan kaynaklar alınabilir ancak diğerlerinin isteklerine yetmez. Kilitlenme var, P 1, P 2, P 3, ve P 4 7.41 Silberschatz, Galvin and Gagne 2013

Tespit Algoritması Kullanımı Ne zaman ve ne sıklıkla kullanacağımızı şunlara göre belirleriz: Kilitlenmenin ne sıklıkla olması muhtemel? Kaç sürecin kaynakları geri alınacak? Bağımsız her döngü için bir tane Hemen karşılanamayan her kaynak isteğinde çağrılabilir. Tespit algoritması rastgele çağrılırsa, kaynak çizgesinde birçok döngü bulunabilir ve kilitlenmiş süreçlerden hangisinin kilitlenmeye yol açtığı bilinemez. 7.42 Silberschatz, Galvin and Gagne 2013

Kilitlenmeyi Düzeltme: Süreç Sonlandırma Kilitlenenlerin hepsini bitir (abort) Kilitlenme döngüsü yok edilene kadar birer birer bitir Hangi sırada bitirmeliyiz? 1. Süreç önceliği 2. Ne zamandır çalışıyor, bitmesine ne kadar var 3. Kullandığı kaynakların miktarları ve türleri 4. İhtiyacı olan kaynaklar 5. Kaç süreç sonlanacak 6. Etkileşimli mi değil mi 7.43 Silberschatz, Galvin and Gagne 2013

Kilitlenmeyi Düzeltme: Kaynakları Geri Alma Kurban seç maliyeti minimize ederek Rollback (geri sar) Güvenli bir duruma dön, o durum için süreci yeniden başlat Açlık hep aynı süreci kurban seçersek gerçekleşir, bunu önlemek için geri sarma sayısını maliyete dahil et 7.44 Silberschatz, Galvin and Gagne 2013

Bölüm 7 Sonu Silberschatz, Galvin and Gagne 2013