Procesos: creación, estados y finalización
Un proceso es un programa en ejecución junto con todos los recursos que necesita para funcionar (código, datos, memoria, CPU, archivos abiertos, etc.). 👉 El proceso es la unidad básica de trabajo para el sistema operativo.
1. Creación de procesos #
Un proceso puede crearse de distintas formas:
-
Inicio de programa por el usuario
- Ejemplo: doble clic en Word → se crea un proceso Word.
-
Llamada de un proceso padre
- Un proceso puede generar procesos hijos.
- Ejemplo: un navegador abre un nuevo proceso por cada pestaña.
-
Procesos del sistema
- Algunos procesos los crea el propio SO en el arranque (demonios en Linux, servicios en Windows).
👉 El SO mantiene una tabla de procesos (PCB, Process Control Block) con información de cada proceso: identificador, estado, memoria asignada, archivos abiertos, etc.
2. Estados de un proceso #
Un proceso no siempre está ejecutándose. Puede pasar por distintos estados:
- Nuevo → el proceso está siendo creado.
- Listo (Ready) → está preparado para ejecutarse, esperando turno de CPU.
- Ejecución (Running) → está usando la CPU en ese momento.
- Bloqueado (Waiting) → está detenido temporalmente esperando un recurso (ej. lectura de disco).
- Terminado (Exit) → el proceso ha finalizado.
📌 El SO se encarga de mover los procesos de un estado a otro mediante planificación y cambio de contexto.
3. Finalización de procesos #
Un proceso puede terminar por:
- Ejecución normal → completó su tarea.
- Finalización forzada → el usuario lo cierra (ej. "Finalizar tarea" en Windows).
- Error interno → falla por falta de memoria o división por cero.
- Eliminación por el sistema → el SO lo mata si afecta la estabilidad.
Cuando un proceso termina:
- Se liberan sus recursos (CPU, memoria, archivos).
- Su PCB se elimina de la tabla de procesos.
- Si tenía procesos hijos, el SO puede eliminarlos también (dependiendo del diseño).
4. Ejemplo práctico #
- Abres Google Chrome → el SO crea un proceso y lo marca como Nuevo → Listo.
- Al ejecutar, pasa a Running.
- Si esperas que cargue una página, entra en Bloqueado hasta que llegan los datos de internet.
- Cuando cierras Chrome, el proceso se termina y libera memoria.
Resumen del tema
Conceptos clave #
- Estructura y Ciclo de Vida del Proceso: unidad activa compuesta por código (.text), datos (.data/.bss), memoria dinámica (heap) y pila de llamadas (stack).
- Mecanismos de Creación: llamadas al sistema (
fork()/exec()en POSIX,CreateProcess()en Windows) y jerarquía de procesos padre-hijo (procesos zombi y huérfanos). - Transición de Estados: Nuevo Listo Ejecución Bloqueado Terminado, monitorizado a través del Bloque de Control de Proceso (PCB).
- Causas de Finalización: salida voluntaria (
exit()), terminación involuntaria por señales de excepción (fallo de segmentación, aborto) o señales del administrador (SIGTERM/SIGKILL).
Qué debes recordar #
El proceso es la unidad fundamental de ejecución del SO, cuyo ciclo de vida completo (creación, transiciones de estado y liberación de recursos) es controlado a través del PCB.