fork() a thready (was Re: Linux vs. NT III. (o 266% r ychlej±í, NT))
Zbynek Vyskovsky
rat na atrey.karlin.mff.cuni.cz
Pondělí Červen 28 15:54:32 CEST 1999
On Mon, Jun 28, 1999 at 12:10:44PM +0100, Petr Novotny wrote:
> > Jeneze pokud je fork na Linuxu temer to same to pthread_begin, tak je
> > potom jedno, jestli je server multithreadovany, nebo neni.
>
> No jo, to je.
Dle meho nazoru zdaleka ne, je o dost "levnejsi" - krome duvodu uvedenych
nize jeste jedna podstatna vec pri vytvareni - nemusi se vsechny stranky
mapovat read-only, vytvaret nove strankovaci tabulky apod.
> Ted se nezlobte, budu-li rikat nesmysly, ale takhle jsem to slysel:
> Kdyz Intel procesor prepina kontext mezi procesy, musi toho
Konkretne Linux nevyuziva Intelovskych instrukci urcenych k prepinani
procesu, pouze loaduje task-register (jenom to dvoubytove cislo).
> reloadovat vyrazne vice, nez kdyz prepina kontext mezi thready - v
> druhem pripade jen reloaduje obsahy registru a nedela vubec nic s
> pameti. Switch je tedy rychlejsi. Neumim odhadnout, o kolik
> procent se tu jedna. Navic nevim, zda pri context switchi mezi
> procesy neni cast pametove cache invalidovana (meni ci nemeni se
> selektory?).
Selektory se meni, neni vsak treba menit cr3 a nedochazi tedy ke znevalidneni
strankovaci cache. Pri Intelim zpusobu prepinani se meni uplne vsechno.
> Pokud kecam blbosti, hned me zarazte. Rad bych mel argument,
> proc ze jsou thready na WinNT spatne ci nanic :-)
Spatne jsou z toho duvodu, ze nemaji zcela sdilenou pamet. Coz ma na druhe
strane sice vyhody, ale to je vec jina :-)
--
Zbynek Vyskovsky
rat na atrey.karlin.mff.cuni.cz
http://atrey.karlin.mff.cuni.cz/~rat
Další informace o konferenci Linux