Názor k článku
Nová implementace NetBSD používá mikrokernel MINIX od Lael Ophir - Problematický je i vyšší počet procesů, kterými musí...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 6. 2015 3:47

    Lael Ophir (neregistrovaný)

    Problematický je i vyšší počet procesů, kterými musí volání projít. Každý proces má vlastní mapování virtuálního adresního prostoru na fyzický, a s každým context switchem je potřeba to mapování změnit, což má poměrně velkou režii.

    Volání klasického kernelu sice vyžaduje relativně drahý syscall, ale nevyžaduje (ve většině případů) context switch. Díky tomu kernel může hrábnout do paměti aplikace pro vstupní parametry, a předat do ní nakonec výstupní parametry. U mikrokernelů si se servery povídáte pomocí zpráv, což znamená data kopírovat.

    Jinými slovy pokud je například operace nad FS zpracovávána v rámci procesů (serverů) VFS, FS, driveru, memory manageru atd., se všemi těmi context switchi, zprávami od/pro aplikaci i mezi servery, a celé to propadne na nevím kolik volání mikrokernelu (tj. syscallů), tak to z hlediska výkonu dopadne fakt mizerně. Nakonec to je důvod, proč třeba Windows NT běží servery převážně v kernelu v rámci jednoho adresního prostoru.