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..
