next up previous contents index
Next: Kooperativnost Up: Závěrečné zhodnocení Previous: Závěrečné zhodnocení

Multithreadovost

Threadová architektura PETu se ukázala jako výhodná díky možnosti sdílení globálních dat v rámci kontextu jediného procesu, thread poolu, který omezil vytváření nových threadů na minimum, nutné k obsloužení aktuální zátěže proxy serveru a ``thread specific'' datům, která eliminovala velmi četná volání pro alokaci a dealokaci dočasných paměťových bloků. Ovšem mimo těchto příjemných vlastností threadovosti existují také některé nevýhody, z nichž asi tou nejvýraznější je absence přímé podpory threadů OS, což značně snižuje možnost přenositelnosti kódu na jiné UNIXové platformy, dále také problémy s konkrétní implementací threadů (knihovna pthread využivá pro řízení threadů signály SIGUSR1 a SIGUSR2, což může negativně ovlivnit výkon systému při vysokém množství threadů) a v neposlední řadě také přidělování procesorového času systémovým plánovačem.

Jelikož však cílovým OS PETu byl od počátku Linux, mohli jsme implementaci multithreadovosti přizpůsobit plně této platformě a využít tak maximálně daných možností, o čemž do jisté míry svědčí výkonnostní testy, zmíněné v předchozí kapitole.



Stanislav Pavlicek
2000-06-12