Priorità in tempo reale in sistemi operativi non in tempo reale


8

Se eseguo il comando seguente sulla mia installazione standard di Linux Mint:

comp ~ $ ps -eo rtprio,nice,cmd
RTPRIO  NI CMD
...
99   - [migration/0]
99   - [watchdog/0]
99   - [migration/1]
 -   0 [ksoftirqd/1]
99   - [watchdog/1]

Ottengo alcuni dei processi con priorità in tempo reale di 99.

Qual è il significato di rtprioin un Linux non in tempo reale? Questo significa che se eseguo un programma con rtprio99, questo funziona in tempo reale? Dove cadono i SO in tempo reale in questa storia?

Risposte:


5

"Tempo reale" indica i processi che devono essere completati entro i termini previsti o che si verifichino delle cose non valide. Un kernel in tempo reale è un kernel in cui le latenze del kernel sono strettamente limitate (soggetto a possibili malfunzionamenti dell'hardware che non risponde in tempo) e in cui la maggior parte delle attività può essere interrotta per consentire l'esecuzione di attività con priorità più elevata. Nel caso di Linux, il kernel vanilla non è impostato per il tempo reale (ha un costo in termini di prestazioni e le patch in tempo reale che fluttuano dipendono da alcuni hack che gli sviluppatori core considerano grossolani). Inoltre, eseguire un kernel in tempo reale su una macchina che semplicemente non riesce a tenere il passo (la maggior parte delle macchine personali) non ha senso.

Detto questo, il kernel vanilla gestisce le priorità in tempo reale, il che dà loro una priorità più alta rispetto alle attività normali, e quelle attività verranno generalmente eseguite fino a quando non restituiranno volontariamente la CPU. Ciò fornisce una risposta migliore a tali attività, ma significa che altre attività vengono bloccate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.