[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: real-time



On Tue, Jul 16, 2002 at 07:01:06PM +0200, Ferdinando wrote:
> Salve, una curiosità, in un'altra ML, di programmazione,  sulla quale
> non posto vista la mia competenza in materia ... ho letto di un
> problema di accuratezza dei calcoli, altri programmatori, tra cui uno
> che conosco sulla cui professionalità non ho dubbi, gli ha consigliato,
> per calcoli/temporizzazioni di usare S.O. "real-time".
> 
> Il tipo ha installato RTLinux ... però non ha 'avuto soddisfazione, o
> meglio i calcoli continuano ad essere divergenti rispetto a quanto lui
> vorrebbe.
> 
> La curiosità mia era molto semplice, RTLinux dovrebbe servire (anche) a
> questo, crea un SO "real-time" o ha delle limitazioni ?
> 
> O probabilmente era stato installato male ?

La risposta alla tua domanda non e` certo banale. Psrtiamo da una
definizione "scientifica" di realtime: si considera realtime un sistema
in grado di far conseguire ad un evento un altro evento prefissato, in
un tempo sempre inferiore ad una certa quantita` determinata e costante.

(Qui` si potrebbe introdurre un discorso che io trovo molto interessante
sulle motivazioni fisiche che ci inducono a dire che e` impossibile avere
un effetto nello stesso momento della sua causa ... ma non mi sembra il
luogo)

Generalmente si da per scontato che la sopracita quantita` di tempo sia
desiderata molto piccala. Ma quanto piccola ?? Se stiamo svutando una
piscina con un cucchiaino e volgiamo ottenere un livello dell'acqua 
prefissato, anche se il nostro amico che sorveglia accuratamente il
livello ci dice di fermarci con un minuto di ritardo l'innacuratezza e`
del tutto acettabile, se invece stiamo usando un idrovara da 100 litri/s
quel minuto comincia a essere un tempo inacettabile. Nel primo caso il
nostro sistam realtime di controllo puo` avere una latenza di 60 secondi,
nel secondo forse e` meglio averne una di 1/10.

Detto questo: Linux e` realtime ?? 

Diciamo che Linux puo` essere utilizzato senza modifiche per un gran
numero di controlli real time inquanto la sua latenza media e` molto
ridotta e abbastanza constante al variare del carico del sistema.
In altre applicazioni i tempi di risposta che il kernel "liscio" offre
non sono acettabili e si sono quindi studiate due soluzioni:

 1. una patch al kernel che riduce la latenza e la rende ancora piu`
    costante a carichi di lavoro elevati introducendo dei punti
    aggiuntivi di skeduling (a grandi linee momenti in cui i processi
    devono lasciare il controllo del sistema al kernel, che generalmente
    lo restituisce ad un altro processo). Questa patch va sotto il nome
    di premptetive (o come si scrive) patch.
 
 2. una sostanziale modifica del comportamento del kernel per renderlo
    capace di un realtime molto piu` stretto. Non posso fornire dettagli
    ulteriori sulle soluzioni adottate perche` non le conosco.
 
Nonostante questi due approcci il realtime di cui e` capace un sistema
linux non e` soddisfacente per alcune applicazioni che richiedono tempi
di risposta estremamente piccoli. Questo e` dovuto alla stessa
architettura del kernel e a molte scelte progettuali che non sono state
orientate in questa direzione.

Per avere quantificazioni numeriche di quanto ho descritto a grandissime
linee puoi vedere sul sito di RTLinux http://www.rtlinux.(org|com) (il
.com e` il sito dell'azienda che sponsorizza lo sviluppo) che riporta
interessanti misurazioni della latenza di vari sistemi.

Ciao
-- 
Daniele
		    --- http://www.grinta.net ---


-- 
To UNSUBSCRIBE, email to debian-italian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: