Приоритеты в реальном времени в ОС не в реальном времени

8

Если я делаю следующую команду на моей стандартной установке 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]

Я получаю некоторые процессы с приоритетом в реальном времени 99.

В чем смысл rtprioLinux не в реальном времени? Означает ли это, что если я просто запускаю программу с rtprio99, она запускается в режиме реального времени? Где операционные системы реального времени попадают в эту историю?

TheMeaningfulEngineer
источник

Ответы:

5

«Реальное время» означает процессы, которые должны быть завершены в установленные сроки, иначе произойдут плохие вещи. Ядро реального времени - это ядро, в котором задержки ядра строго ограничены (возможно, неправильно работает аппаратное обеспечение, которое просто не отвечает вовремя), и в котором большинство любых действий могут быть прерваны для выполнения задач с более высоким приоритетом. В случае Linux ядро ​​vanilla не настроено на работу в режиме реального времени (оно снижает производительность, а плавающие патчи в реальном времени зависят от некоторых хаков, которые разработчики ядра считают грубыми). Кроме того, запускать ядро ​​реального времени на машине, которая просто не справляется (большинство персональных машин), не имеет смысла.

Тем не менее, ванильное ядро ​​обрабатывает приоритеты в реальном времени, что дает им более высокий приоритет, чем обычные задачи, и эти задачи обычно выполняются до тех пор, пока они добровольно не дадут ЦП. Это дает лучший ответ на эти задачи, но означает, что другие задачи задерживаются.

vonbrand
источник