[OSy] Je MSIM deterministicky?

Martin Decky decky at dsrg.mff.cuni.cz
Fri Dec 4 14:09:04 CET 2009


> Konkretne sa pri vykonavani tohoto kodu pouziva 1 cpu, pamat a potom uz
> len dprinter a dtime.

A ten dtime Vam neprijde vubec podezrely? Vzdyt odvozuje cas od hodin 
realneho casu hostujiciho systemu, coz urcite neni prilis 
deterministicke zarizeni (mira je determinismu je primo ovlivnena tim, 
jak deterministicky se chova Vas nativni OS a dalsi procesy, ktere bezi 
paralelne s MSIMem a ovlivnuji jeho planovani).

> Orezat to na mensi kus, pri ktorom sa nedeterminizmus prejavi bude
> zrejme problem :-( Toto chovanie vidim prvykrat, prejavilo sa mi to s
> nasim kernelom pri teste map2 z AS2.
>
> [...]
>
> Mierny zasah do kodu kernelu tento nedeterminizmus odstranil (resp. test
> presiel zakazdym tak ako mal). Ten zasah z pohladu testu (msimom
> skutocne vykonavaneho kodu) je IMHO neviditelny, prakticky by mala byt
> len o nieco vacsia binarka kernelu a cast kodu teda lezi na inych adresach.

Specialne pokud se jedna o memory management, tak root cause vubec 
nemusi byt v casovem nedeterminismu, i kdyz ani to samozrejme nelze 
vyloucit (race conditions jsou zkratka nevyspitatelne). Spis bych to 
videl tak, ze ten casovy nedeterminismus muze obcas zafungovat jako 
nahodny trigger chyby ve Vasem kodu.

Pokud se ale chovani kodu napadne meni pri zmene memory layoutu kernelu 
(coz vede k tomu, ze data jsou najednou na jinych adresach), tak se 
setkavate s naprosto typickym projevem chyb memory managementu, ktere 
jsou zpusobeny spatnou pointerovou aritmetikou, buffer overrunem, 
pretecenim promennych apod. Zkratka tam asi mate nejakou memory-related 
chybu, ktera se neprojevi hned na tom miste, kde se stane, ale 
potencialne az mnohem pozdeji.


M.D.




More information about the NSWI004 mailing list