He estado aprendiendo algunos conceptos de programación. Actualmente mi comprensión hasta ahora es la siguiente.
- Hay procesos en tiempo real y procesos en tiempo no real.
- Los procesos en tiempo no real pueden tener
nice
valores para su prioridad en el rango de -20 a +20 . El valor positivo más alto indica que el proceso tiene menor prioridad. - Los procesos en tiempo real tendrán un valor de amabilidad enumerado
-
como se explica en esta respuesta aquí . Esto se debe principalmente a que los procesos en tiempo real tienen prioridades más altas que los procesos en tiempo no real y el valor de amabilidad no se aplica a ellos. - Ahora, puedo usar
chrt
para ver los atributos en tiempo real de un proceso.
Para un proceso en tiempo real, la chrt
salida da como,
chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
Como podemos ver en el proceso 5 , la prioridad es 99, que es la más alta. Además, la política de programación esSCHED_FIFO
Ahora, para un proceso en tiempo no real, la chrt
salida da como,
chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
Como podemos ver para el proceso 22383 , la prioridad es 0 y la política de programación es SCHED_OTHER
.
Preguntas
- ¿Es posible para mí hacer algún proceso como proceso en tiempo real?
- ¿Es posible para mí establecer algún otro algoritmo de programación que no sea
SCHED_OTHER
para un proceso en tiempo no real? Desde aquí , también veo que podría modificar el atributo para un proceso en ejecución como,
chrt -p prio pid
Además, veo
chrt -m
que me da la lista de algoritmos de programación. El comando me da la salida como,SCHED_OTHER min/max priority : 0/0 SCHED_FIFO min/max priority : 1/99 SCHED_RR min/max priority : 1/99 SCHED_BATCH min/max priority : 0/0 SCHED_IDLE min/max priority : 0/0
Ahora, como se sugirió anteriormente, si configuro
chrt -p 55 22383
qué algoritmo se usará.
fuente