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
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
Diferencie entre programa y proceso, ilustrando con un ejemplo práctico en un sistema operativo.
Explique el ciclo de vida de un proceso y describa al menos tres transiciones entre estados.
¿Qué es el PCB (Process Control Block) y por qué es fundamental para la gestión de procesos?
Compare los algoritmos de planificación FCFS, SJF, Round Robin y Prioridad, indicando ventajas y desventajas de cada uno.
¿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):
Claridad y precisión en respuestas teóricas
Correcta implementación del código Python
Análisis de mecanismos de sincronización
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