Есть ли недостатки у запущенных процессов с приоритетом в реальном времени ( chrt -f 99
)?
Моя гипотеза состоит в том, что это в сочетании со сродством гарантирует, что любое преимущество моего процесса будет минимальным, и, следовательно, любое дрожание (особенно задержка в сети) будет минимизировано - это не поможет с общей задержкой, но в этот момент я больше касается джиттера.
(Ядро: 2.6.16 / 3.0)
Ответы:
Самым непосредственным недостатком запуска процесса в реальном времени является то, что этот процесс может легко заморозить любой другой процесс в системе. Результатом, с вашей точки зрения, будет то, что компьютер полностью не реагирует на клавиатуру, мышь и, возможно, сеть, пока процесс реального времени использует процессор. Это может произойти, если что-то пойдет не так, и процесс перейдет в бесконечный цикл, или даже временно, если процесс начнет длительные вычисления без периодического ожидания ввода. (Так, например, не запускайте SETI @ home с приоритетом в реальном времени.)
Одиночный однопоточный процесс на многоядерном процессоре с меньшей вероятностью вызовет эту проблему, поскольку существуют другие ядра, которые может использовать процесс с более низким приоритетом. Но если этот процесс создает какие-либо дочерние процессы, они наследуют один и тот же приоритет в реальном времени, поэтому все может выйти из-под контроля, если вы не будете осторожны.
У
sched_setscheduler(2)
man-страницы есть хороший совет:Это должна быть оболочка на консоли - не под Xterm, если только вы не хотите отдавать приоритет всему X в реальном времени.
источник