Hlavní navigace

Názor ke zprávičce Steve Ballmer: Linux je větší hrozba než Apple od Lael Ophir - Preemptivní kernel není potřeba? Aha. Tak proč se...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 28. 2. 2009 8:49

    Lael Ophir (neregistrovaný)
    Preemptivní kernel není potřeba? Aha. Tak proč se autoři kernelu dlouhá léta (neúspěšně) snaží o jeho implementaci? Že by kvůli latency? ;)

    Jenže on threading potřebuje. Apache, Oracle a další dnes používají threading i na Linuxu. Použitelná implementace threadingu přitom přišla až s kernelem 2.6, jako dodělávka. Fork byl pěkný model možná tak v sedmdesátých letech.

    Nejde o cache. Jde o způsob obsluhy zařízení, interruptů.

    Ale kdepak. OOM Killer je implementovaný proto, že Linux má obrovskou spotřebu paměti. On totiž fork vede k tomu, že stránky nového procesu jsou značeny jako copy-on-write. Kernel tedy musí mít paměť, kterou by případně přidělil, kdyby aplikace do daných stránek opravdu zapsala. A protože té paměti má málo, tak autoři memory managementu řekli "no tak budeme o paměti lhát, a když dojde na lámání chleba, tak vylosujeme nějaký proces, a odstřelíme ho". To vede ke skvělé situaci, kdy aplikace požádá o paměť, dostane jí přidělenou, a když se do ní snaží zapsat, tak kernel prostě odstřelí nějaký proces, který se mu znelíbil. Dalším zábavným side effectem je to, že autoři apikací neošetřují nedostatek paměti, protože vědí, že to stejně skončí OOM Killerem, a ne selháním alokace. Nakonec proč se starat o nedostatek paměti - kompiluje to, a dokonce to nějak funguje ;)