Priorités en temps réel dans un OS non temps réel

8

Si je fais la commande suivante sur mon installation Linux Mint standard:

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

J'obtiens certains des processus avec une priorité en temps réel de 99.

Quelle est la signification de rtprioLinux non temps réel? Est-ce à dire que si je lance un programme avec rtprio99, il s'exécute en temps réel? Où se situent les OS en temps réel dans cette histoire?

TheMeaningfulEngineer
la source

Réponses:

5

«Temps réel» signifie des processus qui doivent être terminés dans les délais impartis, faute de quoi de mauvaises choses (TM) se produisent. Un noyau en temps réel est un noyau dans lequel les latences du noyau sont strictement limitées (sous réserve de la possibilité que le matériel se comporte mal et qui ne répond tout simplement pas à temps), et dans lequel la plupart des activités peuvent être interrompues pour permettre l'exécution de tâches de priorité plus élevée. Dans le cas de Linux, le noyau vanilla n'est pas configuré pour le temps réel (il a un coût en termes de performances et les correctifs en temps réel flottant autour dépendent de certains hacks que les développeurs principaux considèrent comme grossiers). En outre, exécuter un noyau en temps réel sur une machine qui ne peut tout simplement pas suivre (la plupart des machines personnelles) n'a aucun sens.

Cela dit, le noyau vanilla gère les priorités en temps réel, ce qui leur donne une priorité plus élevée que les tâches normales, et ces tâches s'exécutent généralement jusqu'à ce qu'elles cèdent volontairement le CPU. Cela donne une meilleure réponse à ces tâches, mais signifie que d'autres tâches sont suspendues.

vonbrand
la source