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 [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]