Newsgroup: it.scienza.informatica
Titolo: Real Time?

Buongiorno a tutti,
qualche anima pia puo' spiegarmi per favore cosa significa "sistemi real
time"?
Sto leggendo alcuni documenti che usano questa espressione diffusamente,
quindi se io non la capisco, non capiro' l'intero documento !
Grazie a chi mi vorra' rispondere.
Adriano

time"?
Cosě all'acqua di rose, sono sistemi che riescono a completare le elaborazioni
richieste entro un certo tempo massimo. Ad esempio, un sistema di acquisizione
video a 30 fotogrammi al secondo per potersi definire "real time" deve
garantire la terminazione di tutte le operazioni necessarie per l'acquisizione
di un singolo fotogramma in un trentesimo di secondo.
Salve

di un singolo fotogramma in un trentesimo di secondo.
Questo mi da lo spunto per un altro commento.
Un'altra definizione di real-time č: "un sistema che garantisce la produzione
dell'output prima dell'arrivo del successivo input".
Questa perň non č una definizione corretta, poichč un impianto anti-incendio
deve entrare in funzione entro un certo tempo, non prima che scoppi un altro
incendio! ;-))
Bye,
  Dario
Fidonet 2:331/101.25
ICQ# 11871099

time"?
Definizione formale:
"Un sistema real-time è un sistema in cui la correttezza di esecuzione non
dipende solo da risultati corretti, ma anche dal tempo con cui questi si
ottengono".
In particolare, esiste un tempo minimo ed un tempo massimo entro cui il
risultato/output deve essere fornito (ovviamente corretto).
Si chiamano così proprio perchè si usa il tempo che tutti noi misuriamo con
l'orologio e non a quello di una arbitraria sincronizzazione tra elementi HW/SW.
Nei sistemi non real-time, la correttezza è legata solo al valore dell'output.
L'uso del termine "real-time" che si sente più comunemente è quello che si
riferisce a sistemi di elaborazione "abbastanza veloci" da stare dietro a
fenomeni che per altri sistemi (di solito i normali PC) sono "troppo veloci"
(ovvero ci si riferisce più che altro al tempo massimo di esecuzione).
C'è da tener presente che dire che un sistema è "real-time", non vuol dire che
questo sia "veloce"; vuol solo dire che fornisce gli output al momento
richiesto. Ti faccio un esempio (un po' banale, ma così ci capiamo): il
controllore di un passaggio a livello sa che un treno è a 5 chilometri di
distanza e sa che deve chiudere le sbarre al massimo in 5 minuti, ma non prima
di 3 per non formare una coda di macchine troppo lunga (tolleranze +- 20
scondi); un controllore che svolga il suo lavoro in questi tempi è real-time,
ma, come vedi, non è affatto "veloce": ci riuscirebbe benissimo l'equivalente di
una calcolatrice di 20 anni fa.
Se torniamo all'ambito computer, si parla spesso di Sitemi Operativi Real-time.
In questo caso ci si riferisce spesso al problema dei sistemi multitasking che,
nelle implementazioni non real-time, non possono garantire che un certo
programma tornerà in esecuzione sulla CPU entro un certo tempo massimo; un OS
real-time mira a questo "scheduling garantito".
Spero di essere stato abbastanza chiaro. Se hai qualche dubbio, chiedi pure.


 Bye, Dario
Caro Dario,
ti ringrazio moltissimo della spiegazione, concettualmente chiara.
Ma, se non ti spiace, vorrei andare oltre: sapresti farmi un esempio di
applicazione real time?
Hai accennato al controllo di un passaggio a livello: e' li che si usano
sistemi real time? Oppure nei telefoni? Nel controllo di volo? O in
qualche altra situazione, magari anche meno impegnativa?
Quali sono le situazioni che richiedono l'uso di sistemi real time nella
vita reale? E perche'?
Tempo fa ne ho letto a proposito dei database. Esistono database in real
time? Se si, in cosa differiscono dai database NON real time?
Quali sono le situazioni che richiedono database real time?
Insomma, in poche parole: ti ringrazio della spiegazione, ma mi
piacerebbe andare oltre la teoria, mi piacerebbe avere qualche esempio
concreto per capire davvero il problema.
Grazie :-) Adriano

