İşletim Sisteminde Kilitlenme Nedir: Koşullar ve Tespit Algoritması

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bir işletim sisteminin temel amacı, donanım ve yazılım kaynakları arasında uygun iletişim sağlamak ve ayrıca programlara ortak hizmetler vermektir. Bir işletim sistemi süreci herhangi bir kaynağa erişmek istediğinde, öncelikle erişmek istediği belirli kaynağa bir istek gönderir, daha sonra kaynağı kullanır ve son olarak kaynağı kullandıktan sonra serbest bırakır. Pek çok sürecin aynı anda bir kaynağa erişmeye çalıştığını varsayalım, böyle bir durumda kilitlenme adı verilen kavram ortaya çıktığında, tüm süreçlere bir seferde tek kaynak sağlamak zorlaşır. Bu nedenle bu makale, kilitlenmenin nasıl oluştuğunu ve bu kilitlenme durumunun nasıl üstesinden gelineceğini açıklamaktadır.

İşletim Sisteminde Kilitlenme Nedir?

Tanım: Dead-Lock, iki veya daha fazla işlemcinin bazı olayların olmasını beklediği bir durumdur, ancak gerçekleşmeyen bu tür olaylar bir kilitlenme durumudur ve işlemcilerin kilitlenme durumunda olduğu söylenir. Örneğin, tek yönlü bir yolda iki ayrı sürücü tarafından sürülen iki A ve B vagonunun olduğu gerçek zamanlı bir senaryo varsayalım. Şimdi durum, Car A sürücüsünün kuzeye doğru hareket etmesinin doğru bir yön olduğunu söylediği, Car B sürücüsü ise güneye doğru hareketinin doğru olduğunu söylediği durumda ortaya çıkıyor. Ancak hiçbiri başka bir arabanın ilerlemesine izin vermek için geri hareket etmiyor, bu duruma kilitlenme durumu denir.




Araba Örneği

araba örneği

Daha iyi anlamak için, iki R1, R2 kaynağı ve R1'in P1'e ve R2'nin P2'ye atandığı iki işlem P1 ve P2'nin olduğu başka bir örneği ele alalım. Şimdi, eğer P1 R2'ye erişmek istiyorsa, bildiğimiz gibi, R2, P2 tarafından tutuluyor ve şimdi P2, R1'e erişmek istiyorsa, bu, P1, yalnızca R2'ye erişildiğinde çalıştırılır, ayrıca P2 yalnızca R1'e erişildiğinde bu durumda çalışır. bir kilitlenme durumudur.



İşlemci Örneği

işlemci örneği

Dead-Lock Koşulları

Aşağıdakiler, tüm koşullar aynı anda meydana gelirse ortaya çıkacak dört önemli kilitlenme koşuludur ve kilitlenmenin gerçekleşmesi için belirli olasılıklar vardır.

Karşılıklı dışlama

Bu, kullandığımız her türlü kaynağın birbirini dışlayan bir şekilde kullanılması gerektiği anlamına gelir. Yalnızca bir işlemin aynı anda yalnızca bir kaynak kullandığı durumlarda. Örneğin, baskı işlemi devam ediyor ve aniden başka bir süreç baskı sürecini kesintiye uğratmaya çalışıyor. Yani burada karşılıklı dışlama durumunda, sadece baskı görevi tamamlandıktan sonra sadece bir sonraki görev işlenir. Karşılıklı dışlama, kaynakları eş zamanlı paylaşarak ortadan kaldırılabilir ki bu pratik olarak mümkün değildir.

Karşılıklı dışlama

Karşılıklı dışlama

Ön sipariş yok

Göre önleyici tabanlı algoritmalar, mevcut görevi kesmeye çalışan öncelikli bir görev varsa. Önleyici algoritma mevcut görevi tutar ve öncelikle öncelikli görevi yürütür ve ilk görevine geri döner. Bir işlemin, yürütüldüğü sürece kaynağı tuttuğu yukarıdaki örnekte açıklanan bir durum, yani P1, R1'i yalnızca çalıştırdıktan sonra, benzer şekilde P2 sürümü R2'yi yalnızca yürütmeden sonra serbest bırakabilir. Ön alım yoksa kilitlenme meydana gelebilir.


Ön Ödemesiz Örnek

önleme yok-örnek

Tut ve Bekle

Bir süreç bazı kaynakları tutuyor ve ek kaynaklar bekliyor, ancak bu kaynaklar başka bir süreçle elde ediliyor. Yukarıdaki örnekten, P1, R1'i tutuyor ve R2'yi bekliyor, burada R2, P2 tarafından elde ediliyor ve P2, R2'yi tutuyor ve R1'in P1 tarafından alındığı R1'i bekliyor, sistemde bir bekletme ve bekleme durumudur.

Bekle ve Bekle Örneği

bekle ve bekle örneği

Dairesel Bekleme

Bir süreç başka bir işleme tahsis edilmiş bir kaynağı bekliyorsa ve bu işlem bir kaynağı bekliyorsa, bir dizi işlemin kilitlenme içinde olduğu söylenir, bu, döngü biçiminde olduğu yukarıda açıklanan örneğe benzer. P1'in R2'yi beklediği ve R2'nin P2 için ayrıldığı ve P2'nin R1 ve R1'in beklediği durumlarda, bu koşul kilitlenme gerçekleşirse dairesel bir bekleme formu olan P1 için ayrılmıştır.

Dairesel Bekle Örneği

döngüsel bekleme örneği

