[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