vita reale? E perche'?
Un esempio di applicazione in real time e' l'acquisizione delle
informazioni finanziarie da societa' quali Reuters o Bloomberg: in
questi casi avendo la necessita' di tempi di risposta immediati fra il
cambiamento di valore di una divisa (es. Lira contro Marco) sarebbe
intollerabile un delay anche di 1 minuto perche' tutte le operazioni
che ruotano attorno ne verrebbero falsate.
Ci sono appositi processi dunque che si preoccupano di monitorare la
situazione e tenerla costantemente aggiornata in modo che tramite
appositi sw si possa poi avere uan visione effettiva dell'andamento
del mercato finanziario.


Di solito per sistemi real time ci si riferisce a :
sistemi di controllo relativi a processi fisici caratterizzabili da delle
grandezze misurabili e dotate di una certa dinamica che vengono sia
acquisite ( uscite del processo ) che attuate ( ingressi del processo ovvero
le variabili su cui ci si propone di agire ). ( Ovviamente le grandezze di
uscita del processo sono quelle di ingresso del regolatore e viceversa ).
( esempio: il sistema ABS.  C'é un processo, la ruota che gira a contatto
col suolo, c' é una grandezza misurabile, la velocità angolare della ruota,
c' é una grandezza fisica su cui si vuole agire, la forza sulla pinza del
freno, c' é un sistema di controllo, il computer, che vorrebbe "legare" la
velocità angolare della ruota ad una opportuna azione sulla pinza del
freno ).
Un sistema real time é un sistema di controllo vincolato a rispondere alle
sollecitazioni secondo certi criteri ed entro e non oltre un certo tempo.
( Ovviamente  l' ABS deve evitare il bloccaggio "improvviso" della ruota
nelle decellerazioni e per fare questo non può prescindere dal fatto che il
fenomeno del bloccaggio ha certi tempi: per cui comandare il rilascio della
pinza quando la ruota é già bloccata non serve ad impedire il bloccaggio
della ruota).
Questo, molto sommariamente, é uno degli aspetti del problema.
Un altro aspetto é quello che attiene alla tecnologia informatica di
supporto alla realizzazione del regolatore del processo necessario per
ottenere le prestazioni desiderate ( che la ruota non si blocchi
"improvvisamente" ).
Bisogna considerare che parlare di sistemi operativi real time ( detti
RTOS ) ha senso se e solo se si specificano i vincoli del real time; infatti
tutti i sistemi operativi PREEMPTIVE  sono real time  su qualunque CPU se i
processi fisici che si vogliono controllare sono "sufficentemente" lenti.
Se il processo da controllare é la temperatura di una serra probabilmente
esso sarà molto più lento nelle sue variazioni di quanto non sia il
posizionamento di una fase di macchina di una impacchettatrice di sigarette
( minuti Vs  microsecondi ).
Normalmente gli RTOS hanno un tempo massimo ESPLICITAMENTE garantito nel
quale si accorgono che un certo task deve andare in esecuzione mentre i non
rtos ( se preeemptive ) non hanno questa proprietà, anche se con processi
"sufficentemente lenti"  "tende" a non esservi differenza tra so RTOS e non
RTOS.
Ovviamente non bisogna confondere il tempo massimo ESPLICITAMENTE garantito
di cui parlavo con riferimento ad RTOS con i "tempi del processo fisico" a
cui mi riferivo all' inizio. ( C' é una dinamica fisica, quella del processo
da controllare ed una  "dinamica informatica" che si riferisce ai tempi
massimi garantiti nei quali un RTOS é in grado di decidere che un task deve
cedere il controllo della CPU ad un altro task ( di solito il task che
implementa il controllo del processo fisico).
Per paradosso:
Un sistema informatico per calcolare lo stipendio di un dipendente di una
azienda può essere considerato come sistema real-time se si considera che in
nessun caso lo stipendio può arrivare dopo il 15 del mese;  normalmente non
ci sono problemi perché il processo ( pagare il dipendente ) ha una dinamica
estremamente lenta ( 1 volta al mese ) anche se complicata dal fatto che i
dati per lo stipendio del mese X, da pagarsi entro il 15 del mese X+1 sono
disponibili solo il giorno 1 del mese X+1.
Questo, in estrema sintesi, si intende per sistema real-time.
Ciao
Mat

