Kilitlenme Operating Sistemi: Döngüsel Bekleme Nedir (Örnekler)

Deadlock Nedir?

çıkmaz bir başka bekleyen işlem talep edilen kaynağı tuttuğu için herhangi bir işlemin bekleme durumuna girmesiyle oluşan bir durumdur. Kilitlenme, çoklu işlemde, birkaç işlemin yumuşak kilit veya yazılım olarak bilinen belirli bir tür karşılıklı olarak özel kaynağı paylaştığı yaygın bir sorundur.

Kilitlenme Örneği

  • Gerçek dünyadan bir örnek, yalnızca tek yöne giden trafik olabilir.
  • Burada köprü bir kaynak olarak kabul edilir.
  • Yani, çıkmaza girildiğinde bir aracın geri gitmesiyle (kaynakların önceden alınması ve geri alma) kolayca çözülebilir.
  • Kilitlenme durumu oluşması durumunda birkaç aracın geri çekilmesi gerekebilir.
  • Yani açlık mümkündür.
Kilitlenme Örneği
Çıkmaza örnek

Dairesel bekleme nedir?

Bir süreç, ikinci süreç tarafından tutulan kaynağı bekliyor, o da üçüncü süreç tarafından tutulan kaynağı bekliyor vb. Bu, son süreç, birinci süreç tarafından tutulan bir kaynağı bekleyene kadar devam edecek. Bu dairesel bir zincir oluşturur.

Örneğin, A Süreci, A Kaynağını talep ettiği için B Kaynağına tahsis edilir. Aynı şekilde, B Sürecine A Kaynağı tahsis edilir ve B Kaynağını talep eder. Bu, döngüsel bir bekleme döngüsü oluşturur.

Döngüsel bekleme örneği

Örneğin, bir bilgisayarda üç USB sürücüsü ve üç işlem vardır. Üç işlemden her biri USB sürücülerden birini tutabilir. Bu nedenle, her işlem başka bir sürücü istediğinde, üç işlem de çıkmaza girer çünkü her işlem şu anda kullanımda olan USB sürücüsünün serbest bırakılmasını bekler. Bu, dairesel bir zincirle sonuçlanır.

Döngüsel bekleme örneği

Döngüsel bekleme örneği

İşletim Sisteminde Kilitlenme Algılama

Bir çıkmaz oluşumu kaynak zamanlayıcısı tarafından tespit edilebilir. Bir kaynak zamanlayıcısı, işletim sisteminin farklı süreçlere tahsis edilen tüm kaynakları takip etmesine yardımcı olur. Bu nedenle, bir çıkmaz tespit edildiğinde, aşağıda verilen yöntemler kullanılarak çözülebilir:

İşletim Sisteminde Kilitlenme Önleme

Bir çıkmazın oluşmasını engellemek önemlidir. Sistem, çıkmaz durumlarına yol açmadığından emin olmak için her işlemi yürütülmeden önce kontrol eder. Böylece, gelecekte çıkmaza yol açabilecek bir işlemin gerçekleşmesi durumunda bile küçük bir değişiklik bile işlemin yürütülmesine asla izin vermez.

Koşullardan en az birinin sağlanamamasının sağlanmasına yönelik yöntemler bütünüdür.

Önleyici eylem yok

Ön Alım Yok – Bir kaynak, yalnızca onu tutan süreç tarafından, bu süreç görevini tamamladıktan sonra gönüllü olarak serbest bırakılabilir.

  • Bazı kaynakları tutan bir süreç, kendisine hemen tahsis edilemeyecek başka bir kaynak talep ederse, bu durumda tüm kaynaklar serbest bırakılacaktır.
  • Öncelikli kaynaklar, bekleyen bir işlem için kaynak listesini gerektirir.
  • İşlem yalnızca eski kaynağını ve talep ettiği yeni kaynağı geri kazanabilirse yeniden başlatılacaktır.
  • Proses başka bir kaynak talep ediyorsa, mevcut olduğunda talep eden prosese verilmiştir.
  • Eğer başka bir kaynak bekleyen başka bir proses tarafından tutuluyorsa serbest bırakıp talep eden prosese veriyoruz.

Karşılıklı dışlama

Karşılıklı Dışlama, Mutex'in tam bir şeklidir. Paylaşılan kaynağa erişimi kontrol etmek için kullanılan özel bir ikili semafor türüdür. Genişletilmiş öncelik ters çevirme sorunlarını önlemek için bir öncelik devralma mekanizması içerir. Mevcut yüksek öncelikli görevlerin mümkün olan en kısa süre boyunca engellenmiş durumda tutulmasına olanak tanır.

Salt okunur dosyalar gibi paylaşılan kaynaklar hiçbir zaman çıkmazlara yol açmaz, ancak yazıcılar ve teyp sürücüleri gibi kaynaklara tek bir işlem tarafından özel erişim sağlanması gerekir.

Tut ve Bekle

