Tiempo estimado: 60 min | Nivel: Avanzado

Tema 5: Gestión Avanzada de Procesos

Profundizando en la planificación, sincronización y control de procesos en sistemas operativos

Objetivos de Aprendizaje

Definir y Diferenciar

Definir en detalle qué es un proceso y diferenciarlo de un programa

Analizar Ciclo de Vida

Describir y analizar el ciclo de vida de un proceso y sus estados

Comprender PCB

Explicar la estructura del PCB y su importancia en la gestión

Gestión Avanzada

Comprender planificación, sincronización e interbloqueo

1 Conceptos Fundamentales: Programa vs Proceso

Definiciones Clave

Programa

Definición: Conjunto de instrucciones que realizan una tarea específica cuando se ejecutan en un sistema operativo.

Características:

  • Es pasivo (archivo almacenado)
  • Ejemplo: Archivo .exe de un procesador de texto
  • No consume recursos hasta que se ejecuta
Proceso

Definición: Programa en ejecución que requiere recursos del sistema (CPU, memoria, E/S).

Características:

  • Es activo (en ejecución)
  • Ejemplo: Proceso iniciado al ejecutar un .exe
  • Consume recursos del sistema
Diferencias Clave
Aspecto Programa Proceso
Naturaleza Pasivo (archivo almacenado) Activo (en ejecución)
Recursos No consume recursos Consume CPU, memoria, E/S
Ejemplo Archivo winword.exe en disco Word.exe en ejecución en memoria
Ciclo de vida No tiene estados Tiene estados (nuevo, listo, etc.)
Ejemplo Práctico

Cuando se ejecuta un archivo .exe de una aplicación (programa), se inicia un proceso en el sistema operativo que ocupa memoria RAM y utiliza CPU.

2 Ciclo de Vida de un Proceso

Estados del Proceso
Nuevo (New)

Cuando se crea un proceso

Listo (Ready)

Cargado en memoria, esperando CPU

Ejecutando (Running)

Siendo ejecutado por la CPU

Esperando (Waiting)

Espera evento externo o recurso

Terminado (Terminated)

Finalizada su ejecución

Transiciones entre Estados
  • Nuevo → Listo: Proceso preparado para ejecutarse
  • Listo → Ejecutando: CPU selecciona el proceso
  • Ejecutando → Esperando: Proceso necesita recurso externo
  • Esperando → Listo: Recurso disponible
  • Ejecutando → Listo: Interrumpido por planificador
  • Ejecutando → Terminado: Finaliza ejecución
Diagrama de Estados
Nuevo
Listo
Ejecutando
Bloqueado
Terminado

Diagrama simplificado del ciclo de vida de un proceso con sus transiciones principales

3 PCB - Process Control Block

Definición del PCB

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

Identificador (PID)

Número único que identifica cada proceso en el sistema

Estado del Proceso

Estado actual en el ciclo de vida (nuevo, listo, ejecutando, etc.)

Contador de Programa

Dirección de la próxima instrucción a ejecutar

Registros

Información temporal que necesita el proceso durante ejecución

Información de Planificación

Prioridad, tiempo de CPU asignado, tiempo de llegada

Gestión de Memoria

Segmentos de memoria asignados al proceso

Información de E/S

Dispositivos y archivos utilizados por el proceso

Comunicación

Datos relacionados con mecanismos de comunicación (pipes, colas)

Importancia del PCB

El PCB es fundamental porque permite al sistema operativo: 1) Guardar el estado de un proceso cuando es interrumpido, 2) Restaurarlo cuando vuelve a ejecutarse, 3) Gestionar recursos asignados, 4) Mantener información de planificación y 5) Facilitar la comunicación entre procesos.

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

Objetivo 1

Maximizar el uso de la CPU

Objetivo 2

Maximizar rendimiento del sistema

Objetivo 3

Minimizar tiempo de espera

Algoritmos de Planificación
FCFS

First-Come, First-Served

Función: Procesos se atienden en el orden en que llegan

Característica: Simple pero puede causar "convoy effect"

SJF

Shortest Job First

Función: Proceso con menor tiempo de ejecución primero

Característica: Minimiza tiempo promedio de espera

Round Robin

Algoritmo RR

Función: Cada proceso recibe un "quantum" de tiempo

Característica: Justo pero puede tener overhead por cambios de contexto

