bana şunun mantığını anlatabilecek biri var mı?

i.imgur.com

diyelim ki matrisler şöyle verildi. deadlock olup olmayacağına nasıl karar veriyoruz?

 

elinde kalan kaynaklara bakiyorsun: 2 1 0 0
R matrisinde en alttaki prosesin ihtiyacini karsilayabilirsin bununla.. veriyorsun ona ve isi bitince elindekileri de geri veriyor sana..

yani elinde kalan kaynaklar su hale geliyor: 2 2 2 0
elinde 4. kaynaktan kalmadigi icin ilk prosesin ihtiyacini karsilayamiyorsun o yuzden ikinciye veriyorsun ne istiyorsa ve isi bitince geri aliyorsun..

geri aldiktan sonra elindeki kaynaklar: 4 2 2 1
ilkine veriyorsun ne istiyorsa ve tum prosesler tamamlanabiliyor boylece..

deadlock denen durum ise elinde kalan kaynaklarla bu anlattigim sekilde cozemiyorsan gerceklesiyor.. mesela ilk adim icin 3. prosesin istek durumu 2 1 0 0 yerine herhangi bir kaynaktan daha fazla olsaydi deadlock gerceklesecekti.. yani kaynak alinmis prosesler tarafindan ama proses sonlanmadan geri alamiyorsun kaynaklari.. o yuzden hicbirinin istegini gerceklestiremiyorsun elinde kaynak sayisi yeterli olmadigindan ve kilitleniyor sistem..

buzzlightyear
1

mobil görünümden çık