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

Benzer belgeler
Bölüm 7: Kilitlenme (Deadlocks)

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

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

İşletim Sistemlerine Giriş

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

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

İşletim Sistemleri (Operating Systems)

İşletim Sistemlerine Giriş

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

Ölümcül Kilitlenme- Deadlock

İşletim Sistemlerine Giriş

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

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

Background (Arka Plan)

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

İşletim Sistemleri (Operating Systems)

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

İşletim Sistemlerine Giriş

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

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

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

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

Çekirdek Nedir? Ne yapar?

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

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

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

YZM 3102 İşletim Sistemleri

YZM 2116 Veri Yapıları

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

Bilgisayar İşletim Sistemleri BLG 312

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

Bilgisayar İşletim Sistemleri BLG 312

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

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) =?

İşletim Sistemlerine Genel Bakış

Montoya

Bilgisayar İşletim Sistemleri BLG 312

Chapter 12: Depolama Sistemleri

Multithreading & Asynchronous Programlama

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

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

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

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Genel Graf Üzerinde Mutlak 1-merkez

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

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

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

İş Parçacıkları (Threads)

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Algoritma ve Programlamaya Giriş

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

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

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

MAT223 AYRIK MATEMATİK

HSancak Nesne Tabanlı Programlama I Ders Notları

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

VT Gerçeklenmesi Ders Notları- #3

A GRUBU Noktaları adlandırılmış K 6 tam çizgesinin tam olarak 3 noktalı kaç tane alt çizgesi vardır? A) 9 B) 20 C) 24 D) 60 E) 160

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

PROSESLER. Proses. Proses

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

DİSK DEPOLAMA ALANLARI

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

Algoritmalar. Ders 14 En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması

Algoritma ve Akış Diyagramları

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

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

İşletim Sistemlerine Giriş

Eğitim seti (training set) sınıflandırma modelinin elde edileceği kayıtları içerir

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

MAT223 AYRIK MATEMATİK

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi

MAT223 AYRIK MATEMATİK

İşletim Sistemleri (COMPE 431) Ders Detayları

Proses. Prosesler 2. İşletim Sistemleri

İşletim Sistemlerine Giriş

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

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

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

EM-554 İleri Bilgisayar Programlama Teknikleri Algoritma ve Akış Diyagramları

İşlem Yönetimi (Process Management)

Kuyruk Sistemlerinin Simülasyonu

Adli Analiz İşlemlerine Başlamak

YZM 3102 İşletim Sistemleri

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

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

NÜMER IK ANAL IZ. Nuri ÖZALP FONKS IYONLARA YAKLAŞIM. Bilimsel Hesaplama Matemati¼gi

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

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

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

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

YZM 3102 İşletim Sistemleri

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

Dosya. petrol miktarının mak-simum (Toplam), Samsun-Ceyhan'ın yapılamaması durumunda (Toplam-SC) ve 2,85

Akış Kontrol Mekanizmaları

Sanal Bellek (Virtual Memory)

Transkript:

Bölüm 7: Kilitlenmeler 7.1 Silberschatz, Galvin and Gagne 2009

Bölüm 7: Kilitlenmeler Kilitlenme Problemi Sistem Modeli Kilitlenme Tarifi Kilitlenmeler için Çözüm Yöntemleri Kilitlenme Önleme Kilitlenmeden Kaçınma Kilitlenme Tespiti Kilitlenmeden Kurtulma 7.2 Silberschatz, Galvin and Gagne 2009

Hedefler Aynı anda çalışan işlemlerin görevlerini tamamlamasına engel olan kilitlenmelerin açıklanması Bir bilgisayar sistemindeki kilitlenmelerin oluşmasını engelleyen veya bu kilitlenmelerden kurtulmayı sağlayan yöntemlerin açıklanması 7.3 Silberschatz, Galvin and Gagne 2009

Kilitlenme Problemi Her biri bir kaynağı tutan işlemlerden oluşan bir kümede, aynı işlemlerin bu kümedeki bir başka işleme ait kaynağı elde etmek için beklemesi sonucu bloklanmaları Örnek Sistem 2 disk sürücüsüne sahip P 1 ve P 2 işlemlerinin her biri bir diski kullanıyor ve her biri diğer diske ihtiyaç duyuyor A ve B semaforları (ilk değerleri 1) ile örnek P 0 P 1 wait (A); wait (B); wait (B); wait (A); 7.4 Silberschatz, Galvin and Gagne 2009

