Prioridades en Linux

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

Anuncios

2 comentarios en “Prioridades en Linux

  1. Pingback: Cambiar la prioridad de los procesos en Linux | Esas cosas que aprendo

  2. Pingback: Ejecutar procesos indicando la prioridad en Linux | Esas cosas que aprendo

Los comentarios están cerrados.