[OSy] Je MSIM deterministicky?
Martin Decky
decky at dsrg.mff.cuni.cz
Fri Dec 4 13:30:19 CET 2009
Hezky den,
> Inymi slovami, ked mam raz prelozeny kod a budem opakovane pustat msim
> bez toho, ze by som zasiahol do msim.conf, bude vypocet msimu vzdy uplne
> rovnaky?
Ano, z pohledu navrhu je MSIM skutecne deterministicky, tedy nepouziva
zadnou randomizaci, inicialni konfiguracni vektor je konstantni,
simuluje procesor(y) i vsechna dalsi zarizeni v diskretnich krocich atd.
Za predpokladu stejne konfigurace by tedy mel simulovat vzdy naprosto
stejne.
> Momentalne to totiz u mna vyzera skutocne tak, ze dostavam rozne
> vysledky pri opakovanom behu.
Problem pochopitelne muze byt na mnoha mistech:
a) To, co pisi vyse, je zamer autoru MSIMu, ktery se snazili maximalne
dodrzet. Nemohu ale dat ruku do ohne za to, ze skutecne v kodu MSIMu
neni nejaka chyba, ktera by za jistych velmi specialnich okolnosti
nemohla zpusobit nedeterministicke chovani. Formalni verifikaci kod
MSIMu neprosel (AFAIK).
b) Pravdepodobnejsi je, ze ve skutecnosti neni zdroj
nedeterministickeho chovani v MSIMu, ale primo ve Vasem kodu.
c) Muzete narazet na nejakou chybu prekladace (at uz toho, ktery
prelozil MSIM, nebo toho, ktery prelozil Vas mipsovsky kod).
V pripade MSIMu mohou hrat roli take standardni knihovny atd.
Jinymi slovy, nenapada me jiny postup, jak zjistit, co je spatne, nez
zkratka najit a izolovat zdroj toho nedeterministickeho chovani. Nejlepe
postupnym orezavanim Vaseho kodu vytvorit pokud mozno minimalni test
case, na kterem se problem projevuje, a na zaklade toho zjistit, kde je
pricina takoveho chovani.
M.D.
More information about the NSWI004
mailing list