No, v zdajsnjem casu (= vsaj zadnjih 5 let, odkar je vecjedrnik stvar, ki jo kupis enako kot zemljico) je to silno nesprejemljivo. Ti imas OS, ki ima absolutno kontrolo nad dogajanjem (nema vise preemptive multitaskinga). Kljub temu se podrazumeva, da ko OS zeli oddati neke komande, to gre skozi doloceno vrsto (message queue), za obdelavo katere se ne prekinja periodicno vseh procesov, ampak odda vsak proces nazaj kontrolo OSu, ali pa izvaja svoje delo z najmanj porabljenimi cikli (= brez vmesavanja), dokler pac lahko. Seveda so za tem mehanizmi, ki preprecijo, da bi nek proces kar za stalno ugrabil CPU in poganjal samo sam sebe na njem (v tem je smisel preemptive multitaskinga, torej da OS vnaprej doloci kako debelo rezino lahko najvec nek proces dobi). Torej: cetudi je butasto napisan, lahko CPU ugrabi za najvec tolikointoliko casa.
To vseeno ne zaobide dejstva, da je zadeva slabo napisana. Program, ki je normalno "vzgojen", se bo obnasal "bontonu" primerno in bo redno - tudi ce ima res silno mnogo dela, kot je npr. apliciranje kaksnega filtra na zelo obsezno sliko ali pa obddevala videa ali karkoli ze - vsake toliko casa prostovoljno predal kontrolo OSu da ta lahko sprovede tiste stvari, ki so se mu nabrale v vrsti dogodkov (npr. tvoj pritisk na Minimize ali pa tvoj pritisk na Win+D ....). Ko OS dobi nazaj kontrolo, bo naredil tisto, kar mu dogodki v vrsti pravijo, in to ti vidis kot odziven sistem. Ironicno ob tem je, da se dogodki (kot je tvoj pritisk na Minimize itd.) evidentirajo prakticno takoj, ko jih naredis, saj so event-driven (pade IRQ ko prileti podatek od miske, interrupt handler procesira dogodek in ga uvrsti v message queue), le da se izvedejo ni vasa tako pogosto, saj OS pricakuje, da se ukvarja z normalnimi programi in da bo vsake toliko dobil priloznost da postori svoje delo. Samo bedno napisani programi mu to odrekajo, a vseeno si na vsake toliko casa vzame pravico (ne glede na odziv programa) in vseeno preprocesira dogodke. Slednje ti vidis najveckrat takrat, ko se nek proces dokoncno obesi in traja par sekund da dobis tisto okno o koncanju procesa z End Now:
V tem primeru OS pride na vrsto "na silo" (preko necesa, kar je ekvivalent watchdoga) in takrat (in ob vsaki naslednji invokaciji) lahko pocisti z vso golaznijo, ki ni dovolj kulturna.
Le zares
debilno napisani programi teh zadev ne pocnejo in pri takih takoj vidis da narase uporabva CPUja ali na tak procent, ki kaze na eno zapolnjeno nit (50% pri dvojedrniku, 25% pri stirijedrniku, itd.) in sistem postane neodziven. To ni nic drugega kot zgolj slabo programiranje ... in ja, nekatere "velike" programske hise to pocnejo kar naprej, da lahko svoje zmazke prodajajo se v novejsih iteracijah (= da izgleda kot da so zares nekaj, ka bi clovek potreboval, ceprav samo popravljajo neumnosti, ki so bile nekdaj storjene).
Kaj ima pri tem vecjedrnik iz zacetka tega sporocila ? Lazje je na njem realizirati, da ima ena nit (denimo OS) tolikointoliko ciklov sam zase. Ce se en proces obesi, je se vedno na drugem jedru mir, zato izgleda v takem primeru dvojedrnik precej bolj odziven kot enojedrnik (tudi ce bi imel enojedrnik z vec kot 2x visjo zmogljivostjo od vsakega jedra dvojedrnika).
Tako je to. Ce rabis se kaksno pojasnilo, vprasaj.