GESTIÓN DE PROCESOS

Función fundamental del sistema operativo que se encarga de crear, planificar, ejecutar y finalizar los procesos que se ejecutan en un sistema informático. Un proceso es un programa en ejecución que requiere recursos del sistema.

Objetivos de Aprendizaje

Objetivos Generales

  • Identificar los diferentes tipos de procesos
  • Comprender cómo el sistema operativo administra los procesos
  • Relacionar la gestión de procesos con el rendimiento global del sistema

Objetivos Específicos

  • Diferenciar los tipos de procesos en un sistema operativo
  • Comprender cómo se crean, ejecutan y eliminan procesos
  • Explicar la jerarquía de procesos (padre/hijo)
  • Analizar la importancia de la asignación de recursos
  • Identificar procesos usando herramientas del sistema

Conceptos Fundamentales

Programa: Conjunto de instrucciones que realizan una tarea específica cuando se ejecutan. Ejemplo: Un archivo ejecutable de un procesador de texto.

Proceso: Programa en ejecución, que requiere recursos del sistema como CPU, memoria, dispositivos de entrada/salida. Es una instancia activa de un programa.

Diferencias Clave

  • Programa: Pasivo - archivo en disco
  • Proceso: Activo - en ejecución en memoria
  • Un programa se convierte en proceso cuando es cargado en memoria
  • Ejemplo: Al ejecutar un .exe, se inicia un proceso

Importancia

  • Base de la administración del sistema operativo
  • Permite multitarea (ejecución simultánea)
  • Optimiza rendimiento y estabilidad del sistema
  • Habilidad esencial para ingenieros de sistemas

Ejemplo Práctico

Dos ventanas de Google Chrome corresponden a dos procesos diferentes, cada uno con su propio espacio de memoria y contexto.

# En Linux, ver procesos de Chrome
$ ps aux | grep chrome

# En Windows, usar Administrador de Tareas

Ciclo de Vida de un Proceso

Nuevo (New)
Listo (Ready)
Ejecución (Running)

Bloqueado (Waiting)
Terminado (Terminated)

Estados del Proceso

  • Nuevo: Cuando se crea un proceso
  • Listo: Proceso cargado en memoria, esperando CPU
  • Ejecución: Proceso siendo ejecutado por la CPU
  • Bloqueado: Espera evento o recurso externo
  • Terminado: Finaliza ejecución

Transiciones

  • Nuevo → Listo: Proceso preparado para ejecutarse
  • Listo → Ejecución: CPU selecciona el proceso
  • Ejecución → Bloqueado: Necesita recurso externo
  • Bloqueado → Listo: Recurso disponible
  • Ejecución → Terminado: Finaliza su ejecución

Tipos de Procesos

Independientes vs. Interdependientes

Independientes: No dependen de otros procesos ni comparten recursos.

Ejemplo: Editar documento en Word sin conexión.

Interdependientes: Comparten recursos e información.

Ejemplo: Navegador que se comunica con gestor de descargas.

Usuario vs. Sistema

Usuario: Iniciados por aplicaciones del usuario.

Ejemplo: Word, Excel, Spotify.

Sistema: Iniciados por el SO para mantener funcionamiento.

Ejemplo: init en Linux, winlogon.exe en Windows.

Primer vs. Segundo Plano

Primer plano: Requieren interacción directa del usuario.

Ejemplo: Ventana de Word activa.

Segundo plano: Se ejecutan sin intervención directa.

Ejemplo: Antivirus ejecutando escaneo programado.

PCB - Process Control Block

Definición: Estructura de datos que contiene la información necesaria para gestionar y supervisar un proceso en el sistema operativo.

Componente Descripción Importancia
PID (Process ID) Identificador único del proceso Permite referenciar y gestionar el proceso
Estado del Proceso Estado actual en el ciclo de vida Determina si puede usar la CPU
Contador de Programa Dirección de próxima instrucción Mantiene el flujo de ejecución
Registros Información temporal del proceso Preserva estado durante interrupciones
Información de Planificación Prioridad, tiempo de CPU asignado Base para decisiones del scheduler
Información de Memoria Segmentos de memoria asignados Gestión de espacio de direcciones
Información de E/S Dispositivos y archivos utilizados Control de acceso a recursos

Planificación de Procesos

Concepto de Planificación

Mecanismo mediante el cual el sistema operativo decide cuál de los procesos listos será ejecutado por la CPU en un momento dado.

Objetivos: Maximizar uso de CPU, maximizar rendimiento del sistema, minimizar tiempo de espera.

Algoritmo Descripción Ventajas Desventajas
FCFS
(First-Come, First-Served)
Procesos se atienden en orden de llegada Simple, justo, fácil de implementar Tiempo de espera largo, efecto convoy
SJF
(Shortest Job First)
Proceso con menor tiempo de ejecución se atiende primero Minimiza tiempo promedio de espera Difícil predecir duración, inanición
Round Robin
(RR)
Cada proceso recibe un "quantum" de tiempo Justo, buena respuesta, evita inanición Muchos cambios de contexto
Planificación por Prioridad Procesos con mayor prioridad se ejecutan primero Atención a procesos importantes Inanición de procesos de baja prioridad

Sincronización y Comunicación

Sincronización de Procesos

Problema: Condiciones de carrera cuando varios procesos acceden a recursos compartidos sin coordinación.

Mecanismos:

  • Semáforos: Variables que controlan acceso con wait() y signal()
  • Monitores: Estructuras que aseguran acceso exclusivo
  • Mutex: Permiten acceso exclusivo a secciones críticas

Interbloqueo (Deadlock)

Definición: Estado donde varios procesos esperan indefinidamente por recursos ocupados por otros.

Condiciones (Coffman):

  • Mutua Exclusión
  • Retención y Espera
  • No Apropiación
  • Espera Circular

Prevención y Evitación

Algoritmo del Banquero: Asigna recursos solo si el sistema queda en estado seguro.

Estrategias:

  • Prevención mediante reglas del sistema
  • Técnicas de detección
  • Mecanismos de recuperación

Glosario de Términos

Proceso
Programa en ejecución que necesita recursos del sistema
PID
Identificador único del proceso
PCB
Estructura de datos para gestionar un proceso
Proceso Padre/Hijo
Relación jerárquica de procesos
Scheduler
Planificador de CPU
Foreground/Background
Procesos visibles y ocultos para el usuario
Semáforo
Variable para gestionar acceso a recursos compartidos
Mutex
Mecanismo para exclusión mutua en secciones críticas
Interbloqueo
Situación donde procesos están bloqueados esperando recursos ocupados
Quantum
Tiempo asignado a un proceso en Round Robin
Context Switch
Cambio de un proceso a otro en la CPU
Multitarea
Capacidad de ejecutar múltiples procesos simultáneamente