İşletim Sistemleri (Operating Systems)

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

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

Bölüm 7: Kilitlenme (Deadlocks)

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

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

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

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

Ölümcül Kilitlenme- Deadlock

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

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

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

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Çekirdek Nedir? Ne yapar?

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

İşletim Sistemi. BTEP205 - İşletim Sistemleri

YZM 3102 İşletim Sistemleri

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

B-Tree Dosya Sistemi (BTRFS)

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

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

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

İşletim Sistemleri (Operating Systems)

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

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

İşlem Yönetimi (Process Management)

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

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

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR

İş Parçacıkları (Threads)

Yıldız Teknik Üniversitesi Endüstri Mühendisliği Bölümü KARAR TEORİSİ MARKOV SÜREÇLERİ. Markov Analizi

Laboratuvar Çalışması Veri Depolama Kapasitesini Belirleme

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312

Windows 2000 veya XP kurarken dosya sistemini seçmeniz gerekir. Ya FAT32 dosya sistemini kullanırsınız ya da NTFS.

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

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

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I

Linux Dosya ve Dizin Yapısı

Algoritma ve Akış Diyagramları

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA

Genel Graf Üzerinde Mutlak 1-merkez

Bilgisayarların Gelişimi

Multicore/Multithread Programlama

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

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

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

Sanal Bellek (Virtual Memory)

İşletim Sistemlerine Giriş

Bekleme Hattı Teorisi

Uzaktan Algılama Teknolojileri

Bölüm 10. Eşzamanlılık (Concurrency) ISBN

BELLEK YÖNETY. Bellek Yönetimi

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

Montoya

Linux altında komut satırında...

OPC Data Access (DA) Temelleri

Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER

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

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

Veri Yapıları ve Algoritmalar

İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

7/24 destek hattı AirTouch Üç yıl garanti

TEHLİKELİ ENERJİNİN KONTROLÜ. ETİKETLEME ve KİLİTLEME SİSTEMLERİ. Kaynak: Forum Media Yayıncılık; İş Sağlığı ve Güvenliği için eğitim Seti

Bağlantı Kılavuzu. Yazıcıyı yerel olarak yükleme (Windows) Yerel yazdırma nedir? Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma

Fiziksel Veritabanı Modelleme

Öğr.Gör. Mehmet Can HANAYLI

Pardus 2011 Kurulum Belgesi Sürüm Ocak İçindekiler

Archive Player Divar Series. Kullanım kılavuzu

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Masaüstü Bilgisayarlar

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

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

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

İŞ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

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

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat

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

Bilgisayar Kasası Üzerindeki Düğmeler. Kabloları

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

İşletim Sistemleri (Operating Systems)

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

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

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

İLİŞKİSEL VERİTABANLARI

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

Transkript:

İşletim Sistemleri (Operating Systems) 1

Ölümcül Kilitlenme (Deadlock) 2

Bilgisayardaki kilitlenmeler trafikteki kilitlenmelere benzer. Örneğin, bir dörtyol kavşağına gelindiğinde uygulanması gereken kural sağdan gelene yol vermeyi belirtir. Ancak eğer bu kavşağa aynı anda 4 araba gelirse ve hepsi de geçmeye çalışırsa kilitlenme olacaktır. Yada, tek şeritli yolun iki araç tarafından da kullanılmak istenmesi sonucunda yolun tıkanması gibi. Ölümcül Kilitlenme (Deadlock) 3

Ölümcül Kilitlenme (Deadlock) Bilgisayar sistemleri, aynı anda yalnızca bir process tarafından kullanılabilen bazı kaynaklara sahiptir. Çok process li çalışma ortamlarında process ler sonlu sayıdaki kaynakları kullanmak için yarışırlar. Kaynak, herhangi bir anda tek bir process ile kullanılabilen donanım (örn. tape drive) yada yazılım (örn. locked record in a database) temelli olabilir. Kilitlenme, bekleme (waiting) durumundaki process lerin hazır (ready) durumuna geçebilmek için diğer process lerin sağlayacağı koşulu karşılıklı beklemelerine verilen addır. Kilitlenme, genelde process lerin ellerindeki kaynakları bırakmadan, başka process lere ait olan kaynakları kullanmak istedikleri durumlarda gerçekleşir. 4

