programación en tiempo real en Linux

Esta mañana leí sobre la programación en tiempo real de Linux. Según el libro 'Programación del sistema Linux de Robert Love', hay dos programaciones principales allí. Uno es SCHED_FIFO, quince y el segundo es SCHED_RR, el round robin. Y entendí cómo funcionan los algoritmos fifo y rr. Pero como tenemos la llamada al sistema,

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

podemos establecer explícitamente la política de programación para nuestro proceso. Entonces, en algunos casos, dos procesos que se ejecutan por root pueden tener una política de programación diferente. Como un proceso con SCHED_FIFO y otro con SCHED_RR y con la misma prioridad. En ese caso, ¿qué proceso se seleccionará primero? el proceso clasificado FIFO o el proceso clasificado RR? ¿Por qué

Considere este caso. Hay tres procesos A, B, C. Todos tienen la misma prioridad. A y B son procesos clasificados RR y C es uno clasificado FIFO. A y B son ejecutables (por lo que ambos se ejecutan alternativamente en algún intervalo de tiempo). Y actualmente A se está ejecutando. Ahora C se vuelve ejecutable. En este caso, si

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)

Respuestas a la pregunta(8)

Su respuesta a la pregunta