Gestión de Procesos

Ciclo de vida, Hilos y Concurrencia

Definición

Un programa es pasivo (disco), un proceso es activo (RAM + CPU).

Un proceso es la unidad de trabajo del sistema. Incluye el código del programa, sus datos, y el PCB (Process Control Block) que almacena su estado, ID (PID) y registros.

Hilos (Threads)

Son la unidad más pequeña de procesamiento. Un proceso puede contener múltiples hilos que:

  • Comparten la misma memoria y recursos.
  • Son más rápidos de crear que un proceso nuevo.
  • Permiten realizar tareas simultáneas (ej. guardar y escribir a la vez).

Ciclo de Vida del Proceso

Diagrama de flujo del Ciclo de Vida

El proceso se crea y pasa a la cola de "Listos", esperando que el planificador le asigne la CPU.

Tiene el control de la CPU y ejecuta instrucciones. Puede ser interrumpido por tiempo (Quantum) o por operaciones de E/S.

Espera un evento externo (leer archivo, entrada de usuario). No usa CPU durante la espera.

Planificación de CPU

¿Cómo decide el SO quién usa el procesador?

FCFS (First-Come, First-Served)

Algoritmo no apropiativo. Atiende en estricto orden de llegada.

Desventaja: Efecto Convoy.
Round Robin (RR)

Asigna un Quantum a cada proceso. Si no termina, vuelve al final de la cola.

Equidad y buena respuesta en multitarea.

Sincronización y Problemas

Condición de Carrera

El resultado depende del orden no controlado de ejecución de hilos.

Mutex y Semáforos

Protegen secciones críticas evitando conflictos.

Deadlock

Dos procesos se espera mutuamente impidiendo avanzar.