vita reale? E perche'?
Tanto per cominciare : macchine robotizzate o a controllo numerico, sistemi di 
controllo elettronico in ambito automobilistico (centralina, ABS,EDS...), 
controllo del traffico aereo, avionica...
Sono le prime che mi sono venute in mente, ma ce ne sono molte altre, specie 
nelle applicazioni militari (puntamento, tracking dei bersagli..)
LG
-- 
**************************************************************************
Leandro Gelasi
IV year Computer Science Engeneering at Siena University
Mail : 
GELA...@SUNTO.ING.UNISI.IT
Gilles Villeneuve will live forever
**************************************************************************

concreto per capire davvero il problema.
Guarda se quanto ho riportato ti da qualche spunto. Comunque chiedi pure.


 - soft real-time: se i vincoli sono violati, occorre agire in un altro >modo.
soft real-time: se si supera il tempo massimo il risultato non ha piu'
		valore.
ASAP as soon as possibile: il prima possibile,
at the right time: fatti esattamnte in quel momento, come i
campionamenti.
di data base real-time non ne conosco ma sicuramente esiste, so
di kernel Real Time per i plc dove non ci sono interrupt e gestione
preentive dei processi.
comunque il real-time direi che prima di tutto e' un modo di progettare
i sistemi poi ne segue l'implementazione.
bye


Forse puo' servire a chiarire il concetto, dire che una interazione in
"tempo reale" e' concettualmente opposta ad una interazione in
"differita".
In quest'ultimo caso l'interazione causa-effetto e' temporalmente
scollegata e non e' garantita entro alcun termine di "tempo di
risposta", mentre quando si definisce una interazione "in tempo reale"
cio' significa che il "tempo di risposta" in cui l'interazione si
conclude e' inferiore ad un intervallo di tempo prefissato.
Il tempo di risposta che si definisce possedere la caratteristica di
"tempo reale", e' quindi una condizione di intervallo temporale
relativa ad un tempo di risposta minimo prefissato, utile ai fini
operativi specifici del sistema.
In soldoni, un sistema globale interattivo dicesi dotato di tempi di
risposta scambiati in "tempo reale", se il sistema stesso consente
globalmente di intervenire su quella parte di sistema che ha generato
un output, per elaborare direttamente l'output oppure le condizioni
del sistema che hanno generato l'output stesso, prima che quella parte
del sistema sia in grado di generare l'output immediatamente
successivo.
Spero di essere riuscito a fornire una definizione abbastanza
esaustiva delle condizioni operative in "real time"; in ogni caso la
definizione relativa all'ouput e' simmetrica rispetto all'input.
Cioe' il sistema deve globalmente essere in grado, simmetricamente, di
elaborare uno specifico output in risposta ad un determinato input che
gli proviene da una parte del sistema stesso, prima che quella parte
del sistema che ha generato l'input, sia in grado di generare l'input
immediatamente successivo.
Claudio Pipitone
ath...@x-xtin.it
http://space.tin.it/internet/0pipiton
___________________________________________________________________
Key fingerprint: C0F3 11DB 9060 198E 8556  39D9 64FD 6A3E D749 69EF
Attenzione: per rispondere via E-mail rimuovere i caratteri  x-x
inseriti per falsare l'indirizzo ai fini "anti-spam"

successivo.
Errore classico. Avevo messo questo stesso esempio nel thread, ovvero:
un impianto anti-incendio deve agire entro x ms da quando rileva
l'incendio. Non vuol dire niente che deve intervenire prima che scoppi
un nuovo incendio! ;-)



Abbi pazienza, ma anche questo esempio mi pare poco felice !
Un rilevatore di fumi o di calore non mi pare proprio una tipica
problematica d'interazione in tempo reale...
Ogni volta che il sensore rileva un dato valore, questo sistema entra
in azione entro x ms ed ogni volta che il valore torna a zero il
sistema termina di funzionare entro atrettanti x ms; ed allora ?
Ti pare questo un problema di "real time" ?
Se in un giorno il valore viene raggiunto tre volte e torna tre volte
a zero, il sistema antincendio si aziona anche lui per tre volte e per
tre volte si disinserisce; dove lo vedi qui il "real time"?


