Resumen de Conceptos Clave de Sistemas Operativos
Conceptos Clave de Sistemas Operativos: Guía Completa para Estudiantes
Introducción
Los sistemas operativos administran recursos y ejecutan programas transformándolos en entidades llamadas procesos y hilos. Este material explica qué es un proceso, cómo se gestiona su ciclo de vida, diferencias clave entre procesos e hilos, planificación y sincronización básica, además de conceptos asociados a entrada/salida y tiempo real.
Definición: Un proceso es una abstracción de un programa en ejecución que incluye su espacio de direcciones, registros del procesador, contador de programa, pila y recursos asignados.
1. ¿Qué es un proceso? — Elementos y estructura
- Un proceso contiene:
- Código (segmento de texto)
- Datos (segmento de datos)
- Pila (stack) para llamadas y variables locales
- Montón (heap) para memoria dinámica
- Registros de CPU, incluido el contador de programa
- Recursos del sistema (archivos abiertos, descriptores)
Definición: La imagen de usuario de un proceso integra el segmento de texto, el segmento de datos, la pila y el montón.
1.1 Bloque de Control de Proceso (PCB)
- El núcleo guarda la información del proceso en su PCB.
- El PCB contiene el estado del proceso, registros, información de planificación y recursos asignados.
2. Ciclo de vida de un proceso
- Estados esenciales (modelo básico):
- En ejecución (Running): ocupa la CPU.
- Listo (Ready): puede ejecutarse pero espera la CPU.
- Bloqueado (Blocked): espera un evento externo (por ejemplo, E/S).
Definición: Cambio de contexto (context switch) ocurre cuando el SO suspende el proceso activo, guarda su estado en el PCB y carga el estado de otro proceso.
2.1 Cambio de contexto
- Ocurre en transiciones entre procesos debido a interrupciones, finalización de cuanto de tiempo, llamadas al sistema o eventos de E/S.
- El sistema guarda y restaura registros y el contador de programa.
3. Procesos vs Hilos
- Tabla comparativa:
| Característica | Proceso | Hilo |
|---|---|---|
| Espacio de direcciones | Aislado, propio | Compartido con hilos del mismo proceso |
| Contador de programa | Propio | Propio |
| Pila | Propia | Propia |
| Registros de CPU | Conjunto propio | Conjunto propio |
| Archivos abiertos | Copiados/propios | Compartidos |
| Comunicación entre entidades | Más costosa (IPC) | Más económica (memoria compartida) |
Definición: Un hilo es una unidad de ejecución dentro de un proceso que posee su propio contador de programa, pila y registros pero comparte el espacio de direcciones y recursos globales.
3.1 Características prácticas de hilos
- Menor sobrecarga al crear y cambiar contexto entre hilos que entre procesos.
- Uso típico: tareas ligadas que requieren acceso directo a la misma memoria (por ejemplo, un servidor multihilo que atiende conexiones).
4. Planificación de procesos
4.1 Agente decisor
- El planificador (Scheduler) decide qué proceso listo ocupará la CPU.
4.2 Planificación apropiativa vs no apropiativa
- Apropiativa (preemptive): el SO puede interrumpir un proceso en ejecución para asignar la CPU a otro proceso.
- No apropiativa (non-preemptive): un proceso retiene la CPU hasta que se bloquea o termina.
4.3 Round Robin (RR)
- Algoritmo apropiativo típico de sistemas de tiempo compartido.
- Asigna un cuanto de tiempo (quantum) fijo y cicla entre procesos listos.
- Métrica central: tamaño del quantum y tiempo de respuesta promedio.
Definición: Round Robin es un algoritmo apropiativo que da a cada proceso una porción de tiempo llamada cuanto de tiempo.
4.4 Hambruna (Starvation)
- Definición: situación donde un proceso listo es postergado indefinidamente porque el planificador favorece continuamente a otros procesos.
5. Sincronización y exclusión mutua (visión general)
ATENCIÓN: El detalle profundo de Concurrencia
¿Ya tienes cuenta? Iniciar sesión
Procesos y Hilos - Resumen
Klíčová slova: Sistemas operativos, Concurrencia
Klíčové pojmy: Un proceso es un programa en ejecución con su espacio de direcciones y PCB., El PCB almacena el estado y registros de un proceso que no está en ejecución., Estados básicos: Running, Ready, Blocked., Context switch guarda el estado del proceso y carga otro desde su PCB., Hilos comparten espacio de direcciones pero tienen contador, pila y registros propios., Round Robin usa un quantum fijo y es apropiativo., fork() crea un proceso hijo idéntico al padre en sistemas UNIX., E/S asincrónica devuelve control inmediato y necesita notificación posterior., Monitores agrupan datos y procedimientos garantizando exclusión mutua., Deadlock: procesos en ciclo de espera por recursos mutuos.