Köprüden Karşıya Geçme Örneği Köprü üzerinde trafik tek yöne akabilir Köprü bir kaynak gibi görülebilir Eğer kilitlenme olursa, araçlardan biri geriye giderse sorun çözülebilir Eğer kilitlenme olursa birden fazla aracın geri çekilmesi gerekebilir Açlık (starvation) mümkündür Not: Pek çok işletim sistemleri kilitlenmelere engel olmaz veya kilitlenmeleri tespit edip çözmeye çalışmaz 7.5 Silberschatz, Galvin and Gagne 2009

Sistem Modeli Kaynak tipleri R 1, R 2,..., R m CPU döngüleri (CPU cycles), hafıza alanı, I/O cihazları Her R i kaynak tipi W i örneklerine sahiptir İşlemler bir kaynağı aşağıdaki şekilde kullanırlar: istek (request) kullanım (use) iade etme (release) 7.6 Silberschatz, Galvin and Gagne 2009

Kilitlenme Tarifi Kilitlenme dört şartın aynı anda sağlanması durumunda ortaya çıkar. Birbirini dışlama (mutual exclusion): belli bir anda sadece bir işlem, bir kaynağı kullanmalıdır Tutma ve Bekleme (hold and wait): en az bir kaynağı tutan bir işlem başka işlemler tarafından tutulan ek kaynaklar için beklemelidir Kesinti Yokluğu (no preemption): bir kaynak ancak o kaynağı tutan işlem, kayanğı isteyerek bırakırsa serbest kalmalıdır Dairesel Bekleme (circular wait): öyle bir bekleyen işlem kümesi olmalıdır ki {P 0, P 1,, P n }, P 0, P 1 tarafından tutlan bir kaynağı beklemeli, P 1, P 2 tarafından tutlan bir kaynağı beklemeli,, P n 1, P n tarafından tutlan bir kaynağı beklemeli ve P n, P 0 tarafından tutulan bir kaynağı beklemelidir 7.7 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi (1/2) Resource-Allocation Graph V noktalar kümesi ve E kenarlar kümesi V iki farklı tipe bölünüyor: P = {P 1, P 2,, P n }, sistemdeki tüm işlemlerin kümesi R = {R 1, R 2,, R m }, sistemdeki tüm kaynakların kümesi İstek kenarı (request edge) P i R j yönlü kanar Atama kenarı (assignment edge) R j P i yönlü kenar 7.8 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi (2/2) İşlem 4 örneği olan kaynak tipi P i, R j örneğini istiyor P i R j P i, R j örneğini tutuyor P i R j 7.9 Silberschatz, Galvin and Gagne 2009

Örnek Kaynak-Ayırım Çizgesi 7.10 Silberschatz, Galvin and Gagne 2009

Kilitlenme İçeren Kaynak-Ayırım Çizgesi 7.11 Silberschatz, Galvin and Gagne 2009

Döngü İçeren Fakat Kilitlenme İçermeyen Çizge 7.12 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi Temel Bilgileri Eğer çizge döngü içermiyorsa kilitlenme yok Eğer çizge döngü içeriyorsa Her bir kaynak tipi için bir örnek varsa, kilitlenme var Her bir kaynak için birden fazla örnek varsa, kilitlenme olma olasılığı var 7.13 Silberschatz, Galvin and Gagne 2009

Java Kilitlenme Örneği (1/2) Thread A Thread B 7.14 Silberschatz, Galvin and Gagne 2009

Java Kilitlenme Örneği (2/2) Eğer aşağıdaki senaryo gerçekleşirse kilitlenme mümkün: threada -> locky -> threadb -> lockx -> threada 7.15 Silberschatz, Galvin and Gagne 2009

Kilitlenmeler İçin Çözüm Yöntemleri 1. Problemi yok say: Sistemde kilitlenmelerin hiç bir zaman oluşmayacağını varsay. Pek çok işletim sistemi bu yöntemi kullanır: UNIX ve Java gibi 2. Kilitlenmeyi Önleme: Sistemin asla kilitilenme durumuna geçmesine izin verme. 3. Kilitlenmeyi Çözme: Sistemin kilitlenmesine izin ver. Ardından kilitlenme durumunu algılayıp kilitlenmeyi çöz. 7.16 Silberschatz, Galvin and Gagne 2009

