Kilitlenme Operating Sistemi: Döngüsel Bekleme Nedir (Örnekler)
⚡ Akıllı Özet
İşletim sisteminde kilitlenme, bir dizi işlemin her birinin bir kaynağı elinde tutması ve farklı bir işlemin elinde tuttuğu başka bir kaynağı beklemesi nedeniyle bloke olması ve hiçbir işlemin ilerleyemediği dairesel bir zincir oluşturması durumunda ortaya çıkar.

Deadlock Nedir?
çıkmaz bir yerde meydana gelen bir durumdur. işletim sistemi Bir işlem, başka bir bekleyen işlemin talep edilen kaynağı elinde tutması nedeniyle bekleme durumuna girdiğinde kilitlenme meydana gelir. Kilitlenme, çoklu işlemde yaygın bir sorundur; burada birkaç işlem, yazılım kilidi veya yumuşak kilit olarak bilinen, karşılıklı olarak birbirini dışlayan belirli bir kaynak türünü paylaşır.
Bir kilitlenme meydana geldiğinde, ilgili süreçlerin hiçbiri devam edemez, bu nedenle işletim sistemi müdahale edene kadar etkilenen çalışma durur.
Kilitlenme Örneği
- Gerçek hayattan bir örnek olarak, trafiğin yalnızca tek yönde akmasını gösterebiliriz.
- Burada köprü bir kaynak olarak kabul edilir.
- Dolayısıyla, bir kilitlenme meydana geldiğinde, araçlardan biri geri adım atarak (kaynakları önceden kullanarak ve geri alarak) sorun çözülebilir.
- Kilitlenme durumu oluşması durumunda birkaç aracın geri çekilmesi gerekebilir.
- Dolayısıyla açlıktan ölmek mümkündür.
Çıkmaza örnek
Dairesel bekleme nedir?
Bir işlem, ikinci bir işlemin elinde bulunan bir kaynağı beklerken, o işlem de üçüncü bir işlemin elinde bulunan bir kaynağı bekler ve bu böyle devam eder. Son işlem, ilk işlemin elinde bulunan bir kaynağı bekleyene kadar bu süreç sürer. Bu, dairesel bir zincir oluşturur.
Örneğin, A süreci A kaynağını talep ederken B kaynağına tahsis ediliyor. Aynı şekilde, B süreci B kaynağını talep ederken A kaynağına tahsis ediliyor. Bu, döngüsel bir bekleme döngüsü oluşturuyor.
Döngüsel bekleme örneği
Örneğin, bir bilgisayarda üç USB sürücü ve üç işlem olduğunu varsayalım. Bu üç işlemin her biri USB sürücülerden birini kullanıyor. Dolayısıyla, her işlem başka bir sürücü istediğinde, her biri hala kullanımda olan bir USB sürücünün serbest bırakılmasını beklediği için üç işlem de kilitlenme durumuna girer. Bu da döngüsel bir zincire yol açar.
Döngüsel bekleme örneği
İşletim Sisteminde Kilitlenme Algılama
Kaynak zamanlayıcı, kilitlenme durumunu tespit edebilir. Kaynak zamanlayıcı, işletim sisteminin kaynakları düzenli tutmasına yardımcı olur. tracFarklı süreçlere tahsis edilen tüm kaynakların k'sı. Bir kilitlenme tespit edildiğinde, kaynakların öncelikli olarak kullanılması, bir sürecin geri alınması veya kilitlenmiş süreçlerden bir veya daha fazlasının sonlandırılması yoluyla çözülebilir.
İşletim Sisteminde Kilitlenme Önleme
Bir kilitlenmenin oluşmasını önlemek önemlidir. Sistem, kilitlenmeye yol açmadığından emin olmak için her işlemi yürütülmeden önce kontrol eder. Gelecekte kilitlenmeye neden olabilecek küçük bir işlemin bile yürütülmesine asla izin verilmez.
Çıkmaz önleme, gerekli dört koşuldan en az birinin sağlanamamasını garanti altına alan bir dizi yöntemdir.
Ön Alım Yok
Bir kaynak, ancak o kaynağı elinde bulunduran süreç görevini tamamladıktan sonra, o süreç tarafından gönüllü olarak serbest bırakılabilir.
- Eğer elinde bazı kaynaklar bulunan bir işlem, kendisine hemen tahsis edilemeyen başka bir kaynak talep ederse, elindeki tüm kaynaklar serbest bırakılır.
- Öncelik verilen kaynaklar, işlemin beklediği kaynaklar listesine eklenir.
- Süreç, ancak hem eski kaynaklarını hem de talep ettiği yeni kaynakları geri kazanabildiğinde yeniden başlatılır.
Karşılıklı dışlama
Mutual Exclusion, Mutex'in tam açılımıdır. Özel bir ikili sistem türüdür. semafor Paylaşılan bir kaynağa erişimi kontrol etmek için kullanılır. Uzun süreli öncelik tersine çevirme sorunlarını önlemek için bir öncelik devralma mekanizması içerir ve daha yüksek öncelikli görevleri mümkün olan en kısa süre boyunca bloke eder.
Salt okunur dosyalar gibi paylaşılan kaynaklar asla kilitlenmelere yol açmaz, ancak yazıcılar ve teyp sürücüleri gibi kaynaklara tek bir işlemin özel erişimi gerekir.
Tut ve Bekle
Bu durumda, süreçlerin bir veya daha fazla kaynağı aynı anda beklerken tutması engellenmelidir.
Dairesel Bekleme
Bu yöntem, tüm kaynak türlerinin tam bir sıralamasını zorunlu kılar. Döngüsel bekleme önleme ayrıca, her işlemin kaynakları artan bir numaralandırma sırasına göre talep etmesini gerektirir.
Kilitlenmeden Kaçınma Algorithms
Kilitlenme meydana geldikten sonra harekete geçmek yerine, kilitlenmeyi önlemek daha iyidir. Önleme, kaynakların nasıl kullanılacağı gibi ek bilgilere ihtiyaç duyar. Kilitlenme önleme, her sürecin ihtiyaç duyabileceği her türden maksimum kaynak sayısını beyan ettiği kullanışlı bir modeldir.
Kaçınma Algorithms
Kilitlenme önleme algoritması, döngüsel bekleme durumunun asla oluşmaması için kaynak tahsis durumunu dinamik olarak değerlendirir.
Bir kaynak türünün tek bir örneği için:
- Kaynak tahsis grafiği kullanın.
- Grafikteki bir döngü, kilitlenmenin oluşması için gerekli ve yeterlidir.
Bir kaynak türünün birden fazla örneği için:
- Bir döngü, kilitlenmenin oluşması için gerekli ancak yeterli değildir.
- Kullan Bankacı algoritması.
Açlık ve Kilitlenme Arasındaki Fark
İşte kilitlenme ve açlık arasındaki bazı önemli farklar:
| çıkmaz | Açlık |
|---|---|
| İşlemlerden birinin bloke olması durumunda kilitlenme durumu ortaya çıkar. | Açlık durumu, yüksek öncelikli süreçler çalışırken düşük öncelikli tüm süreçlerin bloke olması durumudur. |
| Çıkmaz sonsuz bir süreçtir. | Açlık uzun bir bekleyiş ama sonsuz bir süreç değil. |
| Her çıkmazda mutlaka açlık vardır. | Her kıtlık mutlaka bir çıkmaz anlamına gelmez. |
| Karşılıklı dışlama, bekleme ve tutma, öncelik tanımama ve döngüsel bekleme durumlarının aynı anda meydana gelmesiyle kilitlenme oluşur. | Bu durum, önceliklerin kontrolsüz belirlenmesi ve kaynakların kötü yönetimi nedeniyle ortaya çıkar. |
Deadlock'un Avantajları
İşte kilitlenmeyi giderme yöntemini kullanmanın avantajları:
- Bu durum, tek seferlik yoğun bir faaliyet gerçekleştiren süreçler için iyi sonuç verir.
- Çıkmaz durumunda önceliklendirmeye gerek yoktur.
- Durumu kolayca kaydedilebilen ve geri yüklenebilen kaynaklar için uygulandığında kullanışlı bir yöntemdir.
- Derleme zamanı kontrolleri yoluyla uygulanması mümkündür.
- Sistem tasarımında sorun çözüldüğü için çalışma zamanı hesaplamasına gerek yoktur.
Deadlock'un Dezavantajları
İşte kilitlenme yönetimi yönteminin dezavantajları:
- Bu durum, sürecin başlatılmasını geciktirir.
- Süreçler, gelecekteki kaynak ihtiyaçlarını önceden bilmelidir.
- Gereğinden çok daha sık önceden müdahale ediyor.
- Artımlı kaynak taleplerine izin vermez.
- Bu durum, önceliklendirme kayıplarına yol açabilir.