Prioridad

Planificación por Prioridad

Función: Procesos con mayor prioridad se ejecutan primero

Característica: Puede causar inanición de procesos de baja prioridad

5 Sincronización de Procesos

Problemas de Sincronización
Condiciones de Carrera

Ocurren cuando varios procesos acceden a recursos compartidos sin coordinación adecuada, resultando en inconsistencias en los datos.

Mecanismos de Sincronización
Semáforos

Variables que controlan el acceso a recursos compartidos mediante operaciones wait() y signal()

Uso: Control de acceso a recursos limitados

Monitores

Estructuras que aseguran el acceso exclusivo a variables compartidas

Uso: Programación orientada a objetos

Mutex

Mecanismo de exclusión mutua que permite que solo un proceso acceda a una sección crítica a la vez

Uso: Protección de secciones críticas

Ejemplos Prácticos
  • Implementación de semáforos y mutex en C o Python
  • Resolución del problema de los filósofos comensales
  • Simulación de productor-consumidor con buffers compartidos

6 Interbloqueo (Deadlock)

Definición de Interbloqueo

Estado en el que varios procesos esperan indefinidamente por recursos que están siendo utilizados por otros procesos, creando un ciclo de espera.

Condiciones para el Interbloqueo
Mutua Exclusión

Los recursos no se pueden compartir; solo un proceso puede usarlos a la vez

Retención y Espera

Proceso retiene recursos mientras espera otros adicionales

No Apropiación

Los recursos no pueden ser quitados a un proceso

Espera Circular

Cadena circular de procesos donde cada uno espera un recurso retenido por el siguiente

Prevención y Evitación
Algoritmo del Banquero

Evita interbloqueos verificando estados seguros

Prevención

Mediante reglas del sistema que evitan alguna condición

Detección y Recuperación

Detección periódica y terminación selectiva de procesos

Ejemplos Prácticos

Simulación de interbloqueos y estrategias de resolución en Python. Implementación del algoritmo del banquero para gestión de recursos.

Actividad Evaluativa

Parte 1 - Preguntas Teóricas
1

Diferencie entre programa y proceso, ilustrando con un ejemplo práctico en un sistema operativo.

2

Explique el ciclo de vida de un proceso y describa al menos tres transiciones entre estados.

3

¿Qué es el PCB (Process Control Block) y por qué es fundamental para la gestión de procesos?

4

Compare los algoritmos de planificación FCFS, SJF, Round Robin y Prioridad, indicando ventajas y desventajas de cada uno.

5

¿Qué son las condiciones de carrera y cómo los mutex y semáforos ayudan a evitarlas?

Parte 2 - Ejercicio Práctico

Realiza las siguientes actividades prácticas:

  • Implementa un programa simple en Python que simule condiciones de carrera
  • Modifica el programa para incluir mecanismos de sincronización (mutex o semáforos)
  • Explica cómo tu implementación previene las condiciones de carrera
  • Incluye capturas de pantalla del código y la salida del programa
Criterios de evaluación (20 puntos):
5

Claridad y precisión en respuestas teóricas

5

Correcta implementación del código Python

5

Análisis de mecanismos de sincronización

5

Documentación completa y conclusiones

Entrega:

Documento con respuestas teóricas y archivos de código Python antes de la próxima sesión.

Material de Estudio

PDF del tema

Documentación completa sobre Gestión Avanzada de Procesos

Guía de estudio

Resumen y ejercicios avanzados

Video explicativo

Sincronización e interbloqueos en acción

Códigos ejemplo

Implementaciones en Python y C

Información del Tema

Docente

Ing. Eduardo Rueda F.

Unidad

Unidad 2: Gestión de Procesos

Universidad

Universidad de Pamplona

Programa

Ingeniería de Sistemas


Glosario de Términos
Proceso

Programa en ejecución que necesita recursos del sistema

Programa

Conjunto de instrucciones que se ejecutan para realizar una tarea

PCB

Process Control Block - Estructura que almacena información del proceso

PID

Process Identifier - Número único que identifica a un proceso

Semáforo

Variable para gestionar acceso a recursos compartidos

Mutex

Mecanismo para asegurar exclusión mutua en secciones críticas

Interbloqueo

Situación donde procesos están bloqueados esperando recursos


Enlaces Relacionados