Introducción
En este desafío, explorarás cómo gestionar la planificación de procesos en un sistema Linux. La planificación de procesos es una función clave del sistema operativo que determina qué proceso puede utilizar la CPU y durante cuánto tiempo. Como administrador de sistemas, puedes influir en esta planificación ajustando las prioridades de los procesos. Utilizarás los comandos nice y renice para controlar la prioridad de los procesos, una habilidad fundamental para optimizar el rendimiento del sistema y garantizar que las aplicaciones críticas reciban los recursos que necesitan.
Iniciar un Proceso con una Prioridad Personalizada
En Linux, cada proceso tiene un valor "nice", que influye en su prioridad de planificación. Este valor oscila entre -20 (máxima prioridad) y 19 (mínima prioridad). El comando nice permite ejecutar un nuevo comando con un valor nice específico. Ten en cuenta que solo el usuario root (o un usuario con privilegios de sudo) puede establecer un valor nice negativo para aumentar la prioridad de un proceso.
Tareas
- Utiliza el comando
nicepara iniciar un nuevo procesosleep 600en segundo plano. - Asigna al nuevo proceso una prioridad alta con un valor nice de
-10. - Verifica la prioridad del nuevo proceso utilizando el comando
ps.
Requisitos
- El comando a ejecutar es
sleep 600. - El proceso debe iniciarse con un valor nice de
-10. - Debes usar
sudopara asignar un valor nice negativo. - El proceso debe ejecutarse en segundo plano para que puedas seguir utilizando la terminal.
Ejemplo
Tras iniciar el proceso, la salida de ps -e -o pid,ni,comm | grep sleep debería mostrar el proceso sleep con un valor NI (nice) de -10. El PID variará.
ps -e -o pid,ni,comm | grep sleep
2250 -10 sleep
También puedes usar ps -e -o pid,ni,comm para ver todos los procesos y sus valores nice:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 -10 sleep
Ajustar la Prioridad de un Proceso en Ejecución con renice
A veces es necesario cambiar la prioridad de un proceso que ya se está ejecutando. Para ello, puedes utilizar el comando renice. Al igual que con nice, necesitas privilegios de sudo para aumentar la prioridad (establecer un valor nice más bajo o más negativo) de un proceso. También necesitas sudo para cambiar la prioridad de un proceso que pertenece a otro usuario, como root.
Tareas
- Busca el ID de proceso (PID) del proceso
sleep 600que iniciaste en el paso anterior. - Utiliza el comando
renicepara cambiar su prioridad a una más baja, con un valor nice de5. - Verifica el nuevo nivel de prioridad utilizando el comando
ps.
Requisitos
- El proceso objetivo es el proceso
sleep 600del paso anterior. - El nuevo valor nice debe ser
5. - Debes usar
sudopara cambiar la prioridad del proceso (ya que se inició consudoy pertenece aroot).
Ejemplo
Después de ejecutar el comando renice, la salida de ps -e -o pid,ni,comm | grep sleep debería mostrar el proceso sleep con un nuevo valor NI de 5.
ps -e -o pid,ni,comm | grep sleep
2250 5 sleep
También puedes usar ps -e -o pid,ni,comm para ver todos los procesos:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 5 sleep
Resumen
En este desafío, has aprendido los conceptos fundamentales para ajustar las prioridades de planificación de procesos en un sistema Linux. Has practicado el uso del comando nice para lanzar un nuevo proceso con una prioridad específica y el comando renice para modificar la prioridad de un proceso que ya está en ejecución. También has aprendido que aumentar la prioridad de un proceso (establecer un valor nice negativo) requiere privilegios administrativos (sudo). Estas habilidades son esenciales para la administración de sistemas y el ajuste del rendimiento.