di data base real-time non ne conosco ma sicuramente esiste
Che cos' é un data base real time, cioé che vuol dire ??
Ciao
Mat

Ti pare questo un problema di "real time" ?
Guarda che tu stesso hai citato il tempo reale...


Credo che ci sia confusione su due concetti tra loro diversissimi.
1 - controllo
    1-1 problema di mantenere chiuso l' anello di retroazione
    1-2 problema di ottenere il comportamento desiderato dal sistema totale
( sistema fisico +  regolatore)
2- strumenti informatici atti a realizzare il controllo
secondo le specifiche richieste nel caso di un regolatore a microprocessore.
Ciao
Mat

quando ci entri ti dia il tempo di uscirne.
Qui sbagliate tutti!!
Un sistema real-time, hardware o software che sia, è un sistema che ha tempi
di risposta agli eventi che sono PREDICIBILI, ovvero che cadono in un
intorno MOLTO RISTRETTO di un tempo limite prefissato.
Un esempio di sistema software NON Real Time è il S.O Windows (come pure MAC
OS e Linux senza patch)
Un sistema operativo che E' Real Time è AmigaOS(come anche BeOS, Next, e
altri)
ciao
Fabio Alemagna

 
ho sbagliato intendevo interupt non mascherabili...
bye

Un sistema operativo che E' Real Time è AmigaOS
A dire il vero non l'ho mai conosciuto come tale... Sei sicuro al
100%?? Perchè a me non pare che abbia caratteristiche di RT.



quello che hai detto non e' corretto la definizione di Real-Time
e' 
"che abbia tempi di risposta non paragonabili alle costanti temporali
del sistema"
cioe' se il sistema ha un tempo di risposta di un ora, il sistema
realtime puo' dare un output anche in un minuto e non "immediatamente".
ad esempio devo fare un controllo su una diga.
Se a monte a 100km dalla diga sta' piovendo devo decidere se ci sara'
un ondata di piena e quindi aprire la diga.
Il sistema e' RealTime perche dipende da costanti di tempo..ma
visto che l'onda di piena arriva dopo qualche ora il tempo
di risposta puo' essere anche un minuto...
Il problema e' che se facciamo come hai detto avremmo sistemi
sovradimensionati e che al primo allarme si bloccano immediatamente.
immagiana un centinaio di segnali da gestire "immediatamete"...
bye

sci su Internet 'in tempo reale'.
non credo... bisognerebbe citare qualche fonte, immagino, ma anch'io
sapevo che un sistema rt e' tale perche' e' in grado di fornire
risultati entro un certo tempo massimo.
un sistema che fornisca i dati a tale velocita' da poter essere
considerato immediato, mi pare solo un sistema interattivo... tutte le
nostre macchine funzionano (o dovrebbero funzionare) in questo modo,
ma nessuna delle nostre macchine e' in grado di sostituire un s.o.
realtime.
con un sistema come quello di cui parli tu, non puoi pilotare ad
esempio un altoforno in modo sicuro, perche' potresti solo "sperare"
che sia "abbastanza veloce" da fornire il risultato, ma non c'e'
l'assoluta certezza che in tutti i casi lo sia. cosa che invece ci
vuole per fare un lavoro ben fatto. almeno imho.
ciao!
  gabriele
--
gabriele zugliani - student at pisa univ. (dept. of computer science)
url piu' richiesti di it.comp.linux.*: 
http://www.linux.it/ospiti/upr/
(mirror: 
http://www.cli.di.unipi.it/~zugliani/upr.htm
)
==> NOTE: TO REPLY PLEASE REMOVE "NZPM" FROM THE ADDRESS.


Il problema non é tanto imparare un linguaggio, AWL o S5 o ... , che un
programmatore C++ non avrebbe remore a definire triviale quanto convincerlo
che programmare in AWL é bello !
Ci hanno provato in molti posti, ma dopo qualche mese il buon programmatore
C++ ( o ADA  o Delphi  o .. ) si licenzia e va a lavorare in banca
applicazioni informatiche contabili ) ... si diverte poco di più e guadagna
molto di più !! ( alla peggio passa da 13 a 14 mensilità )
Ciao
Mat