Newsgroup: it.comp.os.linux.sys
Titolo: realtime o non realtime

Salve a tutti, 
sto pianificando l'utilizzo di Linux Embedded su microcontrollore di base 
prestazioni (ancora da definire, tendenzialmente basato su core ARM)  ma mi 
sono arenato dovendo decidere se il mio sistema ha effettivamente bisogno 
di un S.O realtime.
Il sistema deve leggere un registro di un A/D conv. ogni 350 us, senza 
possibilitá di perdita di dati. Tale acquisizione ha una durata finita di 
10 s dopodichè il segnale acquisito viene elaborato offline fino alla 
successiva acquisizione (signal processing, compressione, invio in rete).
Non avendo mai approfondito l'architettura del S.O Linux non ho idea di 
come possa realizzare un'applicazione con latenza minima dell'interrupt 
relativo all'A/D converter, nè se tale latenza mi garantisca sicuramente di 
non perdere dati.
È possibile realizzare un'applicazione del genere utilizzando Linux senza 
estensioni RT? 
Quali caratteristiche del S.O devo considerare per avere un' ordine di 
grandezza della latenza minima di un interrupt?
Grazie a tutti in anticipo.
        Stefano 
_________________________________________
Replay using Email address without xxx
_________________________________________

 Grazie a tutti in anticipo.
Prego

 grandezza della latenza minima di un interrupt?
Un consiglio? 
www.qnx.com
Al
-- 
Errare e' umano, ma per fare veramente
casino ci vuole la password di root.

 grandezza della latenza minima di un interrupt?
Ci sono degli OS RT che ti possono garantire una latenza di risposta, ma non
Linux senza estensioni RT.
Se per problemi di costi di licenza non puoi permetterti QNX (caro) od OS/2
(meno caro ma non unix-like) puoi utilizzare delle estensioni RT di uno Unix.
Quelle di Linux non ti daranno QNX, ma se devi utilizzare quelle di Solaris,
puoi utilizzare molto meglio Linux...
ciao
-- 
Marco Ermini
http://www.markoer.org
 - ICQ # 50825709
There are two major products that come out of Berkeley: LSD and UNIX.
We don't believe this to be a coincidence.      -- Jeremy S. Anderson

 
Il problema è che QNX non supporta chip CIRRUS LOGIC tipo Maverick verso il 
quale sono orientato (o per lo meno nella lista delle CPU supportate non è 
indicato). Inoltre è un'architettura proprietaria che non conosco 
minimamente: avendo bisogno di un driver Bluetooth (che Linux supporta...in 
qualche modo) non immagino quanto devo sudare per portarlo su QNX!! 
Non ho nessun problema ad utilizzare un'architettura RT .... il problema è 
trovare un RTOS che supporti architetture con core ARM7 per piccoli 
microcontroller. Se qualcuno ha qualche dritta....
Ciao


 microcontroller. Se qualcuno ha qualche dritta....
Hai provato a vedere:
http://www.lineo.com/products/
http://www.redhat.com/embedded/
?


> microcontroller. Se qualcuno ha qualche dritta....
In particolare micro-linux:
http://www.redhat.com/embedded/technologies/micro-linux/
supporta i microcontroller ARM7.


 grandezza della latenza minima di un interrupt?
linux non č un sistema real time. Non c'č modo di predire il tempo
impiegato
per compiere delle routine. E' perň disponibile rtlinux
(
www.rtlinux.org
) che
presenta un kernel modificato per venire incontro alle richieste di real
time.
-- 
Non c'č piů forza nella normalitŕ, c'č solo monotonia.

 risposta.
non lo puoi predire, linux non è stato fatto per questo. 
E' stato ottimizzato per massimizzare il throughput.
-- 
Non c'è più forza nella normalità, c'è solo monotonia.

risposta. 
Con Linux std non ti e' possibile. Kernel non preemptable, priorita'
relative, scheduler non rt...
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.18
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Asynchronous inputs are at the root of our race problems. !>-
                 D. Winker and F. Prosser

risposta. 
I miei 0.02$ sono per: il tempo che ci vuole perche' la chiamata di
sistema in corso termini, e che lo scheduler assegni la CPU al tuo
processo, sempre che questo abbia la giusta priorita' e non sia stato
messo in attesa perche' ha fatto I/O non ancora terminato. 
Se non c'e' chiamata di sistema in corso, deve scadere il quanto di
tempo del processo (che immagino a questo punto CPU bounded).
Se poi il processo, poco prima di far terminare il suo quanto di tempo,
richiama una chiamata di sistema, dovrai aspettare anche la fine della
stessa, per cui nel caso peggiore il tempo e' : durata di un quanto di
tempo + durata di una syscall, che e' leggermente maggiore di un quanto
di tempo (10 ms su x86).
Pero' non c'e' garanzia che le cose non vadano molto peggio di cosi', in
particolare che la chiamata di sistema duri poco.

 grandezza della latenza minima di un interrupt?
Non capisco la domanda. Se per latenza minima di un interrupt intendi
il ritardo minimo che questo interrupt porta al mio processo che viene 
interrotto, penso chedipenda non solo dall'OS, ma dalla intera
architettura sw/hw, cioe' lo stesso kernel linux su PPC/Athlon/PIII
probabilmente avrà latenze diverse. 
Saluti
  Valentino