Kilitlenme (Deadlock)
Yazan : Şadi Evren ŞEKER
İşletim sistemlerinde çeşitli sebeplerle iki işlemin birbirini kilitlemesi durumudur. Benzer bir örnek güncel hayatta da yaşanabilir.
Örneğin Ali kapıdan geçmek için Ahmet’in önce geçmesini şart koşuyor. Benzer şekilde Ahmet de Ali’nin önce geçmesini şart koşuyor. İki kişide karşısındaki önce geçmezse geçmiyor bu durumda iki si de kapıdan sonsuza kadar geçemez ve bu durum ismi kilitlenme (deadlock)’tır.
Bu durum işletim sistemlerinde iki işlem (process) arasında sıkça yaşanır. Örneğin aşağıda semafor (semaphore )kullanılarak senkronize edilmiş iki işlemin kod örneğini inceleyelim:
Process A
{
Wait(B);
....
Signal(A);
}
Process B
{
Wait(A);
....
Signal(B);
}
Yukarıdaki örnekte Process A ve Process B isminde iki işlem bulunuyor. A işlemi B’yi, B işlemi ise A’yı bekliyor. Bu durumda ikisi de aynı anda başlayan bu işlemler kilitlenerek sonsuza kadar birbirini beklerler.
Yukarıdaki örnekte olduğu gibi işlemler arası senkranizasyon bir kilitlenme sebebidir. Ancak tek kilitlenme sebebi bu değildir. Diğer sık rastlanan bir kilitleme sebebi de kaynaklara erişimde yaşanır.
Kaynak ayrımı (resource allocation) sırasında birden fazla işlem birden fazla kaynağa erişiyorsa şöyle bir durum olabilir:
A işlemi X kaynağını kendisine almış ve Y kaynağı için sıra bekliyor olsun
B işlemi ise Y kaynağını kendisine almış ve X kaynağı için sıra bekliyor olsun
Yukarıdaki bu durumda A işlemi, Y kaynağını almadan X kaynağını bırakmayacaktır, benzer şekilde B işlemi de X kaynağına erişmeden Y kaynağını bırakmayacaktır. Dolayısıyla bu iki işlem birbirini kilitlemiş olurlar.
Kilitlenmenin (deadlock) çözülmesi için en kolay ve en etikili yol, programı yazarken kilitlenmeye engel olacak ve kilitlenme içermeyen kod yazmaktır.
« Kıtlık (Starvation) | Playfair Şifrelemesi (Playfair Cipher) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Kilitlenme (Deadlock)' isimli yazı 20 Nov 2008 tarihinde, saat: 07:18 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 702 defa okunmuştur.
Benzer yazıları işletim sistemleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
Bağlantılar
gerçekten yararlı bir site bu. teşekkür ederim bilgileriniz işime fazlasıyla yaradı..