Bu durumda, işlemlerin bir veya birden fazla kaynağı tutarken aynı anda bir veya daha fazla diğer kaynağı beklemesi durdurulmalıdır.

Dairesel Bekleme

Tüm kaynak türlerinin toplam sıralamasını empoze eder. Döngüsel bekleme aynı zamanda her sürecin kaynakları artan numaralandırma sırasına göre talep etmesini gerektirir.

Kilitlenmeden Kaçınma Algorithms

Deadlock oluştuktan sonra işlem yapmaktansa, deadlock'tan kaçınmak daha iyidir. Kaynakların nasıl kullanılması gerektiği gibi ek bilgilere ihtiyaç duyar. Deadlock önleme, her sürecin ihtiyaç duyabileceği her türden maksimum kaynak sayısını bildirdiği en basit ve en kullanışlı modeldir.

Kaçınma Algorithms

Kilitlenme önleme algoritması, kaynak tahsis durumunu dinamik olarak değerlendirmenize yardımcı olur, böylece hiçbir zaman dairesel bekleme durumu olmaz.

Bir kaynak türünün tek bir örneği.

  • Kaynak tahsisi grafiği kullanma
  • Deadlock için yeterli olan döngüler gereklidir

Bir kaynak türünün birden çok örneği.

Açlık ve Kilitlenme Arasındaki Fark

İşte Deadlock ile açlık arasındaki bazı önemli farklar:

çıkmaz Açlık
Kilitlenme durumu, işlemlerden birinin bloke olması durumunda ortaya çıkar. Açlık, tüm düşük öncelikli süreçlerin engellendiği ve yüksek öncelikli süreçlerin yürütüldüğü bir durumdur.
Çıkmaz sonsuz bir süreçtir. Açlık uzun bir bekleyiştir ancak sonsuz bir süreç değildir.
Her çıkmazın mutlaka bir de açlık vardır. Her açlık mutlaka bir çıkmaza yol açmaz.
Kilitlenme meydana gelir sonra Karşılıklı dışlama, tut ve bekle. Burada, önleme ve dairesel bekleme aynı anda gerçekleşmez. Kontrolsüz öncelik ve kaynak yönetimi nedeniyle olur.

Deadlock'un Avantajları

İşte Deadlock yöntemini kullanmanın avantajları/faydaları

  • Bu durum, tek bir aktivite patlaması gerçekleştiren işlemler için iyi sonuç verir.
  • Deadlock için herhangi bir ön almaya gerek yoktur.
  • Durumu kolayca kaydedilip geri yüklenebilen kaynaklara uygulandığında kullanışlı yöntem
  • Derleme zamanı kontrolleri aracılığıyla uygulanması mümkün
  • Sorun sistem tasarımında çözüldüğü için çalışma zamanı hesaplamasına gerek yoktur

Deadlock'un Dezavantajları

İşte, deadlock yönteminin kullanılmasının eksileri/dezavantajları

  • Süreç başlatılmasını geciktirir
  • Süreçler gelecekteki kaynak ihtiyacını bilmelidir
  • Gerekenden daha sık ön alım yapar
  • Artan kaynak isteklerine izin vermez
  • Doğal ön alım kayıpları.

ÖZET

  • Kilitlenme Tanımı: Bir çıkmazda meydana gelen bir durumdur. OS Başka bir bekleme süreci talep edilen kaynağı tuttuğu için herhangi bir süreç bekleme durumuna girdiğinde
  • Döngüsel bekleme, bir süreç ikinci süreç tarafından tutulan kaynağı beklerken, o da üçüncü süreç tarafından tutulan kaynağı vb. beklerken gerçekleşir.
  • Kaynak zamanlayıcısı tarafından bir çıkmazın oluştuğu tespit edilebilir.
  • Önemli olan, çıkmazın ortaya çıkmasını önceden önlemektir.
  • Bir kaynak, ancak onu tutan süreç tarafından, o süreç görevini tamamladıktan sonra gönüllü olarak serbest bırakılabilir.
  • Karşılıklı Dışlama, Mutex'in tam bir şeklidir. Özel bir ikili dosya türüdür semafor paylaşılan kaynağa erişimi kontrol etmek için kullanılır.
  • Bekletme ve tutma, işlemlerin bir veya birden fazla kaynağı tutarken aynı anda bir veya daha fazla diğerini beklemesinin durdurulması gereken bir durumdur.
  • Kilitlenme önleme, her sürecin ihtiyaç duyabileceği her türden maksimum kaynak sayısını bildirdiği en basit ve en kullanışlı modeldir.
  • Kilitlenme önleme algoritması, kaynak tahsis durumunu dinamik olarak değerlendirmenize yardımcı olur, böylece hiçbir zaman dairesel bekleme durumu olmaz.
  • Kilitlenme sonsuz bir süreçtir, açlık ise uzun bir bekleyiş ama sonsuz bir süreç değildir.