Deadlock Prevention Kilitlenmeyi Önleme (1/3) Daha önce belirtildiği gibi, kilitlenme olması için dört gerekli şart sağlanmalıdır. Bu şartlardan en az birinin sağlanmazsa, kilitlenmenin önüne geçilir. Birbirini dışlama (mutual exclusion) paylaşılamaz kaynaklar için şart (örn: yazıcı), paylaşılabilir kaynaklar için gerekli değil (örn: sadece okunabilir dosyalar) Tutma ve Bekleme (hold and wait) bir işlem, bir kaynak için istekte bulunduğunda, başka bir kaynağı tutmadığının garantilenmesi gerekir. Örnek bir protokol: İşlemin, ancak sahip olduğu kaynağı iade ettikten sonra yeni kaynak istemesine izin verilebilir Problemler Düşük performanslı kaynak kullanımı Açlığın (starvation) mümkün olması 7.17 Silberschatz, Galvin and Gagne 2009

Kilitlenmeyi Önleme (2/3) Kesinti Yokluğu (no preemption) Eğer bazı kaynaklara sahip bir işlem, direk elde edemeyeceği bir kaynağı isterse, tüm sahip olduğu kaynakları elinden alınır ve bekleme moduna alınır Geri alınan kaynaklar, bu kaynakları bekleyen işleme verilir Kaynakları alınan işlem, ancak eski kaynaklarını ve yeni istediği kaynakları alabileceği zaman yeniden başlatılır Bu protokol, genellikle, durumu kolayca kaydedilip eski haline gelebilecek kaynaklar için kullanılır (yazmaçlar ve hafıza alanı gibi) Dairesel Bekleme (circular wait) kaynaklara erişimi impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration 7.18 Silberschatz, Galvin and Gagne 2009

Kilitlenmeyi Önleme (3/3) Dairesel Bekleme (circular wait) kaynaklara erişimi tam anlamıyla sıraya koyarak ve işlemlerin kaynakları bu sıraya uygun şekilde elde etmesini sağlayarak engellenebilir F(teyp sürücüsü) = 1 F(disk sürücüsü) = 5 F(yazıcı) = 12 Hem yazıcıyı hem de teyp sürücüsünü elde etmek isteyen işlemci, önce teyp sürücüsünü, ardından yazıcıyı istemelidir 7.19 Silberschatz, Galvin and Gagne 2009

Kilitlenmeden Kaçınma (1/2) Deadlock Avoidance Önceki slaytlarda anlatılan kilitlenme önleme algoritmaları, kilitlenmenin dört ön şartından en az birinin oluşmasını engelleyerek çalışıyordu Bu ise sistemin ve cihazın kullanım performasının düşmesine neden olmaktaydı Kilitlenme önlemede alternatif bir yöntem, kaynakların nasıl isteneceğine dai ek önbilgi gerektirir İhtiyaç duyulan önbilginin miktarına ve tipine göre farklı algoritmalar bulunmaktadır 7.20 Silberschatz, Galvin and Gagne 2009

Kilitlenmeden Kaçınma (2/2) En basit ve en kullanışlı model, işlemlerin her bir tip kaynaktan en fazla kaç tane ihtiyaç duyabileceğini belirtmesini gerektirir Bu bilgileri elde eden kilitlenme kaçınma algoritması dinamik olarak kaynak atama durumunu inceler ve dairesel-bekleme (circularwait) durumunun oluşmasına izin vermez Kaynak atama durumu, kullanılabilir ve boştaki kaynak sayısı ile işlemlerin maksimum istekleri ile belirlenir 7.21 Silberschatz, Galvin and Gagne 2009

Güvenli Durum (Safe State) Bir işlem boştaki bir kaynağı istediğinde, sistem kaynağın bu işleme verilmesi durumunun sistemi kilitlenmeye neden olmayacak güvenli durumda bırakıp bırakmayacağına karar vermelidir Eğer sistem kaynakları tüm işlemlere kilitlenme olmaksızın belirli bir işlem sırasında sağlayabiliyorsa, sistem güvenli durumdadır Sistemdeki <P 1, P 2,, P n > işlem sırasını ele alalım j < i iken, P i nin istediği tüm kaynaklar, boştaki kaynaklar ve tüm P j işlemlerinin tuttuğu kaynaklar tarafından sağlanıyorsa sistem güvenli durumdadır Bu şart sağlanmazsa sistem güvenilmez (unsafe) durumdadır Her güvenilmez durum kilitlenmeye neden olmak zorunda değildir, ancak kilitlenmeye neden olabilir 7.22 Silberschatz, Galvin and Gagne 2009

