Livelock nedir?
Bir Livelock , örtüşen birçok paylaşılan kilit birbirini engellemeye devam ettiğinden , özel bir kilit talebinin tekrar tekrar reddedildiği bir durumdur. Süreçler durumlarını değiştirmeye devam ediyor ve bu da görevi tamamlamalarını engelliyor. Bu ayrıca görevi tamamlamalarını engeller.
Bu işletim sistemi eğitiminde şunları öğreneceksiniz:
- Livelock nedir?
- Örneklerof Livelock
- Livelock'a Ne Yol Açıyor?
- Kilitlenme nedir?
- Deadlock Örneği
- Açlık nedir?
- Deadlock, Starvation ve Livelock Arasındaki Fark
Örneklerof Livelock
Örnek 1:
Livelock'un en kolay örneği, bir koridorda yüz yüze karşılaşan ve ikisi de diğerinin geçmesine izin vermek için kenara çekilen iki kişi olabilir. O sırada aynı şekilde hareket ettikleri için herhangi bir ilerleme kaydetmeden bir yandan diğer yana hareket ediyorlar. Burada asla birbirleriyle kesişmiyorlar.
Örnek 2:
Yukarıdaki görüntüde görebilirsiniz, verilen iki işlemin her birinin iki kaynağa ihtiyacı vardır ve onlar için gerekli kilitleri almaya çalışmak için ilkel yoklama kayıt defterine girmeyi kullanırlar. Deneme başarısız olursa, yöntem tekrar çalışır.
- İşlem A tutma Y kaynağı
- İşlem B, X kaynağını tutar
- İşlem A, X kaynağı gerektirir
- Süreç B, Y kaynağı gerektirir
Varsayalım ki, önce işlem A çalışır ve veri kaynağı X'i alır ve sonra işlem B çalışır ve kaynak Y'yi alır, hangi işlem önce çalışırsa çalışsın, hiçbiri daha fazla ilerleme kaydetmez.
Ancak, iki işlemin hiçbiri engellenmez. Herhangi bir ilerleme kaydedilmeden CPU kaynaklarını tekrar tekrar kullanırlar, ancak aynı zamanda herhangi bir işleme bloğunu durdururlar.
Bu nedenle, bu durum bir kilitlenme durumu değildir çünkü bloke olan tek bir süreç yoktur, ancak kilitlenmeye eşdeğer bir durumla, yani LIVELOCK ile karşı karşıyayız.
Livelock'a Ne Yol Açıyor?
Livelock, belirli bir sistemde izin verilen toplam işlem sayısının, işlem tablosundaki toplam giriş sayısı ile tanımlanması gerektiğinde oluşur. Bu nedenle, işlem tablosu yuvalarına Sonlu Kaynaklar olarak atıfta bulunulmalıdır.
Kilitlenme nedir?
Kilitlenme, işletim sisteminde herhangi bir işlem bekleme durumuna girdiğinde ortaya çıkan bir durumdur, çünkü başka bir bekleme işlemi talep edilen kaynağı tutmaktadır. Kilitlenme, birden fazla işlemin yazılım kilidi veya yazılım olarak bilinen belirli bir karşılıklı dışlayıcı kaynak türünü paylaştığı çoklu işlemede yaygın bir sorundur.
Deadlock Örneği
- Gerçek dünyadaki bir örnek, yalnızca bir yöne giden trafiktir.
- Burada bir köprü bir kaynak olarak kabul edilir.
- Bu nedenle, Deadlock meydana geldiğinde, bir arabanın yedeklenmesi durumunda kolayca çözülebilir (Kaynakları önleme ve geri alma).
- Bir kilitlenme durumu meydana gelirse birkaç aracın yedeklenmesi gerekebilir.
- Yani açlık mümkün.
Açlık nedir?
Açlık, tüm düşük öncelikli süreçlerin engellendiği ve yüksek öncelikli süreçlerin ilerlediği bir durumdur. Herhangi bir sistemde, yüksek / düşük öncelikli kaynak talepleri dinamik olarak gerçekleşmeye devam eder. Bu nedenle, kimin ne zaman destek alacağına karar vermek için bazı politikalar gerekir.
Bazı algoritmalar kullanıldığında, bazı işlemler kilitlenmemiş olsalar bile istenen hizmeti alamayabilir. Açlık, bazı iş parçacıkları paylaşılan kaynakları uzun süre kullanılamaz hale getirdiğinde ortaya çıkar.
Açlık Örneği:
Örneğin, bir nesne, büyük olasılıkla geri dönmesi uzun zaman alacak olan senkronize bir yöntem sunar. Bir iş parçacığı bu yöntemi sık kullanıyorsa, aynı nesneye sık sık eşitlenmiş erişime ihtiyaç duyan diğer iş parçacıkları da genellikle engellenir.
Deadlock, Starvation ve Livelock Arasındaki Fark
- Kilitlenme, istenen kaynak başka bir bekleme süreci tarafından tutulduğu için herhangi bir işlem bekleme durumuna girdiğinde işletim sisteminde meydana gelen bir durumdur.
- Öte yandan, bir canlı kilit, neredeyse bir çıkmaza benzer, ancak bir canlı kilitle ilgili süreçlerin durumları her zaman birbirine değişmeye devam eder, hiçbiri ilerlemiyor.
- Dolayısıyla, Livelock benzersiz bir kaynak açlığı vakasıdır.
Özet:
- Tanım: Livelock, üst üste binen paylaşılan kilitlerin çoğu birbirini engellemeye devam ettiğinden, özel bir kilit talebinin tekrar tekrar reddedildiği bir durumdur.
- Livelock, belirli bir sistemde izin verilen toplam işlem sayısının, işlem tablosundaki toplam giriş sayısı ile tanımlanması gerektiğinde oluşur.
- Kilitlenme, işletim sisteminde herhangi bir işlem bekleme durumuna girdiğinde ortaya çıkan bir durumdur, çünkü başka bir bekleme işlemi talep edilen kaynağı tutmaktadır.
- Gerçek dünyadaki bir örnek, yalnızca bir yöne giden trafiktir.
- Livelock'a bir örnek, bir koridorda yüz yüze karşılaşan ve her ikisi de diğerinin geçmesine izin vermek için kenara çekilen iki kişi olabilir.
- Açlık, tüm düşük öncelikli süreçlerin engellendiği ve yüksek öncelikli süreçlerin ilerlediği bir durumdur.