Kilitlenme ve Açlık Arasındaki Fark

İçindekiler:

Kilitlenme ve Açlık Arasındaki Fark
Kilitlenme ve Açlık Arasındaki Fark

Video: Kilitlenme ve Açlık Arasındaki Fark

Video: Kilitlenme ve Açlık Arasındaki Fark
Video: Sosyal Girişimcilik Ticari Girişimcilik Arasındaki Farklar Nelerdir? 2024, Aralık
Anonim

Çıtışmaya Karşı Açlık

Kilitlenme ve açlık arasındaki temel fark, aralarındaki sebep-sonuç ilişkisidir; açlığa neden olan kilitlenmedir. Kilitlenme ve açlık arasındaki bir başka ilginç fark, kilitlenmenin bir sorun olması ve açlığın bazen bir çıkmazdan kurtulmaya yardımcı olabilmesidir. Bilgisayar dünyasında, bir bilgisayar programı yazarken, programa gereken hizmeti yerine getirmek için aynı anda birbiri ardına çalışacak birden fazla işlem/iş parçacığı olacaktır. Bu nedenle, adil bir sisteme sahip olmak için programcı, tüm süreçlerin/iş parçacıklarının ihtiyaç duydukları kaynakları alacağından veya bu kaynaklara yeterli erişim sağlayacağından emin olmalıdır. Değilse, bir kilitlenme olacak ve daha sonra açlığa yol açacaktır. Genel olarak, adil bir sistem herhangi bir kilitlenme veya açlık içermez. Kilitlenmeler ve açlıklar, çoğunlukla çok sayıda iş parçacığı sınırlı kaynaklar için rekabet ettiğinde meydana gelir.

Deadlock nedir?

Bir kilitlenme, iki iş parçacığı veya işlem birbirinin görevi tamamlamasını beklediğinde oluşan bir durumdur. Sadece telefonu kapatacaklar ama asla durmayacaklar veya görevlerini bitirecekler. Bilgisayar biliminde kilitlenmeler her yerde görülebilir. Bir işlem veritabanında, her biri kendi işlemi içindeki iki işlem aynı iki bilgi satırını ancak ters sırada güncellediğinde, bir kilitlenmeye neden olur. Eşzamanlı programlamada, iki rakip eylem birbirinin ilerlemesini beklediğinde bir kilitlenme meydana gelebilir. Telekomünikasyon sistemlerinde, sinyallerin kaybolması veya bozulması nedeniyle bir kilitlenme meydana gelebilir.

Şu anda kilitlenme, çok işlemcili sistemlerdeki ve paralel hesaplamadaki ana sorunlardan biridir. Çözüm olarak, donanımın yanı sıra yazılım için de süreç senkronizasyonu adı verilen bir kilitleme sistemi uygulanmaktadır.

Kilitlenme ve Açlık Arasındaki Fark
Kilitlenme ve Açlık Arasındaki Fark
Kilitlenme ve Açlık Arasındaki Fark
Kilitlenme ve Açlık Arasındaki Fark

Açlık nedir?

Tıp bilimi sözlüğüne göre açlık, yaşamın sürdürülmesi için gerekli olan besinlerin şiddetli veya tamamen eksikliğinin bir sonucudur. Benzer şekilde, bilgisayar biliminde açlık, birden fazla iş parçacığı veya işlem aynı kaynağı beklediğinde karşılaşılan ve buna kilitlenme adı verilen bir sorundur.

Bir kilitlenmeden çıkmak için, diğer iş parçacığı veya işlemin kaynağı kullanabilmesi için işlemlerden veya iş parçacıklarından birinin vazgeçmesi veya geri alması gerekir. Bu sürekli olarak gerçekleşirse ve aynı işlem veya iş parçacığı, diğer işlemlerin veya iş parçacıklarının kaynağı kullanmasına izin verirken her seferinde vazgeçmek veya geri almak zorunda kalırsa, o zaman geri alınan seçilen işlem veya iş parçacığı açlık adı verilen bir duruma uğrayacaktır. Bu nedenle, bir çıkmazdan çıkmak için açlık çözümlerden biridir. Bu nedenle, bazen açlığa bir tür canlı kilit denir. Çok sayıda yüksek öncelikli işlem veya iş parçacığı olduğunda, daha düşük öncelikli bir işlem veya iş parçacığı her zaman bir kilitlenme içinde aç kalır.

Kaynaklara aç kalmak ve CPU'ya aç kalmak gibi birçok açlık olabilir. Açlıkla ilgili birçok yaygın örnek vardır. Bunlar Okur-yazar problemi ve daha meşhur olan yemek filozoflarının problemidir. Yuvarlak bir masada spagetti kaseleriyle oturan beş sessiz filozof var. Her bitişik filozof çifti arasına çatallar yerleştirilir. Her filozof dönüşümlü olarak düşünmeli ve yemek yemelidir. Ancak bir filozof, yalnızca hem sol hem de sağ çatalı olduğunda spagetti yiyebilir.

Kilitlenme vs Açlık
Kilitlenme vs Açlık
Kilitlenme vs Açlık
Kilitlenme vs Açlık

"Yemek Filozofları"

Deadlock ve Starvation arasındaki fark nedir?

Süreç:

• Kilitlenme durumunda, iki iş parçacığı veya işlem birbirini bekler ve ikisi de ilerlemez.

• Açlık durumunda, iki veya daha fazla iş parçacığı veya işlem aynı kaynağı beklediğinde, biri geri döner ve önce diğerlerinin kaynağı kullanmasına izin verir ve ardından aç kalan iş parçacığı veya işlemi yeniden deneyecektir. Bu nedenle, tüm iş parçacıkları veya işlemler nasılsa ileriye doğru ilerleyecektir.

Geri Alma:

• Bir kilitlenmede, hem yüksek öncelikli iş parçacıkları/işlemler hem de düşük öncelikli iş parçacıkları/işlemler birbirini sonsuza kadar bekleyecektir. Asla bitmez.

• Ancak açlık durumunda, düşük öncelikli olanlar bekleyecek veya geri dönecek, ancak yüksek öncelikli olanlar devam edecek.

Bekleme veya Kilitleme:

• Kilitlenme döngüsel bir bekleyiştir.

• Açlık bir tür canlı kilittir ve bazen çıkmazdan kurtulmaya yardımcı olur.

Kilitlenme ve Açlık:

• Bir kilitlenme açlığa neden olur, ancak açlık bir kilitlenmeye neden olmaz.

Nedenler:

• Karşılıklı dışlama, bekletme ve bekleme, önceden alma veya döngüsel bekleme nedeniyle bir kilitlenme oluşacak.

• Açlık, kaynakların kıtlığı, kaynakların kontrolsüz yönetimi ve süreç öncelikleri nedeniyle oluşur.

Özet:

Çıtışmaya Karşı Açlık

Deadlock ve açlıklar, donanımın uygulanmasının yanı sıra programlama sırasında meydana gelen veri yarışları ve yarış koşulları nedeniyle ortaya çıkan sorunlardan bazılarıdır. Bir kilitlenmede, iki iş parçacığı yürütmeden sonsuza kadar birbirini beklerken, açlıkta bir iş parçacığı geri döner ve diğer iş parçacığının kaynakları kullanmasına izin verir. Bir kilitlenme açlığa neden olurken, açlık bir iş parçacığının bir çıkmazdan çıkmasına yardımcı olur.

Önerilen: