планирование в реальном времени в Linux

Этим утром я читал о планировании Linux в реальном времени. Согласно книге «Системное программирование в Linux от Роберта Лава», здесь есть два основных графика. Один из них - SCHED_FIFO, fifo, а второй - SCHED_RR, циклический перебор. И я понял, как работает алгоритм fifo и rr. Но так как у нас есть системный вызов,

sched_setscheduler (pid_t pid, int policy, const struct sched_parem *sp)

мы можем явно установить политику планирования для нашего процесса. Так что в некоторых случаях два процесса, выполняемые пользователем root, могут иметь разную политику планирования. В качестве одного процесса, имеющего SCHED_FIFO, и другого, имеющего SCHED_RR и с таким же приоритетом. В таком случае, какой процесс будет выбран первым? Класс FIFO или процесс RR? Почему?

Рассмотрим этот случай. Есть три процесса A, B, C. Все имеют одинаковый приоритет. А и В являются RR-классифицированными процессами, а C является FIFO-классифицированными. A и B работоспособны (поэтому оба работают поочередно через некоторое время). И в настоящее время А работает. Теперь C становится работоспособным. В этом случае, будь

1. A will preempt for C, or
2. A will run until its timeslice goes zero and let C run. Or
3. A will run until its timeslice goes zero and let B run.
   a) here after B runs till its timeslice becomes zero and let C run or
   b) after B runs till its timeslice becomes zero and let A run again (then C will starve untill A and B finishes)

Ответы на вопрос(4)

Ваш ответ на вопрос