Ölümcül Kilitlenme (Deadlock) Kilitlenme (deadlock) iki yada daha çok process in karşılıklı olarak hiç bir zaman gerçekleşmeyecek koşulları beklemeleriyle oluşan bir durumdur. Her process yalnız bir başka process in sağlayacağı bir koşulu beklerse ve bu processler de kapalı bir zincir oluşturursa, kilitlenme kaçınılmazdır. 5

Ölümcül Kilitlenme (Deadlock) Ana bellekte 200KB lık boş yer olduğunu varsayınız. İki process aşağıdaki sırayla ana bellekten istekte bulunurlar. P1 80 Kb istek 60 Kb istek P2 70 Kb istek 80 Kb istek Her iki process in de ilk istekleri bellek tarafından karşılanınca geriye sadece 50 Kb lik boşluk kalacaktır. Bu durumda her iki process de ikinci isteğini alamayacağı için kilitlenme olacaktır. 6

Ölümcül Kilitlenme (Deadlock) Bu gibi durumda kilitlenmeyi önlemek için process lerin istekleri işlem sırasına göre yapılabilir. P1 80 Kb istek 60 Kb istek P2 70 Kb istek 80 Kb istek İlk olarak P1 process inin istekleri karşılanır. P1 işini bitirince bellekten silinecektir. Daha sonra da P2 nin istekleri karşılanır ve kilitlenme ortadan kaldırılır. 7

Ölümcül Kilitlenme (Deadlock) Bir sistemde, 3 tane CD WR sürücüsü olsun. 3 process bu kaynakları kullanırken, her process diğer CD WR sürücülerden birisine istek yaparsa kilitlenme oluşur. Bir sistemde, 1 yazıcı ve 1 DVD sürücü olsun. P0 process i yazıcıyı, P1 process i DVD sürücüyü tutarken, P1 yazıcıya ve P0 DVD sürücüye istek yaparsa kilitlenme oluşur. Multithread uygulama geliştiriciler kilitlenme (deadlock) olasılığına dikkat etmelidir. 8

Kaynak Tahsis Grafikleri Process lerin istekleri ve kaynakların process lere atanması kaynak tahsis grafikleri ile gösterilirler. Process ler daireler şeklinde, kaynaklar kareler şeklinde gösterilir. Kaynak içindeki noktalar, kaynağın o kadar process e atanabileceğini belirtir. Bir process ten kaynağa doğru giden ok, process in kaynak için istek yaptığını gösterir. Kaynaktan process e doğru gösterilen ok, process in kaynağa sahip olduğunu gösterir. dört process e atanabilen kaynak Pi bir Rj kaynağını istiyor Rj kaynağının bir örneği Pi ye atanmış 9

Kaynak Tahsis Grafikleri P1, P2 tarafından tutulan bir kaynak talebinde bulunuyor. Hiçbir process R4 kaynağını talep etmiyor. Kaynak atama (allocate) R2 kaynağı P1 ve P2 ye atanmış. R1 kaynağı P2 ye atanmış. R3 kaynağı P3 e atanmış. Kaynak talebi (request) P1 process i R1 için istekte bulunuyor. P2 process i R3 için istekte bulunuyor. 10

Kaynak Tahsis Grafikleri Eğer graf üzerinde döngü yoksa kilitlenme (deadlock) yoktur, döngü varsa kilitlenme olabilir. Her kaynaktan sadece 1 örnek varken graf üzerinde döngü varsa, kilitlenme oluşur. Döngü içerisinde yer alan tüm process ler kilitlenme durumundadır. Kaynakların birden fazla olması durumunda, kilitlenme için döngü oluşması gereklidir ancak yeterli değildir. Döngü dışındaki bir process e atanmış kaynak seçilebilir. 11