Güvenli Durum (Safe State) Genel mantık: Eğer P i kaynak istekleri o an için karşılanamıyorsa, P i, P j işlemlerinin tümünün sonlanmasını bekleyebilir P j sonlandığında, P i ihtiyaç duyduğu kaynakları elde edebilir, çalışır ve normal şekilde sonlanır P i sonlandığında, P i +1 ihtiyaç duyduğu kaynakları elde edip çalışmaya devam eder... 7.23 Silberschatz, Galvin and Gagne 2009

Güvenli Durum Temel Bilgiler Eğer sistem güvenli durumdaysa kilitlenme olmaz Eğer sistem güvenilmez durumdaysa kilitlenme ihtimali vardır Kilitlenmeden kaçınma sistemin hiç bir zaman güvenilmez duruma geçmemesi sağlanarak gerçekleştirilebilir 7.24 Silberschatz, Galvin and Gagne 2009

Güvenilir, Güvenilmez ve Kilitlenme Durumları 7.25 Silberschatz, Galvin and Gagne 2009

Kilitlenmeden Kaçınma Algoritmaları Belirli bir kaynak tipinden bir tane örnek bulunması Kaynak-Ayırım Çizgesi kullanımı Belirli bir kaynak tipinden birden fazla örnek bulunması Banker algoritması kullanımı 7.26 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi Yaklaşımı Niyet kenarı (claim edge) P i R j, P i işleminin ileride bir zamanda R j kaynağını isteyebileceğini gösteriyor ve çizge üzerinde nokta nokta çizgi (dashed line) şeklinde gösteriliyor Niyet kenarı, işlem, kaynağı istediğinde istek kenarına (request edge) dönüştürülüyor İstek kenarı, kaynak işleme atandığında atanma kenarına (assignment edge) dönüştürülüyor Bir kaynak işlem tarafından iade edildiğinde, atanma kenarı iddia kenarına döüştürülüyor İşlemler, sistemdeki kaynaklar için önceden niyetlerini bildirmelidir 7.27 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi 7.28 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi Güvenilmez Durum 7.29 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi Algoritması P i işleminin R j kaynağını istediğini varsayalım: istek kenarı Eğer istek kenarının atanma kenarına dönüşümü, kaynak-ayırım çizgesinde bir döngünün oluşmasına neden olmuyorsa istek karşılanır Aksi halde istek karşılanmaz 7.30 Silberschatz, Galvin and Gagne 2009

Banker Algoritması Belirli bir kaynak tipinden birden fazla örnek bulunması Her bir işlem maksimum kullanım tahminini, kullanım niyeti olarak bildiriyor Bir işlem kaynak talebinde bulunduğunda beklemek zorunda kalabilir Bir işlem istediği tüm kaynaklara sahip olduğunda, bu kaynakları sınırlı bir zaman içinde iade etmelidir 7.31 Silberschatz, Galvin and Gagne 2009

Banker Algoritması için Veri Yapıları n = işlem sayısı m = kaynak tipi sayısı Available (uygun): m boyutunda vektör. Eğer Available [j] = k ise, R j tipinde k örnek kullanıma uygun durumda Max (maksimum): n x m matrisi. Eğer Max [i,j] = k ise, P i işlemi R j tipinde kaynaklardan en fazla k tanesini isteyebilir Allocation (ayırım): n x m matrisi. Eğer Allocation[i,j] = k ise, P i işlemi şu anda R j tipindeki kaynaklardan k tanesine sahiptir Need (ihtiyaç): n x m matrisi. Eğer Need[i,j] = k ise, P i işleminin son bulması için R j kaynak tipinden k tanesine daha ihtiyaç duyabilir Need [i,j] = Max[i,j] Allocation [i,j] 7.32 Silberschatz, Galvin and Gagne 2009

