Puede que a veces desee priorizar el uso de CPU de sus programas. Por ejemplo, puede que ejecute un programa que hace uso intensivo de la CPU pero que tarda mucho en terminar su tarea y no desea que éste interfiera con otros que poseen una naturaleza más interactiva. Otro posible caso es que, en un ordenador con gran carga, haya una tarea cuya ejecución es más importante que la de las demás, por lo que desea aumentar su prioridad. En ambos casos, el método usual para conseguir el objetivo pasa por utilizar los comandos nice
y renice
. Puede utilizar nice
para iniciar un programa con una prioridad de uso específica o utilizar renice
para alterar la prioridad de un programa en ejecución.
Podemos asignar una prioridad para nice
: indicando la prioridad precedida de un guión (esto funciona bien en el caso de prioridades positivas, pero que les da el aspecto de un valor negativo), especificando la prioridad tras un parámetro --n
o especificando la prioridad tras un parámetro --adjustment=
. En todos los casos, estos parámetros van seguidos por el nombre del programa que desea ejecutar:
nice [argumento] [comando [argumentos-del-comando]]
Los tres comandos que hemos visto arriba, ejecutan el programa ls
con prioridad 12 y le pasan el fichero a data.txt
que luego vemos el contenido con el comando cat
. Si omitimos el valor de regulación, nice
utilizara el valor 10 por defecto. El rango de valores posibles es de -20 a 19, donde los valores negativos tienen la prioridad más alta. Sólo root
puede iniciar un programa con una prioridad incrementada (es decir, asignar un valor de prioridad negativo), no obstante cualquier usuario puede utilizar nice
para iniciar un programa con una prioridad baja. La prioridad por defecto para ejecutar un programa sin nice
es 0.
Si vemos que un proceso que está ejecutándose y consume demasiado tiempo de CPU o está siendo afectado por otros programas y, por tanto, se le debería asignar más tiempo de CPU, puede emplear el programa renice
para modificar su prioridad sin interrumpir el funcionamiento del programa. La sintaxis es:
renice prioridad [[-p] pids] [[-g] pgrps] [[-u] usuarios]]
Debe especificar la prioridad
, que recibe los mismos valores que en nice
. Además, debe especificar una o más PID (pids
), una o más ID de grupo (pgrps
) o uno o más nombres de usuario (usuarios
). En los últimos casos, renice
cambia la prioridad de todos los programas que coinciden con el criterio especificado, pero sólo root
puede utilizar renice
de esta manera. Una vez más, sólo root
puede incrementar la prioridad de un proceso. Si indica un valor numérico sin una opción -p
, -g
o -u
, renice
asume que el valor es un PID. Podemos mezclar y combinar estos métodos de especificación.
Debe estar conectado para enviar un comentario.