Antes de sumergirnos en las aplicaciones prácticas de la gestión de procesos, es esencial comprender qué son los procesos de Linux y cómo funcionan. Este tema puede parecer complejo a medida que exploramos los detalles, así que siéntete libre de volver a consultar esta lección más tarde si es necesario.
¿Qué es un Proceso de Linux
A un proceso se le llama un programa en ejecución. Más precisamente, es una instancia de un programa en ejecución al que el sistema ha asignado recursos como memoria, tiempo de CPU y E/S. Por ejemplo, si abres tres ventanas de terminal, ejecutas el comando cat en dos de ellas sin argumentos (esperará la entrada estándar, manteniendo el proceso activo) y luego usas la tercera ventana para ejecutar ps aux | grep cat, verás dos procesos cat distintos. Cada uno es una instancia separada del mismo programa, con su propio ID de proceso único y asignación de recursos.
El Papel del Kernel en la Gestión de Procesos
El kernel de Linux es responsable de toda la gestión de procesos. Cuando ejecutas un programa, el kernel carga su código en la memoria, asigna los recursos del sistema necesarios y comienza a rastrearlo como un proceso. El kernel mantiene información detallada para cada proceso, incluyendo:
- El estado del proceso
- Los recursos que el proceso está utilizando y recibiendo
- El propietario del proceso
- El manejo de señales (más sobre esto más adelante)
- Y básicamente todo lo demás
Todos los procesos activos compiten por los recursos del sistema. El kernel actúa como un planificador (scheduler), asegurando que cada proceso reciba una parte justa de los recursos según su prioridad y necesidades. Cuando un proceso completa su tarea o es terminado, el kernel recupera los recursos que estaba utilizando, poniéndolos a disposición de otros procesos.