Güvenlik Algoritması 1. Work ve Finish vektörleri sırasıyla m ve n uzunlukta olsun. İlk değer ataması: Work = Available Finish [i] = false, i = 0, 1,, n- 1 2. Aşağıdaki şartları sağlayan i değerini bul: (a) Finish [i] = false (b) Need i Work Böyle bir i bulunmazsa, 4. adıma git 3. Work = Work + Allocation i Finish[i] = true 2. Adıma git 4. Tüm i değerleri için Finish [i] == true ise sistem güvenli durumdadır 7.33 Silberschatz, Galvin and Gagne 2009

P i İşlemi için Kaynak-İstek Algoritması Request = P i işleminin istek vektörü. Eğer Request i [j] = k ise P i işlemi R j kaynak tipinden k tane istiyor 1. Eğer Request i Need i ise 2. adıma git. Değilse hata ver çünkü işlem belirlemiş olduğu maksimum istek sayısını aştı 2. Eğer Request i Available ise, 3. adıma git. Değilse, P i beklemeli, çünkü yeterli kaynak yok 3. Kaynak-atama durumunu aşağıdaki gibi değiştirerek P i nin istediği kaynakları P i ye verir gibi yap: Available = Available Request; Allocation i = Allocation i + Request i ; Need i = Need i Request i ; Eğer güvenli ise kaynaklar P i ye verilir Güvenli değilse P i beklemelidir ve kaynak-atama durumu eski haline getirilmelidir 7.34 Silberschatz, Galvin and Gagne 2009

Banker Algoritması Örneği P 0... P 4 ; 5 işlem 3 kaynak tipi: A (10 örnek), B (5 örnek), and C (7 örnek) T 0 anındaki sistem durumu: Allocation Max Available 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.35 Silberschatz, Galvin and Gagne 2009

Örnek (devamı) Need matrisinin içeriği (Max Allocation) olarak tanımlanmıştır: Need 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 durumdadır çünkü < P 1, P 3, P 4, P 2, P 0 > sırası güvenlilik kriterini sağlamaktadır 7.36 Silberschatz, Galvin and Gagne 2009

Örnek: P 1 İsteği (1,0,2) P 1, (1,0,2) isteğinde bulunmuş olsun Request Available şartının kontrolü: (1,0,2) (3,3,2) true İstek karşılandıktan sonra, kaynak-atama durumunun güncel hali: Allocation Need Available 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 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 Güvenlik çalıştırıldığında < P 1, P 3, P 4, P 0, P 2 > sırasının güvenlik şartını sağladığı görülür 7.37 Silberschatz, Galvin and Gagne 2009

Örnek: Diğer İstekler Allocation Need Available 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 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 P 4 ün (3,3,0) isteği karşılanabilir mi? Yeterli kaynak yok P 0 ın (0,2,0) isteği karşılanabilir mi? Kaynaklar yeterli fakat yeni sistem durumu güvenli değil 7.38 Silberschatz, Galvin and Gagne 2009

Kilitlenme Tespiti ve Kurtarma Kitilenmeyi önleme ve kilitlenmeden kaçınma çözümlerini kullanmayan sistemlerde: Sistemin kilitlenme durumuna girmesine izin verilir Kilitlenme tespit algoritması Kilitlenmeden kurtarma mekanizması 7.39 Silberschatz, Galvin and Gagne 2009

Tüm Kaynak Tipleri için Birer Örnek Bekleme çizgesini (wait-for graph) düzenli olarak göncelle Çizge nodları işlemlerdir Eğer P i, P j yi bekliyorsa P i P j Belirli zaman aralıklarında, bekleme çizgesinde döngü arayan algoritmayı çalıştır. Eğer döngü varsa, kilitlenme vardır Bir çizgede döngü tespit eden algoritma n 2 işlem gerektirir Burada n, çizgedeki nodların sayısıdır 7.40 Silberschatz, Galvin and Gagne 2009

Kaynak-Ayırım Çizgesi ve Bekleme Çizgesi Kaynak-Ayırım Çizgesi Karşılık gelen Bekleme Çizgesi 7.41 Silberschatz, Galvin and Gagne 2009

Kaynak Tiplerinden Birden Fazla Örnek Bulunması Available (uygun): m uzunluğunda vektör. Her bir tip kaynak için kaynaktan kaç tanesinin boşta ve kullanılabilir olduğunu belirtiyor Allocation (ayırım): n x m boyutlu matris. Her bir tip kaynağın her bir işlem tarafından kadarının kullanıldığını belirtir. Request (istek): n x m boyutlu matris. Her bir işlemin o anki isteklerini gösterir. Eğer Request [i,j] = k ise, P i işlemi R j tipinde kaynaktan k tane daha istiyor demektir 7.42 Silberschatz, Galvin and Gagne 2009

