Gestión de Procesos

Un proceso es una instancia de un programa en ejecución, con su propio espacio de memoria y contexto[254].

Un programa es pasivo (instrucciones en disco), mientras que un proceso es activo (requiere CPU y recursos)[467]. Al ejecutar un archivo `.exe`, el programa se convierte en proceso[473].

Process Control Block (PCB)

Es la estructura de datos vital para gestionar el proceso[508]. Contiene:

  • PID: Identificador único del proceso[510].
  • Estado: Situación actual (Nuevo, Listo, etc.)[511].
  • Contador de Programa: Dirección de la próxima instrucción[512].
  • Registros y Memoria: Datos temporales y segmentos asignados[512, 514].
Programa vs Proceso

Tipos de Procesos

Clasificación Descripción Ejemplo
Independientes vs. Interdependientes Los independientes no comparten recursos. Los interdependientes se comunican y comparten datos[270, 271]. Word (Indep) vs Navegador (Inter)
Usuario vs. Sistema Iniciados por aplicaciones vs iniciados por el SO para mantenimiento[274, 276]. Spotify vs Winlogon
Primer vs. Segundo Plano Interacción directa (visible) vs ejecución oculta (background)[280, 282]. Juego activo vs Antivirus

Ciclo de Vida del Proceso

Un proceso transita por 5 estados fundamentales[476]. Las transiciones son controladas por el planificador:

Diagrama Estados
  • Nuevo: Se crea el proceso[477].
  • Listo (Ready): En memoria, esperando turno de CPU[478].
  • Ejecución (Running): La CPU ejecuta sus instrucciones[479].
  • Bloqueado (Waiting): Espera un evento (E/S) o recurso[480].
  • Terminado: Finaliza su ejecución[481].
Transiciones Clave: De Ejecución a Listo ocurre por interrupción (se acaba el tiempo). De Ejecución a Bloqueado ocurre si el proceso pide leer un archivo[485, 488].

Hilos (Threads)

Un hilo es la unidad más pequeña de procesamiento. Comparte memoria con su proceso padre, lo que reduce la sobrecarga[346, 350].

Modelos de Hilos
  • Nivel Usuario: Gestionados por librerías, sin intervención del kernel. Rápidos pero no aprovechan multinúcleo[357].
  • Nivel Kernel: Gestionados por el SO. Permiten paralelismo real pero tienen más sobrecarga[359].
  • Híbrido: Combina ambos para equilibrar eficiencia y rendimiento[360].

Algoritmos de Planificación

El objetivo es maximizar el uso de la CPU. Se usan métricas como TR (Tiempo Retorno) y TE (Tiempo Espera)[109, 111].

FCFS (First-Come, First-Served)

Orden de llegada. Simple, pero sufre "efecto convoy" (procesos largos bloquean a los cortos)[128].

Round Robin (RR)

Asigna un tiempo límite (Quantum) a cada proceso. Equitativo, pero con sobrecarga si el quantum es pequeño[138].

SJF (Shortest Job First)

Atiende primero al proceso más corto. Optimiza los tiempos de espera[529].

Prioridad

Ejecuta procesos según su importancia. Puede causar "hambre" (starvation) a procesos de baja prioridad[532, 405].

Sincronización y Problemas

Vital para procesos que comparten recursos. Sin ella, ocurren conflictos graves[401].

Problema Definición
Condición de Carrera El resultado depende del orden incorrecto de ejecución en una sección crítica[403].
Interbloqueo (Deadlock) Dos o más procesos se bloquean esperando recursos que el otro tiene[404].
Productor-Consumidor Problema clásico donde se debe evitar que se llene el buffer (productor) o se lea vacío (consumidor)[412].
Deadlock

Soluciones

  • Semáforos: Variables enteras para controlar acceso[407].
  • Mutex: Exclusión mutua estricta para secciones críticas[408].

Referencias Bibliográficas

  • [15-63, 254-320] Rueda Fajardo, E. (2025). Unidad 1 y 2: Intro y Procesos. Universidad de Pamplona.
  • [340-444] Rueda Fajardo, E. (2025). Hilos en Sistemas Operativos. Universidad de Pamplona.
  • [445-582] Rueda Fajardo, E. (2025). Gestión de Procesos. Universidad de Pamplona.
  • [98-159] Rueda Fajardo, E. (2025). Cálculo de Tiempos de Planificación. Universidad de Pamplona.