[OSy] Malo pameti pro casovace

Andrej Krutak andree182 at gmail.com
Wed Oct 31 12:54:09 CET 2007


> V tvojom priklade je timer t vytvoreny na zasobniku volajuceho vlakna.
> Vlakno timer spusti (timer_start()) a potom sa vrati z funkcie (alebo
> vlakno niekto zabije) a timer uz neexistuje. Jeho pamat uz moze byt
> prepisana a tym sa rozbije cely nas spojak (aj so vsetkymi ostatnymi
> timermi ostatnych vlaken).
>
To je jasne, preto je lepsie si to dat ako globalnu premennu... Ale ano, toto 
je jeden z asi mnohych pripadov, ked ti niekto moze podstrcit upravenu 
strukturu a zabit kernel.. To sa asi holt v jadre stava, ak je niekto 
nevychovany :-)

> Takze by sme sa museli spoliaht na to, ze uzivatel sa nevrati z
> funkcie skor, ako timer vystreli, alebo ze si ten timer alokuje
> dynamicky. Ale to by ho po sebe mal aj odalokovat, takze si bude
> musiet ustrazit, aby ho neodalokoval skor, ako vystreli, lebo inak by
> nam to zase cele rozbil. A to je pomerne silny predpoklad na uzivatela
> (i ked v tomto pripade uzivatelom budu len ostatne casti kernelu, ale
> tym padom jedna cast nemoze byt blbovzdorna proti inej.)
>
Na druhej strane - ked bude clovek chciet robustne casovace, pri ktorych uz 
clovek nebude musiet riesit, ze by mohol byt nedostatok pamati (a ze teda 
nemoze nic alokovat), nie je problem spravit este jeden layer timerov. Ten uz 
bude dostupny hocikomu (aj mimo jadra napr.), a moze to robit bezpecnejsie a 
nebude si do internych struktur zavadzat veci, o ktorych nevie ako dlho este 
budu existovat :-)


V kazdom pripade to bol len navrh (tak to mame spravene my), ak ma niekto 
lepsi, do nedele je stale dost casu :-)

Andrej




More information about the NSWI004 mailing list