Ölümcül Kilitlenme (Deadlocks) Nedir?

 

Eşzamanlı hesaplamada, bir kilitlenme bir grubun her üyesinin başka bir üyenin bir mesaj göndermesi veya daha yaygın olarak bir kilit açma gibi harekete geçmesini beklediği bir durumdur. Kilitlenme, çoklu işlem sistemlerinde, paralel işlemlerde ve yazılım-donanım kilitlerinin paylaşılan kaynakları işlemek ve işlem senkronizasyonunu gerçekleştirmek için kullanıldığı dağıtılmış sistemlerde yaygın bir sorundur.

Bir işletim sisteminde, bir işlem ve ya iş parçacığı bir bekleme durumuna girdiğinde bir kilitlenme oluşur, çünkü istenen bir sistem kaynağı başka bir bekleme işlemi tarafından tutulur, bu da başka bir bekleme işleminin beklediği başka bir kaynağı bekler. Bir süreç süresiz olarak durumunu değiştiremezse, talep ettiği kaynaklar başka bir bekleme süreci tarafından kullanıldığından, sistemin bir çıkmazda olduğu söylenir. Buna ölümcül kilitlenme denir.

Bir işletim sisteminde, kilitlenmeler esas olarak kaynak çekişmesi yerine kayıp ya da bozulmuş sinyallerden kaynaklanır.

 
Ölümcül Kilitlenmeyi Önleme

Karşılıklı Dışlama:

Paylaşılan kaynaklar olması durumunda bu koşulun
engellenmesi mümkün değil.

Tut ve Bekle:

Kaynak isteyen prosesin elinde başka kaynak tutmuyor
olmasının sağlanması.
Proseslerin tüm kaynak isteklerini baştan belirtmeleri ve tüm
istekleri birden karşılanana kadar proseslerin bekletilmesi
yaklaşımı ile bu koşul engellenebilir.

Etkin değil:

Proses tüm istekleri karşılanana kadar çok bekleyebilir, halbuki bir kısım kaynağını ele geçirerek işinin bir bölümünü bitirebilir.
Bir prosese atanan kaynakların bir kısmı bir süre kullanılmadan boş bekleyebilir.
Proses tüm kaynak ihtiyaçlarını baştan bilemeyebilir.

 

Diğer yöntem:

Bir prosesin yeni bir kaynak isteğinde bulunduğunda, kaynak ataması yapılmadan önce elindeki tüm kaynakları bırakmasının beklenmesi:

 

– kaynak kullanımı etkin değil
– tutarlılık sorunu olabilir
 
Her iki yöntemde de açlık (starvation) olası.
About This Author

WittyCommerce şirketinde Java Developer olarak çalışıyorum. Bildiğim, öğrendiğim, gezip gördüğüm şeyleri buradan paylaşıyorum. Bilgi paylaştıkça çoğalır.

Post A Reply