Quote:
Originariamente inviato da cdimauro
Rimane il fatto che anche un s.o. "real-time" ha un suo "tempo di risposta" che comporterà anch'esso una perdita di precisione che sarà, a sua volta, anch'essa misurabile (bisognerà semplicemente attendere più tempo per l'accumularsi degli errori).
|
Tutti i sistemi di misura hanno una loro imprecisione
Quote:
Originariamente inviato da cdimauro
Altra cosa, qui parla dell'intervallo di attesa e questo, più che sul fatto che il s.o. sia "real-time" o meno, dipende dalla precisione del timer interno utilizzato dal s.o. per dispatching degli eventi time-based.
|
Il tempo può essere misurato con molta precisione anche con un sistema operativo normale, al limite si può utilizzare un orologio hardware che lavora per conto suo, magari sincronizzato con un orologio atomico.
Ma quello che ci interessa non è l'errore della misura di tempo, ma il ritardo con cui il sistema operativo richiama i vari task.
L'errore dipende dal tempo massimo che impiega il sistema operativo a restituire il controllo al programma che fa la misura. Nel caso di windows, tale errore può essere > 20ms.
E' vero che la precisione della misura dipende dal "timer interno" utilizzato, però occorre sempre aggiungere il ritardo (casuale) introdotto dal multitasking.
Se gli intervalli di tempo sono molto piccoli e si devono sommare fra di loro, come nel caso della misura di tante azioni "traccia-aspetta" che portano al disegno della spirale, la differenza di tempi fra due disegni diventa misurabile e significativa, indipendentemente dalla precisione del "timer interno".
Quote:
Originariamente inviato da cdimauro
In soldoni: possono esistere s.o. "non real-time" che, però, offrono timer a precisione molto elevata.
|
Vero, però la differenza di tempo che hai osservato nel movimento a spirale della tartaruga, non è causata dalla imprecisione del timer utilizzato, ma dell'inevitabile errore introdotto dal multitasking. Tale errore diventa grande quando si sommano tante misure di tempo.