Некоторые примеры распространенных процессов реального времени в Linux - PullRequest
5 голосов
/ 27 апреля 2010

Каковы некоторые из общих процессов SCHED_FIFO и SCHED_RR в Linux? Подпадает ли пользовательский ввод под категорию процессов реального времени?

1 Ответ

7 голосов
/ 27 апреля 2010

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

Программа, которая просто принимает пользовательский ввод, перейдет в спящий режим (блок) во время ожидания ввода или даже между нажатиями клавиш (в зависимости от ситуации). Такая программа не должна иметь такой высокий приоритет планирования. Для процессов RT необходимо , чтобы они опережали все остальные процессы в системе. Это может быть связано с тем, что процесс имеет решающее значение для достижения какой-то важной цели, или необходимы высокопроизводительные таймеры (в этом случае вам понадобится ОС реального времени, стандартным Linux которой является , а не ).

В любом случае, для обзора различий между SCHED_FIFO и SCHED_RR см. Вопрос, который я связал. Решение, которое вы должны принять, если созерцаете одно поверх другого, не , если программа должна работать как RT, это фундаментальное инженерное решение. Выбор между ними зависит только от того, как вы хотите, чтобы ваш процесс сотрудничал с другими.

Если бы я использовал стандартное ядро ​​для управления лифтом, процесс, который обслуживал аппаратные прерывания от микровыключателей, вероятно, использовал бы SCHED_FIFO с весом RT. Опять же, я бы, наверное, не использовал стандартный Linux для этого.

Если бы я писал почтовый клиент, я использовал бы стандартный планировщик и позволил бы пользователю nice запускать свои программы по своему усмотрению.

...