Kilitlenme Tespit Algoritması 1. Work ve Finish vektörleri sırasıyla m ve n uzunluğunda olsun.. İlk değer ataması: (a) Work = Available (b) i = 1,2,, n, eğer Allocation i 0 ise, Finish[i] = false; değilse, Finish[i] = true 2. Aşağıdaki şartları sağlayan i indeksini bul: (a) Finish[i] == false (b) Request i Work Eğer bu şartları sağlayan i değerini bulamazsan, 4. adıma git 7.43 Silberschatz, Galvin and Gagne 2009

Kilitlenme Tespit Algoritması (Devam) 3. Work = Work + Allocation i Finish[i] = true 2. adıma git 4. Eğer herhangi bir i değeri için, 1 i n, Finish[i] == false, şartı sağlanıyorsa sistem kilitlenmiştir. Dahası Finish[i] == false ise, P i işlemi kilitlenmiştir Bu algoritma sistemin kilitlenme durumunda olup olmadığını bulmak için O(m x n 2) işlem gerektirir 7.44 Silberschatz, Galvin and Gagne 2009

Tespit Algoritması Örneği P 0... P 4 ; 5 işlem, Üç kaynak tipi: A (7 örnek), B (2 örnek), ve C (6 örnek) T 0 anına sistem durumu: Allocation Request Available 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ırası ile çalıştırılırlarsa will tüm i değerleri için Finish[i] = true olur 7.45 Silberschatz, Galvin and Gagne 2009

Tespit Algoritması Örneği (Devam) P 2 nin C tipinde ek bir kaynak daha istediğini düşünelim Sistemin durumu? Request A B C P 0 0 0 0 P 1 2 0 1 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 P 0 ın bırakığı kaynaklar geri iade edilir ama diğer işlemlerin isteklerini karşılayacak miktarda kaynak bulunmamaktadır P 1, P 2, P 3, ve P 4 işlemlerinin dahil olduğu bir kilitlenme oluşur 7.46 Silberschatz, Galvin and Gagne 2009

Tespit Algoritması Kullanımı Tespit algoritmasının ne zaman ve hangi sıklıkta çalıştırılacağı aşağıdaki faktörlere bağlıdır: Kilitlenme hangi sıklıkta gerçekleşir? Kaç tane işlemin durumu geriye alınmalıdır? Her bir ayrık döngü (disjoint cycle) için bir tane Eğer tespit algoritması rastgele çağırılırsa, kaynak çizgesinde pek çok döngü bulunur ve kilitlenmiş pek çok işlem arasında hangi işlemlerin kilitlenmeye neden olduğunu tespit edemeyiz 7.47 Silberschatz, Galvin and Gagne 2009

Kilitlenmeden Kurtarma: İşlemin Sonlandırılması Tüm kilitlenen işlemleri sonlandır Kilitlenme döngüsü ortadan kalkana kadar, işlemleri teker teker sonlandır İşlemleri hangi sırada sonlandırmalıyız? İşlemin önceliğine göre İşlem ne kadar süredir çalışıyor ve sonlanması için ne kadar süreye ihtiyacı var? İşlemin kullandığı kaynaklar? İşlemin tamamlanması için ne kadar kaynağa ihtiyacı var? Kaç tane işlemin sonlandırılması gerekiyor? Işlem interktif mi yoksa sıralı (batch) işlem mi? 7.48 Silberschatz, Galvin and Gagne 2009

Kilitlenmeden Kurtarma: Kaynak İadesi Kurban (victim) seçimi hangi işleme ait hangi kaynaklar geri alınmalıdır Geriye sarma (rollback) Bir işlemden bir kaynağı geri aldığımızda ne yapacağız? Açık bir şekilde işlem çalışmaya normal şekilde çalışmaya devam edemez. İşlemi durduruğ yeniden başlatmak Açlık (starvation) bazı işlemler her zaman kurban olarak seçilebilir geriye alınma sayısı seçimin bir parametresi olarak kullanılabilir 7.49 Silberschatz, Galvin and Gagne 2009