planificador lottery linux linux-kernel scheduler scheduling cfs

lottery - Linux SCHED_OTHER, SCHED_FIFO y SCHED_RR-diferencias



o(1) scheduler (1)

SCHED_FIFO y SCHED_RR se denominan políticas "en tiempo real". Implementan la programación en tiempo real de prioridad fija especificada por el estándar POSIX. Las tareas con estas políticas se adelantan a cualquier otra tarea, que por lo tanto puede ir fácilmente a la inanición (si no liberan la CPU).

La diferencia entre SCHED_FIFO y SCHED_RR es que entre las tareas con la misma prioridad, SCHED_RR realiza un round-robin con un cierto intervalo de tiempo; SCHED_FIFO, en cambio, necesita que la tarea genere explícitamente el procesador.

SCHED_OTHER es la política común de programación de tiempo compartido de turno rotativo que programa una tarea para un cierto intervalo de tiempo dependiendo de las otras tareas que se ejecutan en el sistema.

Actualización : desde Linux 3.14, existe una política adicional llamada SCHED_DEADLINE . Esta política implementa el algoritmo del servidor de ancho de banda constante (CBS) en la parte superior de las primeras colas de fecha límite . A cada tarea bajo esta política se le asigna una fecha límite, y se ejecuta la tarea de la primera fecha límite. El mejor recurso que describe este algoritmo es la programación de fecha límite en el kernel de Linux .

Actualización 2 : desde Linux 4.13, SCHED_DEADLINE ha reemplazado a CBS con el algoritmo de reclamo codicioso de ancho de banda no utilizado (GRUB) .

¿Alguien puede explicar las diferencias entre SCHED_OTHER, SCHED_FIFO y SCHED_RR?

Gracias