şükela:  tümü | bugün
  • sanildiginin aksine tek thread'le deadlock teoride mumkundur. kernel'in acquire ettigi bir lock'u bekleyen thread'i bir interrupt kesip sonra interrupt handler icinde thread'in acquire ettigi lock'u acquire etmeye kalkarsa bir deadlock olabilir elbette.

    boyle bir seyin olma ihtimali dusuk gelebilir zira user/kernel mode lock'lar farkli olacagi gibi, process context icindeki locklarla kernel context lock'lar arasinda da ucurum olacaktir. arbitrary context'e kernel'in user mode'da bir lock'u acquire etmeye calismasi pek beklenmez.

    halbuki user mode'da lock acquire etmek amaciyla yapilan bir yigin api call aslinda arka planda kernel'da locklarla hasir nesir olmayi gerektirebilir. windows'tan ornek vermek gerekirse bir dosya acma islemi ntfs.sys 'in file system structure'lariyla ilgili lock acquire etmesine yol acabilir. o sirada bir storage interrupt gelse, o da bir fs operation'i tamamlasa, fs operation da ntfs.sys'in birazdan bekleyecegi lock'u ustune alip ntfs.sys 'in o sirada acquire ettigi locklardan birini acquire etmeye kalksa al sana deadlock mis gibi deadlock.
  • sozluk anlami olarak (ingilizce) tikanip kalma.
    process management acisindan iki processin karsilikli o an ellerinde tuttuklari resourcelari talep etmesiyle olusan kilitlenme. cogu populer os bu durumdan kurtulmak veya olusmasini engellemek icin extra islem yapmak yerine olaya 'orda bi reset tusu var guzelim, bas bakalim bi nolucak' seklinde yaklasmayi tercih eder.
  • gecen yine os dersinde uyuyorum. meger hoca derse devam etmek icin benim uyanmami bekliyormu$. ben de uyurken kulagim hocada; uyanmak icin hocanin "see you next week" demesini bekliyorum. ben onu beklerken o da beni bekliyor, saatler geciyor ben hala uyanamiyorum, sonra ruya bitiyor uyaniyorum.
  • konunun her türlü detayına kadar işlendiği 3 saatlik dersin sonunda operating systems hocasının "modern işletim sistemlerinde bu sorunun çözümü reset atmaktır" diyerek konuyu özetlemesi beni benden almıştır. (bkz: ne ki bu simdi)
  • windows xp'de gerekli malzemeler:

    sahip olunmayan bir critical section
    bir adet nacizane user mode thread

    önce user mode thread'imizi açarız. sonra önceden sahip olmadığımız critical sectionımızı önümüze koyup leavecriticalsection deriz.
    akabinde sanki aramızda hiçbir şey olmamış gibi yavvaşça entercriticalsection yaparız.

    işte tek thread'de deadlock'unuz servise hazır. sıcak sıcak yiyiniz.

    nedit: o deadlock olmaz derseniz kalp kırarım.
  • deadlock önlenmesi için 4 kural
    1. kaynaklar mutual exclusion* altında kullanılmalı
    2. kaynaklar sıralı bir şekilde alınmalı (bir kaynak alınmadan bir diğeri için istek yapılmamalı)
    3. bir wait-for döngüsü bulunmalı
    4. kaynaklara önceden erişim engellenmeli (preemption)
    şeklinde sıralanır
  • futbolda türkçesi golsüz eşitlik olan terim. john motson abimiz perdeyi açan gol geldiğinde "and the deadlock broken" derdi, ki genelde aynı bu şekilde 0 - 0'lık durum bozulduğunda kullanılan bir kelimedir.
  • (bkz: deadlock/@ssg) ile az once icine girdigim durum.
  • final dönemi vazgeçilmezi operating system konularındandır. bir sürü anlatım şekili vardır. gerek kavşakta sıkışan arabalar gerekse kapıda bekleyen insanlar şeklinde.
    tanım yapacak olursak processlerin kullanmak istedikleri ve ellerinde bulundurdukları resourcelar vardır.(bu başka türlüde adlandırılabilir) bir processin kullanmak istediği resource başka bir processin elindeyse ve o işlemini bitirmemiş ya da hiç başlayamamışsa kilitlenir.
    genelde deadlock olması için döngümüz cycle durumunda olmalıdır. bir diğer koşul hold and waittir. ve tabii ki mutual exclusion olmalı ki olayın tanımıdır bu da.