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