Kilitlenme olmadan kaynak tahsis grafiği Bazı durumlarda, kilitlenme, aşağıdaki özelliklere sahip olan Kaynak Ayırma Grafikleri kullanılarak daha net anlaşılabilir: Bir kaynak kategorileri kümesi {R1, R2, R3,..., RN}, grafikte kare düğümler olarak görünür. Kaynak düğümleri içindeki noktalar, kaynağın kaç process e atanabileceğini gösterir. Bir process dizisi, {P1, P2, P3,..., PN} Şekilde P1, P2 ve P3 arasında kilitlenme (deadlock) durumu bulunmaz. P3 sahip olduğu R3 kaynağını serbest bıraktığında, R3 kaynağı P2 process ine atanır. 12

Kilitlenme olmadan kaynak tahsis grafiği Bir kaynak ayırma grafiği döngü içermiyorsa, sistemde kilitlenme (deadlock) olmaz. (Döngü ararken, bunların yönlendirilmiş grafikler olduğunu unutmayın.) Bir kaynak ayırma grafiği döngüler içeriyorsa ve her bir kaynak yalnızca tek bir process e atanabiliyorsa, bir kilitlenme (deadlock) var demektir. Bir kaynak birden çok process e atanabiliyorsa, kaynak ayırma grafiğinde bir döngü varlığı bir kilitlenme (deadlock) olasılığını gösterir ancak bir döngü kilitlenme olduğunu garanti etmez. 13

Kilitlenme olmadan kaynak tahsis grafiği P1 ve P3 process leri boşta kaynağı olmayan R1 ve R2 kaynaklarını beklemektedir. Ancak P2 ve P4 istekte bulundukları tüm kaynaklara sahiptir. Bu durumda P2 ve P4 process leri işlerini bitirince, kullandıkları kaynakları bırakacaklardır. Bırakılan kaynakları diğer process ler kullanabilir. Dolaysıyla kilitlenme oluşmaz. 14

Kilitlenme olmadan kaynak tahsis grafiği Şekilde döngü vardır, ancak kilitlenme (deadlock) yoktur. 15

Kilitlenme (deadlock) ile kaynak tahsis grafiği Process 1 Process 2 Process 3 Request(Kaynak_1); //Kaynak_1 tutuluyor Request(Kaynak_2); Request(Kaynak_2); //Kaynak_2 tutuluyor Request(Kaynak_3); Request(Kaynak_3); //Kaynak_3 tutuluyor Request(Kaynak_1); Process 1 Process 2 Process 3 Kaynak 1 Kaynak 2 Kaynak 3 16

Kilitlenme (deadlock) ile kaynak tahsis grafiği Şekilde P1, P2 ve P3 deadlock durumundadır. 17

Kilitlenme (Deadlock) Örnek : Aşağıdaki kümelerde P process leri, R kaynakları, E ise process istekleri ile kaynak atamalarını belirtmektedir. P={P1, P2, P3} R={R1, R2, R3} E={P1 R1, P2 R3, P3 R2, R1 P2, R2 P2, R2 P1, R3 P3} R1 ve R3 kaynakları bir process e, R2 kaynağı ise iki process e atanabilmektedir. a) Kaynak tahsis grafiğini çiziniz. b) Kilitlenme durumu var mıdır, karar veriniz. 18

a) Kaynak tahsis grafiğini çiziniz. Kilitlenme (Deadlock) E={P1 R1, P2 R3, P3 R2, R1 P2, R2 P2, R2 P1, R3 P3} 19

b) Kilitlenme durumu var mıdır, karar veriniz. Kilitlenme vardır. P1, P2 ve P3 process leri kilitlenmiştir. Kilitlenme (Deadlock) P1 process i R1 kaynağını beklemektedir. P2 process i R3 kaynağını beklemektedir. P3 process i R2 kaynağını beklemektedir. 20

Bölüşülür ve bölüşülemez kaynaklar (Preemptable and non-preemptable resources) Kilitlenmeler sistem kaynaklarının processler arasında paylaşım zorunluluğundan ortaya çıkar. Bilgisayarda bulunan kaynaklar iki kategoriye ayrılabilir. 1. Bölüşülür-geri alınabilir kaynaklar (preemptable resources) 2. Bölüşülemez-geri alınamaz kaynaklar (non-preemptable resources) 21