Dead-Lock Algılama Algoritması

Kaynakları süreçlere ayırdığımız durumlar ve işletim sistemi, sistemde bir kilitlenme olup olmadığını veya 2 ana kilitlenme algılama algoritması kullanmadan yeniden kontrol eder.

  • Tek örnek
  • Birden çok kaynak türü örneği

Tek örnek

Tek bir örnek, bir sistemin tüm kaynakların tek bir örneğine sahip olduğu bir durumdur. Ayrıca grafik için bekleme algoritması veya kaynak tahsis grafiği olarak da bilinir. Kaynak tahsisi grafiği, iki farklı köşe olarak temsil edilen bir dizi işlem ve kaynaklardan oluşur. Kaynak tahsisi grafiğindeki kaynaklar değiştirilir ve grafik bekleme formu olarak temsil edilir. Grafik için bekleme formunun yalnızca aşağıda gösterildiği gibi köşeler olarak temsil edilen süreçlere sahip olduğu yerlerde,

  • Kaynak tahsis grafiği: P1, P2, P3 süreçleri ve R1, R2, R3 kaynakları, kaynak tahsis grafiğinde temsil edilir.
  • Grafiği Bekle: Grafik için sadece P1, P2, P3 İşlemlerinden bahsedilir.
  • Bir döngü koşulu varsa, bir süreçte bir yönde sürekli bir akış varsa, bu döngü koşulunun çıktığı ve grafiğin kilitlenme durumunda olduğu anlamına gelir.

Örnek 1: Aşağıdaki örnek, grafik için beklerken sürekli akış gözlemlenmediğinden kilitlenme durumu olmadığını göstermektedir.

Tek Örnek-Örnek1

tek örnekli örnek1

Örnek 2: Kilitlenme durumu, P1'den P4'e sürekli bir döngü akışı olduğu için ortaya çıkmıştır.

Tek Örnek - Örnek2

tek örnek-örnek2

Sistemde çok sık kilitlenme meydana gelirse, algılama algoritması sıklıkla kullanılır. Algılama algoritmasının daha fazla kullanımı varsa, o zaman daha fazla ek yük ve daha fazla hesaplama süresi olacaktır. Bu nedenle, bunun üstesinden gelmek için, eşit miktarda zaman verdikten sonra algoritmayı çağırırız, bu, kilitlenmeyi tespit etmek için grafiğin ağırlığı bu şekilde kullanılır.

Birden Çok Kaynak Türü Örneği

Kaynak türünün birden çok örneği, bir sistemin tüm kaynakların birden çok örneğine sahip olduğu bir durumdur, bu aynı zamanda Bankacılar algoritması olarak da bilinir. Bankacılar algoritmasına göre, süreç gerekli tüm kaynakları alır almaz kaynaklarını serbest bırakır.

Aşağıdaki örneği ele alalım, 3 süreç P0, P1, P2 ve A, B, C kaynak tipi ve A'nın olabileceği İşlemci , B yazıcı ve C klavye olabilir. Sütundaki '0' rakamları, kaynakların kullanılabilirliğini temsil eder.

Durum (i): Varsayalım ki, koşul talebini P0 ve P2'de bulunan “000” koşulu olarak alırsak, hangi talebin yerine getirildiğini kontrol etmeliyiz, P0 süreçleri tahsis edildikten sonra süreçleri serbest bıraksın, sonra tahsis edildikten sonra P2 süreçleri serbest bırakılır. Bunun gibi, sırayla, tek tek işlem sırayla P0, P2, P3, P1, P4'ü serbest bırakır. Son olarak P7, P2, P6 olarak mevcut kaynakları elde ederiz. Mevcut sıra, kilitlenmenin olmadığı bir durumdur.

Bankacılar-Algoritma-Örneği1

bankacılar-algoritma-örnek1

Evler (ii): P2'nin 000 yerine 001 olduğunu varsayalım, 5 işlem arasında tek P0'ın yürütüldüğü kilitlenme durumunu kontrol etmek için bankerin algoritmasını şimdi uygulayın. Dolayısıyla P1, P2, P3, P4, P0 haricinde kilitlenme durumundadır.

Bankacılar-Örnek2

bankacılar-örnek2

Deadlock Uygulamaları

Kilitlenme uygulamaları, birkaç öğrencinin serbest bırakıldıklarında üniversite web sitelerine erişmeye çalıştıkları çevrimiçi sınav sonuçlarının gerçek zamanlı bir örneğiyle açıklanabilir. Web sayfasının aynı anda birden fazla kullanıcıya yüklenmediği zamanlarda bunun bir kilitlenme durumu olduğu gözlemlenebilir. Bu, algoritmalardan herhangi biri kullanılarak aşılabilir.

Avantajlar

Kilitlenmenin avantajları

  • Kilitlenmeden kaçınmada hiçbir ön empoze gözlemlenmez
  • Süreçte gecikme yok

Dezavantajları

Kilitlenmenin dezavantajı

  • Kullanılacak kaynak önceden bilinmelidir
  • Sürecin uzun süre tıkanması
  • Ön alım kayıpları miras alınır.

Bu makale, iki veya daha fazla işlem olduğunda kilitlenmenin nasıl oluştuğunu ve bir kilitlenmenin meydana gelmesinin nedeni olan üç koşulu ve iki tür algoritmayı, yani bir kilitlenme koşulu ve bankacıların kilitlenme önleme algoritması olan algoritması. İşte sorusu 'Çıkmaz göz ardı edilirse ne olur?'.