sched_setscheduler dice:
Toda la programación es preventiva: si un proceso con una prioridad estática más alta está listo para ejecutarse, el proceso actualmente en ejecución se sustituirá y se devolverá a la lista de espera para su nivel de prioridad estática.
mientras que setpriority dice
Esto hace que los valores agradables muy bajos (+19) realmente proporcionen poca CPU a un proceso siempre que haya otra carga de mayor prioridad en el sistema, y hace que los valores agradables altos (-20) entreguen la mayor parte de la CPU a las aplicaciones que lo requieren
Entonces, ¿cómo va a cambiar el valor agradable influir en la ejecución de los programas? ¿Es similar a la programación RT (donde un programa con un valor agradable más alto va a interrumpir el programa con un valor agradable más bajo)?
Toda la información en internet es cómo usar nice
y cómo cambiar la prioridad de un proceso. Ningún enlace explica cómo funciona exactamente el proceso con diferente prioridad. Ni siquiera pude encontrar el código fuente.
fuente