Gestión de procesos
¿Qué es un proceso?
Lección 1 de 8
Entender qué es un proceso en Linux y cómo el sistema operativo ejecuta programas.
Objetivos
- Comprender qué es un proceso
- Diferenciar entre programa y proceso
- Entender cómo Linux gestiona la ejecución de programas
Lección
¿Qué es un proceso?
Cuando ejecutas un programa en Linux, el sistema operativo crea algo llamado proceso.
Un proceso es simplemente un programa que está en ejecución.
Por ejemplo, cuando ejecutas un comando como:
ls
el sistema crea un proceso para ejecutar ese comando.
Una vez que el comando termina, el proceso desaparece.
Programa vs proceso
Es importante distinguir entre dos conceptos.
Programa
Un programa es un archivo almacenado en el disco.
Por ejemplo:
/usr/bin/ls
Es solo el código del programa.
Proceso
Un proceso es una instancia de ese programa ejecutándose en memoria.
Incluye:
- el código del programa
- datos en memoria
- recursos del sistema
- estado de ejecución
En otras palabras:
un programa es algo almacenado, un proceso es algo ejecutándose.
Qué contiene un proceso
Cuando Linux crea un proceso, el sistema asigna varios recursos.
Por ejemplo:
- memoria
- tiempo de CPU
- identificador del proceso
- variables de entorno
- archivos abiertos
Esto permite que el programa funcione de manera independiente dentro del sistema.
Identificador de proceso (PID)
Cada proceso en Linux tiene un número único llamado:
PID (Process ID)
Este número permite al sistema identificar cada proceso.
Por ejemplo:
ps
podría mostrar algo como:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
1256 pts/0 00:00:00 ls
Aquí:
1234es el PID del procesobash1256es el PID del procesols
Procesos en segundo plano
No todos los procesos requieren interacción directa del usuario.
Muchos procesos se ejecutan en segundo plano.
Ejemplos:
- servicios del sistema
- servidores web
- bases de datos
- demonios del sistema
Estos procesos pueden ejecutarse continuamente mientras el sistema está activo.
El primer proceso del sistema
Cuando Linux inicia, el sistema crea un proceso especial llamado:
PID 1
Este proceso es responsable de iniciar otros procesos del sistema.
En sistemas modernos suele ser:
systemd
Este proceso actúa como el padre de muchos procesos del sistema.
Jerarquía de procesos
Los procesos en Linux forman una estructura jerárquica.
Cada proceso puede crear otros procesos llamados procesos hijos.
Por ejemplo:
systemd (PID 1)
├─ sshd
│ └─ bash
│ └─ ls
Aquí:
systemdinicia serviciossshdinicia sesiones remotasbashejecuta comandoslses un proceso temporal
Esta estructura ayuda al sistema a organizar la ejecución de programas.
Estados de los procesos
Un proceso puede encontrarse en diferentes estados.
Por ejemplo:
- ejecutándose
- esperando recursos
- en pausa
- terminado
Linux gestiona constantemente estos estados para distribuir el uso del procesador entre los procesos activos.
Idea clave de esta lección
Un proceso es un programa en ejecución.
Linux crea procesos para ejecutar comandos, aplicaciones y servicios, y los administra mediante identificadores únicos llamados PID.
Repaso
- Un proceso es un programa en ejecución.
- Cada proceso tiene un identificador llamado PID.
- Los procesos utilizan recursos como memoria y CPU.
- Los procesos pueden crear procesos hijos.
- Linux organiza los procesos en una estructura jerárquica.