Non ho fatto alcun lavoro in tempo reale, quindi prendilo con un po 'di sale ...
Mi è stato detto che ci sono due categorie di "real-time": hard real-time e soft real-time.
"Soft in tempo reale" significa informalmente "eseguilo il più velocemente possibile". Penso che Linux su una CPU moderna sia buono per questo genere di cose.
"Difficile in tempo reale" significa informalmente "eseguirlo entro un lasso di tempo richiesto". La finestra può essere piuttosto piccola, millisecondi o qualcosa del genere. I sistemi di controllo di volo per missili da crociera o veicoli di lancio satellitare sembrano l'esempio canonico. Anche i sistemi di controllo dei processi industriali potrebbero aver bisogno di questo. Il worm Stuxnet sembra aver interferito con i sistemi che eseguono questo tipo di controllo.
Utilizzeresti RTOS in quest'ultima situazione. RTOS spesso garantisce la consegna di un interrupt in meno di tante istruzioni o tick di clock o altro.
Un'altra considerazione potrebbe essere che un RTOS è progettato, testato e / o "dimostrato" per non consumare spazio nello stack senza limiti. Può vivere all'interno di una certa quantità minima di memoria e cose come un "OOM Killer" non esistono perché non sono mai necessarie. Alcune delle caratteristiche più sciocche dei primi FORTRAN provengono da questo tipo di requisiti. Quando hai compilato un programma FORTRAN II, sapevi esattamente quanto stack e quanto heap fosse necessario, dal momento che non potevi ricorrere e non puoi allocare dinamicamente nulla.
Realisticamente, la seconda considerazione (consumo massimo di memoria garantito) potrebbe essere più importante in alcune applicazioni critiche per la sicurezza rispetto alla "latenza di interruzione garantita di 0,001 secondi".
Immaginerei anche che spogliando il processo di selezione della foglia di fico di supporto verbale, scopriresti che gli ingegneri scelgono un RTOS perché "i requisiti dicono".