2012-07-17 10 views
5

Ho sentito dire che l'esecuzione di chiamate di sistema in Linux (RT_PREEMPT kernel) non è mai sicura in tempo reale.Tutte le chiamate di sistema non sono sicure in tempo reale?

Questo sembra eccessivamente restrittivo: in che modo il processo può eseguire qualsiasi cosa (a meno che non debba essere eseguita interamente tramite DMA) senza chiamate di sistema?

È vero o sono alcune chiamate di sistema (come clock_gettime) in tempo reale-safe?

+0

Qual è ** la ** definizione ** esatta * di * "sicurezza in tempo reale" *? –

+0

Per quanto mi riguarda, un'operazione in tempo reale può sempre essere completata o fallita in un tempo ragionevolmente breve. Stiamo cercando di eseguire un loop di controllo a 1 kHz ... ovviamente, dobbiamo evitare FS e molte altre operazioni, ma dobbiamo anche evitare * tutte le chiamate di sistema * per garantire un tempo di esecuzione <1 ms? – crosstalk

+0

Cosa intendi per "garantire un tempo di esecuzione" meno di un millisecondo. La tua vita dipende da quella promessa ???? Scommetto che un programma in tempo reale ben codificato su un kernel RT_PREEMPT Linux ben configurato e un sistema con hardware abbastanza veloce soddisferebbe tale scadenza; ma devi decidere se il mio sentimento è sufficiente. –

risposta

1

Se con "realtime safe" si intende garantire l'esecuzione entro un tempo limitato, quindi Linux, come la maggior parte dei sistemi operativi di uso generale, non è sicuro in tempo reale.

I vari real-time operating systems (RTOS) hanno fornito questo tipo di garanzia.

0

È possibile guardare il file functions dal repository jack_interposer. Questi sono non in tempo reale sicuro. È una domanda più semplice che chiedere quali sono in tempo reale. Una buona regola per quello che dovrebbe essere evitato sono:

  • Qualunque sincronizzazione blocco Funzione
  • Qualunque allocazione di memoria
  • Qualsiasi I/O funzione
  • Algoritmi (entro user-spazio) che hanno un complessità maggiore di O (n), dove n è il numero di elementi nel buffer di input.
Problemi correlati