Cuando ejecutamos un proceso, es el sistema operativo quien determina la planificación y asignación de recursos al mismo, entre ellos, el tiempo de CPU.
Mendiante el comando top
podemos ver los procesos en ejecución
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 838 us1 20 0 479476 117116 56872 S 4,7 5,7 1:02.12 Xorg 1867 us1 20 0 1808172 255376 129456 S 2,0 12,5 0:11.70 firefox 2211 us1 20 0 751108 45624 30484 S 1,7 2,2 0:00.63 gedit 627 root 20 0 4552 840 776 S 0,3 0,0 0:00.01 acpid 2226 us1 20 0 51184 4232 3604 R 0,3 0,2 0:00.13 top 1 root 20 0 159892 8956 6528 S 0,0 0,4 0:01.76 systemd
De toda la información presentada nos enfocamos en 2 columnas:
NI (niceness): valor de prioridad vinculado al usuario. El rango del valor nice comprende desde -20 (el mayor) a +19 (el menor).
PR (priority): prioridad del proceso para el kernel del linux. El rango de prioridades comprende desde 0 a 139, siendo
- de 0 a 99 para tiempo real (‘rt’ en la salida de
top
) - de 100 a 139 para los usuarios (rango 0 a 39 en la salida de
top
)
La relación entre ambos es la siguiente:
PR = 20 + NI
Es por ello que el rango de PR = 20 + (-20 a +19) es 0 a 39.
El valor de nice, por defecto, para un proceso es heredado de su padre, y por lo general, es 0 (la prioridad correspondiente es 20). Es posible especificar un valor de nice para cambiar la prioridad de un proceso en ejecución o bien lanzar un proceso con una prioridad diferente.
Basado en:
https://askubuntu.com/questions/656771/process-niceness-vs-priority
Pingback: Cambiar la prioridad de los procesos en Linux | Esas cosas que aprendo
Pingback: Ejecutar procesos indicando la prioridad en Linux | Esas cosas que aprendo