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
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.