Bölüşülür kaynaklar (preemptable resources) Process ler tarafından eşzamanlı biçimde paylaşılabilen birimler bölüşür kaynaklardır (preemptable resources). İşlemci, ana bellek, disk birimleri, ve veritabanı kütükleri bölüşülür kaynaklardır. CPU ve ana bellek gibi bölüşülebilir kaynaklar işletim aşamasında geri alınıp başka bir process in kullanımına verilebilir. 22

Bölüşülemez kaynaklar (nonpreemptable resources) Process ler tarafından ardıl biçimde kullanılması zorunlu olan birimler bölüşülemez kaynakları (nonpreemptable resources) oluşturur. Bu kaynaklar istem üzerine aynı anda en çok bir process e atanan, sınırlı (sonsuz olmayan) bir süre sonunda serbest bırakılan ve başka bir process in kullanımına verilen kaynaklardır. Bölüşülemez kaynakların kullanımları sona ermeden bir process den geri alınarak diğer bir process e atamaları yapılamaz. 23

Bölüşülemez kaynaklar (nonpreemptable resources) Örneğin, bir process CD yazıcıyı kullanıyorsa CD yazıcının kullanan process in elinden alınması oluşan CD nin bozulmasına yol açar. CD yazıcı bölüşülemez bir kaynaktır. Örneğin; yazıcı (printer) bir yazma işlemindeyken, işletim sistemi yazıcıyı bu process den alıp başka bir process e veremeyeceği için yazıcı bölüşülemez bir kaynaktır. Bölüşülemez kaynaklara birden fazla process tarafından eşzamanlı erişim yapılamaz (Semafor veya mutex lock ile engellenir). 24

Bölüşülemez kaynaklar (nonpreemptable resources) Bu kaynaklarla ilgili kilitlenmeler, bu türdeki kaynakları paylaşan belirli sayıda processle sınırlı kalır. Process lere atanan kaynakların, process ler istemedikçe alınamaması kilitlenmeleri oluşturan bir koşuldur. Atanan kaynakların, process lerin istemleri dışında da sistemce geri alınmasının sağlanması, kilitlenmelerden korunmada akla gelen bir yöntem olabilir. Ancak bu yöntem bölüşülemez kaynaklar için uygulanamaz. 25

Kilitlenme için Gerekli Koşullar (Conditions for Deadlock) Processler arasında kilitlenme aşağıdaki koşullarda ortaya çıkabilir. 1. Karşılıklı dışlama durumu (mutual exclusion condition) 2. Sahiplenme ve bekleme durumu (hold and wait condition) 3. Bölüşülemez-Geri alınamaz kaynak durumu (no preemption condition) 4. Döngüsel bekleme durumu (circular wait condition) Aslında dördüncü koşul, ilk üç koşulun potansiyel bir sonucudur. 26

Kilitlenme için Gerekli Koşullar Bu koşulların tamamının aynı anda bulunması kilitlenmeyi oluşturur. Bu dört koşul aynı anda gerçekleşmezse kilitlenme durumu oluşmaz. Kilitlenmeleri önlemek üzere bu koşullardan en az birinin oluşmasını engellemek yeterlidir. 27

1. Karşılıklı dışlama (mutual exclusion-mutex): Kilitlenmeleri önlemek için process lerin karşılıklı dışlama davranışları içinde bulunmaları durumu. İki process veya thread ın birbirinden bağımsız çalışmasını, aynı anda bir işlemi yapmamasının istendiği durumlarda karşılıklı dışlama özelliği kullanılabilir. İki adet birbirine paralel ilerleyen process için aynı anda bir kaynağa erişme veya birbirleri için kritik olan işlemler yapma ihtimali her zaman bulunur. (iki ayrı process in paylaşılan bir dosyaya aynı anda yazmaya çalışması gibi) Bir kaynağın aynı anda yalnız bir process tarafından kullanılabilmesi (aynı anda bölüşülememesi) durumudur. 28

2. Sahiplenme ve bekleme (hold and wait): Bir process en azından bir kaynağı elinde tutmalı ve diğer process ler tarafından tutulan ek bir kaynağa gereksinim duymalıdır. Yani bir process bir kaynağa sahipken başka bir kaynak talebinde bulunduğu durumdur. Talep edilen kaynak ise başka bir process tarafından kullanılır durumdadır. Bir sistemde sahiplenme ve bekleme (hold and wait) durumunun oluşmaması için, bir process bir kaynağa istek yaptığında başka bir kaynağı tutmaması gerekir. 29

