Ladeni multithreadove aplikace
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pondělí Leden 24 21:29:33 CET 2000
On 23 Jan 2000, Mikulas Patocka wrote:
> No a co kdyz velky proces, ktery bude mit namapovano treba 512M
> virtualni pameti bude chtit pustit maly podproces? Tak se pri fork()
> 512k dat z page table zkopiruje do noveho procesu a vzapeti se zahodi
> pri exec(). To kopirovani pagetable je uplne zbytecne.
Pokud to ma byt priklad, kdy je vhodne uzit multithreading...
Uz jen to, ze s procesem, ktery je velky pul giga (a neni to simulace
vybuchu atomove bomby nebo celopodnikovy databazovy server) je neco
spatne. :)
> Pri threadech vsak k zadnemu kopirovani page tablu ani k cow
> nedochazi. Proto budou thready porad rychlejsi, nez dobre udelane
> forkovani.
To nemusi byt uplne pravda (napriklad kvuli synchronizaci), ale jsou i
jina kriteria nez rychlost: treba robustnost.
> Pokud to nemelo stranky, tak jediny mozny zpusob implementace forku
> byl zkopirovat fyzicky celou pamet procesu - a to je hrozne pomale.
Takhle to kupodivu za davnych casu fungovalo a jeste obcas funguje
(cygwin: tam to totiz lepe udelat nelze, at zije nova technologie).
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux