[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