3. Bölüşülemez-geri alınamaz kaynak (no preemption): Bir process e atanan kaynaklar, işletim sistemi tarafından process in kendi isteği dışında elinden alınamıyorsa. Bir process e atanan kaynakların yalnız bu process tarafından özgür bırakılması, işletim sisteminin bu kaynaklara kullanımda iken el koyamaması durumudur. Bir kaynak, kendisini kullanan bir process i bırakamaz. Ancak, process görevini tamamladıktan sonra gönüllü olarak bırakılabilir. Bu yüzden bölüşülemez kaynakların beklenmesi kilitlenmeye sebep olur. İşletim aşamasında kullanılan kaynakları gerektiğinde tekrar geri alan bir atama yönetimi uygulamak çoğu fiziksel kaynak için olanaksızdır. 30

4. Döngüsel bekleme (circular waiting): Process lerin gereksinim duyduğu kaynakları, döngüsel olarak birbirlerinden beklemesi durumudur. Bir process in elinde tuttuğu kaynaklardan bir yada daha çoğunun, bu process ile aynı döngüsel işletim zinciri içinde yer alan diğer process ler tarafından istenmesi. İki veya daha fazla process zincir şeklinde kendinden önceki process e ait olan kaynağı bekler. Kilitlenme tam iki process ile olmak zorunda değildir. Döngüsel olarak birbirini bekleyen en az iki process le kilitlenme ortaya çıkar. {P0, P1,..., Pn} processleri birbirini beklemektedir. P0 process i P1 i, P1 process i P2 yi,..., Pn process i de P0 ı beklemektedir. Bu yüzden, kilitlenme varsa mutlaka döngüsel bir bekleme vardır; ancak döngüsel bekleme varsa mutlaka kilitlenme olur denilemez, çünkü bir kaynağın birden çok örneği varsa, bu örnekler farklı process ler tarafından kullanılabilir ve döngü olmasına rağmen kilitlenme oluşmaz. 31

Kilitlenme yönetimi için metotlar Kilitlenme problemi için 3 farklı yol izlenebilir: 1. Kilitlenmelerden kaçınmak için protokol kullanılabilir. Sistem hiçbir zaman deadlock durumuna düşmez. 2. Sistemin kilitlenme durumuna düşmesine izin verilir, kilitlenme algılanır ve çözülür. 3. Kilitlenme problemi tamamen gözardı edilir ve sistemde kilitlenme hiçbir zaman olmayacak gibi davranılır. Üçüncü durum işletim sistemleri tarafından yaygın kullanılır (Linux, Windows). Linux ve Windows işletim sistemleri, kilitlenme (deadlock) yönetimini uygulama geliştiricilere bırakır. 32

Kilitlenme ile başa çıkmak Kilitlenme ile başa çıkmak için üç genel yaklaşım mevcuttur. 1) Kilitlenmeyi Önleme (Deadlock Prevention) 2) Kilitlenmeden Kaçınma (Deadlock Avoidance) 3) Kilitlenmeyi Algılama (Deadlock Detection) 33

Kilitlenme ile başa çıkmak Bir sistemde hiçbir zaman kilitlenme olmamasını garanti etmek için, kilitlenmeyi önleme (deadlock prevention) veya kilitlenmeden kaçınma (deadlock avoidance) yöntemleri kullanılabilir. Bir sistem, kilitlenmeyi önleme veya kilitlenmeden kaçınma yöntemlerini kullanmazsa kilitlenme oluşabilir. Bu sistemler, kilitlenme olup olmadığını kontrol eden bir algoritma ve kilitlenme oluştuğunda çözümünü sağlayan bir algoritma sağlamalıdır. 34

