Cada proceso en el
sistema está corriendo con prioridades definidas, llamadas también
“nice value”, que puede variar desde -20 (mayor
prioridad) a 19 (menor prioridad). Si no está definido, cada
proceso correrá con prioridad 0 de manera predeterminada (la
prioridad “base” para la administración de procesos).
Los procesos con mayor prioridad (nice
value menor, hasta -20) serán agendados para
ejecutar más seguido que otros que tienen menor prioridad (hasta
19), garantizando así más ciclos del procesador para dichos
procesos. Los usuarios no privilegiados sólo pueden
bajar la prioridad de los procesos que poseen en el rango de 0 a
19. El superusuario (root
) puede ajustar la prioridad de
cualquier proceso a cualquier valor.
Si uno o más procesos usan muchos recursos del sistema, Usted puede cambiar las prioridades de los mismos en vez de terminarlos. Para hacerlo, se usa el comando renice. La sintaxis del mismo es la siguiente:
renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u] usuario ...]
donde
prioridad
es el valor de la prioridad,
pid
(use la opción -p
para
múltiples procesos) es el ID del proceso, pgrp
(precedido por la opción -g
) si son varios) es el
ID de grupo del proceso, y usuario
(-u
para más de uno) es el nombre de usuario del
dueño del proceso.
Supongamos que se está ejecutando un proceso con PID 785, el cual realiza una operación compleja de cálculo científico, y mientras el proceso está trabajando Usted desea jugar un juego para el que necesita liberar recursos del sistema. Entonces, debería teclear:
$ renice +15 785
En este caso, su proceso probablemente tardará un poco más en finalizar pero no evitará que otros procesos utilicen más tiempo de CPU.
Si Usted es el administrador del sistema y nota que algún usuario está corriendo muchos procesos que utilizan muchos recursos del sistema, puede cambiar la prioridad de los procesos de dicho usuario con un único comando:
# renice +20 -u peter
Luego de esto, todos los procesos de peter tendrán la prioridad menor y no obstruirán a los procesos lanzados por otros usuarios.
Ahora que sabe como puede cambiar la prioridad de los procesos, puede desear correr un comando con una prioridad definida. Para esto, utilice el comando nice.
En este caso debe
especificar su comando como una opción para nice. La opción
-n
se usa para ajustar el valor de la
prioridad. De manera predeterminada nice ajusta una
prioridad de 10.
Por ejemplo, Usted desea crear una imagen ISO de un CD-ROM de instalación de Mandriva Linux:
$ dd if=/dev/cdrom of=~/mandriva1.iso
En algunos sistemas con un CD-ROM IDE común, el proceso de la copia de un volumen grande de información puede utilizar muchos recursos del sistema. Para evitar que la copia bloquee a los demás procesos, se puede comenzar el proceso de copia con una prioridad disminuida usando este comando:
$ nice -n 19 dd if=/dev/cdrom of=~/mandriva1.iso