Deadlock ve Açlık Arasındaki Fark | Deadlock vs Starvation

Anonim

Deadlock vs Starvation

Kilitlenme ve açlık arasındaki temel fark, aralarındaki sebep sonuç ilişkisidir; açlığa neden olan kilit bir durumdur. Kilitlenme ve açlık arasında bir başka ilginç fark açlığın bir kilitlenme olduğu, açlığın bazen de bir çıkmazdan kurtulmaya yardımcı olabileceğidir. Bilgisayar dünyasında, bir bilgisayar programı yazarken, programa gereken hizmeti yerine getirmek için birbiri ardına çalışan 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ı kaynaklara ulaşmasını ya da yeterli kaynaktan erişmesini sağlamalıdır. Değilse, bir kilitlenme olur ve daha sonra bir açlığa yol açacaktır. Genellikle, adil bir sistem herhangi bir kilitlenme veya açlık içermemektedir. Kilitlenme ve açlık, çoğunlukla çok sayıda konu sınırlı kaynaklar için rekabet ederken ortaya çıkacaktır.

Deadlock nedir?

Bir kilitlenme , iki iş parçacığı veya işlemin birbirlerinin görevi tamamlamasını beklemesi durumunda ortaya çıkar. Sadece kapatacaklar, ancak görevlerini hiçbir zaman durdurmaz veya bitirirler. Bilgisayar bilimlerinde, kilit noktalar her yerde görülebilir. Bir işlem veritabanında, her biri kendi işleminde iki işlem aynı iki satırı güncelleştirdiğinde ancak bunun tersi sırada bir kilitlenmeye neden olur. Eşzamanlı programlamada, birbiriyle yarışan iki eylem birbirlerine ilerlemelerini beklerken bir kilitlenme meydana gelebilir. Telekomünikasyon sistemlerinde, sinyallerin kaybolması veya bozulması nedeniyle bir kilitlenme olabilir.

Şu anda, kilitlenme çoklu işleme sistemlerinde ve paralel hesaplamadaki temel sorunlardan biridir. Bir çözüm olarak yazılımın yanı sıra donanım için de işlem senkronizasyonu olan bir kilitleme sistemi uygulanmaktadır.

Açlık nedir?

Tıbbî bilim sözlüğünden açlık, hayatı idame ettirmek için gereken besin eksikliği veya ağırlığının bir sonucudur. Benzer şekilde, bilgisayar bilimlerinde açlık, birden fazla iş parçacığı veya işlemin aynı kaynağa beklediğinde ( bir kilitlenme olarak adlandırılır) ile karşılaşılan bir sorundur.

Bir kilitlenme durumundan kurtulmak için, süreçlerden veya iş parçacıklarından biri, diğer iş parçacıklarının veya işlemi kaynak kullanabilmesi için vazgeçmeli veya geri almalıdır. Sürekli devam ederse ve aynı işlemi veya ipliği, diğer işlemleri veya konuları kaynak kullanmasına izin verirken her seferinde vazgeçmek veya geri sarmak zorunda kalırsa, geri çekilen seçili işlem veya iplik, açlık durumu denilen bir duruma geçecektir.Bu nedenle, bir kilitlenme durumundan kurtulmak için açlık, çözümlerden biridir . Bu nedenle, bazen açlık, bir çeşit yaşam alanı olarak adlandırılır. Birçok yüksek önceliğe sahip işlem veya iş parçacığı olduğunda, daha düşük bir öncelikli işlem veya iş parçacığı her zaman bir açmaza açlıktan beslenecektir.

CPU üzerinde aç olmayan kaynakları ve açlıktan olmak gibi birçok açlık olabilir. Açlık konusunda birçok yaygın örnek var. Okuyucu-yazarlar sorunu ve yemek felsefecileri sorunu daha meşhurdurlar. Yuvarlak bir masada oturan beş makaralı filozof var, kase spagetti. Çatallar, bitişik filozofların her bir çifti arasına yerleştirilir. Her filozof değişmeli olarak düşünmeli ve yemelidir. Bununla birlikte, bir filozof yalnızca sol ve sağ çatalları olduğunda spagetti yiyebilir.

"Yemek Felsefecileri"

Deadlock ve Starvation arasındaki fark nedir?

• İşlem:

• Kilitlenmeyle, iki ilmek veya süreçler birbirlerini bekleyecek ve her ikisi de ileri gitmeyeceklerdir.

• Açlık durumunda, iki ya da daha fazla iş parçacığı ya da süreçler aynı kaynağı beklediğinde geri dönecek ve başkalarının önce kaynağı kullanmasına izin verilecek ve aç kalan iş parçacığı ya da süreç yeniden denenecektir. Bu nedenle, tüm iş parçacıkları veya süreçleri her ne kadar ilerlemeye devam edecektir.

• Rolling Back:

• Bir kilitlenme durumunda, hem yüksek öncelikli konular / süreçler hem de düşük öncelikli konular / süreçler birbirlerini sonsuza kadar bekleyecektir. Asla bitmez.

• Ancak, açlıktan ötürü, düşük öncelikli olanlar bekleyecek veya geri dönecek, ancak öncelikli olanları devam edecektir.

• Bekleyen veya Kilit:

• Kilitlenme dairesel bir bekleme şeklindedir.

• Bir açlık, bir çeşit yaşam alanıdır ve bazen kilitlenmeden kurtulmaya yardımcı olur.

• Deadlock and Starvation:

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

• Sebepler:

• Karşılıklı dışlanma, bekletme ve bekleme, önleme veya dairesel bekleme olmaması nedeniyle bir kilitlenme meydana gelecektir.

• Açlık, kaynakların azlığı, kontrol edilemeyen kaynak yönetimi ve süreç önceliklerinden kaynaklanmaktadır.

Özet:

Deadlock vs. Starvation

Deadlock ve aç bırakmalar, programlama sırasında ve donanımın uygulanmasında ortaya çıkan veri yarışları ve yarış koşulları nedeniyle ortaya çıkan sorunların bazılarıdır. Bir kilitlenme durumunda, iki iş parçacığı çalıştırılmadan birbirlerini beklemektedir, bir açlıkta bir iş parçacığı geri sarılır 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 kilitlenmeden kurtulmasına yardımcı olur.

Görüntüler Nezaket:

  1. Bilgisayar, ABD, Menlo Park'tan Steve Jurvetson tarafından (CC BY 2. 0)
  2. Bdesham'ın "Yemek Felsefecileri" (CC BY-SA 3. 0)