1. Kilitlenmeyi önleme (Deadlock Prevention) Kilitlenme oluşması için 4 durumun da (mutual exclusion, hold and wait, nopreemption, circular wait) gerçekleşmesi gereklidir. Kilitlenmeye yol açan koşullardan birini ortadan kaldıran bir politika benimseyerek kilitlenme önlenebilir. Kilitlenmeyi önleme (Deadlock Prevention), kaynak isteklerini sınırlandırarak kilitlenme oluşmasını önler. Bu durumda da, verimsiz kullanım ve düşük throughput ortaya çıkar. 35

2. Kilitlenmeden kaçınma (Deadlock-avoidance) Sistem, ileride kilitlenme (deadlock) oluşmayacak şekilde kaynakları planlayarak tahsis eder. Basit bir yöntemde, tüm process ler ihtiyaç duydukları kaynakları başlangıçta bildirirler, sistem döngüsel bekleme (circular wait) oluşmayacak şekilde kaynakları tahsis eder. 36

2. Kilitlenmeden kaçınma (Deadlock-avoidance) Eğer bir sistem, kaynakları process lere belirli bir sırada (safe sequence) maksimum ihtiyaçları kadar atayabiliyorsa ve deadlock oluşmuyorsa bu durum safe state olarak adlandırılır. Eğer bir sistemde safe sequence varsa sistem safe state durumundadır. 37

2. Kilitlenmeden kaçınma (Deadlock-avoidance) Çoğu sistemde, kaynakların her biri birer birer talep edilir. Sistem, bir kaynağın verilmesinin güvenli olup olmadığına karar verebilmeli ve güvende olduğunda kaynak tahsisatı yapabilmelidir. 38

2. Kilitlenmeden kaçınma (Deadlock-avoidance) Her zaman doğru seçimi yaparak kilitlenmeyi önleyebilecek bir algoritma var mı? Cevap, evettir - kilitlenmelerden kaçınılabilir, ancak yalnızca belirli bilgiler önceden mevcutsa. Kilitlenme oluşturabilecek process lerin başlatılmasını engellemek için Banker s algoritması kullanılmaktadır. 39

2. Kilitlenmeden kaçınma (Deadlock-avoidance) Banker s Algoritması Dijkstra tarafından önerilmiştir; Belli bir sermayeye sahip bir bankerin iflas etmeden müşterilerine kredi imkanı tanıması esastır. Müşterinin tüm gereksinim duyduğu krediyi almadan, geri ödeme garantisi yoktur. Şayet bir miktar kredi talep edildiğinde diğer müşterilerin ihtiyaçlarının karşılanamaması riski varsa kredi verilmemektedir. Sistemin içinde bulunabileceği iki durum vardır; güvenli ve güvenli olmayan durum. 40

Banker s Algoritması Bu algoritma kullanılarak process ler için güvenli şekilde çalışabilecek bir sıra bulunursa kilitlenme olmaz demektir. Güvenli durumda, tüm process lerin kilitlenme oluşturmayacak şekilde sonlanmasına olanak veren bir işletim şekli mevcuttur. Böyle bir işletim şekli yoksa güvenli olmayan durumdur. Eğer güvenli bir yol yok ise kilitlenme oluşabilir demektir. 41

Banker s Algoritması Banker s algoritması yönteminde; Kaynaklar (Resources) - (R) Boşta bulunan kaynaklar (Available) - (V) İstekler (Max) - (C) Atanmalar (Allocation) - (A) hakkında bilgi sahibi olunması gerekir. Tüm isteklerden (C), atanan kaynaklar (A) çıkarıldığı zaman geriye kalan istek (Need) sayıları (Q) bulunabilir. Q = C A 42

Banker s Algoritması Örnek : Aşağıda verilen bilgileri ve Banker s algoritmasını kullanarak sistemin güvenli olup olmadığına karar veriniz. 43

Banker s Algoritması İlk olarak process lerin geriye kalan isteklerini (Q) hesaplamak gerekir. 44

Banker s Algoritması Daha sonra geriye kalan istekler (Q) ve boştaki kaynaklar (V) kontrol edilerek çalışabilecek bir process var mı bulunması gerekir. Bu noktada P2 process inin sadece R3 kaynağına ihtiyacı vardır. 45

