Hlavní navigace

Názor ke zprávičce Intel pracuje na pětiúrovňové tabulce stránek od Milan Keršláger - 0) když je cluster = page, není co...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 17. 12. 2016 13:53

    Milan Keršláger

    0) když je cluster = page, není co řešit, což je výhoda
    1) Když je cluster < page, pak musíte mít pomocnou datovou strukturu s evidencí. Přístupy k ní se musí zamykat (režie), konkurenční přístup hrozí deadlockem (netriviální odhalení). Jednoznačně se to nevyplatí.
    2) Když je cluster > page, pak musí jádro alokovat souvislý úsek, což pro jádro není problém. Ale může s tím nastat problém, když budou volné fyzické stránky fragmentované, protože jádro to bude muset řešit. Bude potřeba dodatečná evidence dlouhých úseků, což jsou zase problémy.
    3) ALE! Co když v případě 2) budu mít alokační jednotku stejnou, jakou má blok na zařízení? U klasického (moderního) HDD je (adresovatelný) blok 4KiB (dříve 512 bajtů). Jenže disk čte najednou obvykle 128 KiB (když už je hlava na místě). Pokud si řeknu, že mi o čtení jde, bude pro mne výhodné udělat si alokační jednotku takhle velkou. Ovšem vzniká vnitřní fragmentace, problém spojité alokace, mírně složitější evidence. Zvětší se vliv zarovnání (resp. případné chyby).
    4) Mohu-li použít jinou velikost page, pak bych měl řešit body 1 až 3 úplně stejně s ohledem na možný tradeoff pro mé nasazení (workload). Vznikne mi však problém vnitřní fragmentace, což nemusím řešit, pokud provozuji jen vlastní aplikace (výpočetní cluster) nebo jednu aplikaci (databáze).

    Jádro samozřejmě takové potíže řešit umí. Ale je otázka, zda se mi jako poučenému správci chce špinit si ruce, když nemusím. Obávám se však, že už jsme totálně mimo záběr této zprávičky.