Gestión de Procesos

Gestión de Procesos en Sistemas Operativos

Descubre los fundamentos de la gestión de procesos, desde su ciclo de vida hasta las técnicas avanzadas de planificación y sincronización que hacen posible la multitarea moderna.

5
Estados del Proceso
4
Algoritmos Principales
Procesos Concurrentes

Definición de Proceso

Programa vs. Proceso

Un programa es un conjunto pasivo de instrucciones almacenadas en disco, mientras que un proceso es un programa en ejecución activa que utiliza recursos del sistema como CPU, memoria y dispositivos de E/S.

Entidad Activa

Un proceso es una entidad activa con su propio contexto de ejecución, contador de programa, registros de CPU y espacio de direcciones en memoria.

Ciclo de Vida de un Proceso

Nuevo

Proceso creado

Listo

Espera asignación de CPU

Ejecutando

Se ejecuta en la CPU

Esperando

A la espera de un evento

Terminado

Finalizó su ejecución

Estructura de un Proceso (PCB)

Process Control Block

El PCB almacena toda la información necesaria para gestionar un proceso:

Identificador (PID)

Número único que identifica al proceso

Estado actual

Nuevo, Listo, Ejecutando, Esperando, Terminado

Contador de programa

Dirección de la siguiente instrucción a ejecutar

Registros de CPU

Estado de todos los registros del procesador

Información de planificación

Prioridad, quantum, tiempo de CPU usado

Recursos de E/S

Archivos abiertos, pipes, colas de comunicación

Tipos de Procesos y Jerarquía

Dependencia

Independientes: No dependen de otros procesos
Interdependientes: Requieren datos o recursos de otros procesos

Origen

Usuario: Iniciados por aplicaciones del usuario
Sistema: Iniciados por el sistema operativo

Interacción

Primer plano: Requieren interacción directa
Segundo plano: Ejecutan sin intervención del usuario

Jerarquía

Padre: Crea otros procesos (fork, CreateProcess)
Hijo: Creado por un proceso padre

Planificación de Procesos

Objetivos principales: Garantizar equidad, eficiencia, minimizar tiempo de respuesta y maximizar la utilización de la CPU.

Algoritmos de planificación de procesos con sus características principales
Algoritmo Descripción breve Ventaja Desventaja
FCFS Orden de llegada (First Come, First Served) Simple de implementar Efecto convoy en procesos largos
SJF Prioriza el trabajo más corto (Shortest Job First) Minimiza tiempo de espera promedio Posible inanición de procesos largos
Round Robin Quantum fijo de tiempo por proceso Equidad y tiempo de respuesta predecible Rendimiento depende del tamaño del quantum
Prioridades Asignación según nivel de prioridad Control sobre procesos urgentes Inanición de procesos de baja prioridad

Sincronización e Interbloqueo

Sincronización

Asegura el acceso ordenado a recursos compartidos mediante:

  • Semáforos: Contadores para controlar acceso
  • Mutex: Exclusión mutua binaria
  • Monitores: Estructuras de alto nivel

Condiciones de Interbloqueo

1 Exclusión mutua
2 Retención y espera
3 No apropiación
4 Espera circular

Prevención y Recuperación

  • Algoritmo del banquero
  • Detección y reinicio de procesos
  • Evitar condiciones de Coffman

Hilos (Threads)

Los hilos son la unidad más pequeña de ejecución dentro de un proceso. Comparten el mismo espacio de direcciones pero tienen su propio stack y registros.

Modelos de Hilos

  • Usuario: Gestionados por bibliotecas
  • Kernel: Gestionados por el SO
  • Híbrido: Combinación de ambos

Ventajas

  • Menor sobrecarga de creación
  • Paralelismo real en sistemas SMP
  • Comunicación rápida (memoria compartida)
  • Mejor respuesta en aplicaciones interactivas

Problemas

  • Condiciones de carrera (race conditions)
  • Interbloqueos (deadlocks)
  • Inanición (starvation)
  • Complejidad en la sincronización