Banker s Algoritması P2 process i istediği tüm kaynaklara sahip olduğundan, işlemini yapıp bitecek ve sonra da kullandığı tüm kaynakları serbest bırakacaktır. 46

Banker s Algoritması Bu durumda 3 process den herhangi biri için yetecek kadar kaynak bulunmaktadır. P1, P3 ve P4 process lerinden bir tanesi çalışmaya başlayabilir. Sıra ile gidilecek olursa P1 kaynakları kullanıp çalışmaya başlayabilir. 47

P1 in ardından P3 çalışabilir. Banker s Algoritması 48

Banker s Algoritması Son olarak da P4 process i çalışabilir. Böylece process ler P2, P1, P3 ve P4 sırası ile güvenli bir şekilde çalışabilir. Kilitlenme yoktur. 49

Örnek : Aşağıda verilen bilgileri kullanarak Banker s algoritmasını kullanarak sistemin güvenli olup olmadığına karar veriniz. 50

Bu durumda, boştaki kaynakları kullanarak hiçbir process çalışmaya başlayamaz. Güvenli bir durum yoktur ve kilitlenme olabilir. Bu yöntemde güvenli bir durum oluşmadığı ve kilitlenme olabilir kaygısı ile kaynakların process lere atanması kısıtlanır. 51

Ödev : Aşağıda verilen bilgileri ve Banker s algoritmasını kullanarak sistemin güvenli olup olmadığına karar veriniz. R1 R2 R3 P1 7 5 3 P2 3 2 2 P3 9 0 2 P4 2 2 2 P5 4 3 3 İstekler (Request) R1 R2 R3 P1 0 1 0 P2 2 0 0 P3 3 0 2 P4 2 1 1 P5 0 0 2 Atamalar (Allocation) R1 R2 R3 P1 7 4 3 P2 1 2 2 P3 6 0 0 P4 0 1 1 P5 4 3 1 Geriye kalan istekler (Need) R1 R2 R3 10 5 7 Kaynaklar (Resources) R1 R2 R3 10 5 7 Boştaki kaynaklar (Available) 52

3. Kilitlenme Bulma (Deadlock Detection) Kilitlenme bulma yöntemlerinde kaynakların process lere atanması kısıtlanmaz. İstekte bulunan process lere boşta bulunan kaynaklar atanabilir. Yöntem aşağıdaki gibidir: 1. Atananlar (A) matrisinde tamamı 0 (sıfır) olan satırlar işaretlenmelidir. 2. W adında geçici bir vektör tanımlayıp, boştaki kaynaklar (V) vektörüne eşitlenmelidir (W=V). 3. Process lerin işaretlenmemiş satırlarındaki geriye kalan isteklerine (Q) bakılmalı, eğer istekler W vektöründen büyükse algoritma durdurulmalıdır, çünkü kilitlenme vardır. eğer W vektöründen küçükse, bu process in satırı işaretlenmeli ve atananlar matrisindeki satır W vektörüne eklenmelidir, ardından 3. adıma dönülmelidir. 53

3. Kilitlenme Bulma (Deadlock Detection) Örnek : Aşağıdaki bilgileri kullanarak kilitlenme (deadlock) olup olmadığına karar veriniz. 54

3. Kilitlenme Bulma (Deadlock Detection) İlk olarak atanmalar (A) matrisinde tamamı 0 olan satırlar bulunup işaretlenmelidir. 55

3. Kilitlenme Bulma (Deadlock Detection) Daha sonra geçici W vektörünü tanımlanıp boştaki kaynaklar vektörüne (V) eşitlenmelidir (W=V). 56

3. Kilitlenme Bulma (Deadlock Detection) Geriye kalan istekler (Q) matrisindeki satırlar W vektörü ile karşılaştırılmalıdır. Eşit veya küçük olan satıra sahip process in atanmalar satırı W vektörüne eklenmeli ve işaretlenmelidir. 57

3. Kilitlenme Bulma (Deadlock Detection) Yine Q matrisinin satırları ile W vektörü karşılaştırılmalıdır. Bu durumda W vektöründen daha küçük Q satırı yoktur. P1 ile P2 işaretlenmediği için bu iki process in kilitlendiği bulunmuştur. 58