Conceptos Fundamentales de Sistemas Operativos
Monitor residente: programa que permanece en memoria y transfiere automáticamente el control entre trabajos, incluyendo secuenciador, intérprete de control y manejo básico de E/S.
Gestión de Trabajos y E/S
JCL (Job Control Language): lenguaje utilizado en las tarjetas de control para indicar al monitor residente qué acciones realizar sobre los trabajos. Compuesto por tarjetas de control, que definen: ejecución de programas, datos de entrada y órdenes para el monitor.
Spooling: técnica que almacena temporalmente la salida en un buffer (disco) para enviarla luego a un dispositivo lento, permitiendo que la CPU continúe ejecutando otros trabajos.
Off-line: técnica donde las operaciones de entrada/salida se realizan en paralelo y separadas del procesamiento principal, usando dispositivos intermedios para evitar que la CPU quede ociosa.
On-line: procesamiento donde las operaciones de entrada/salida se realizan directamente con el dispositivo mientras el programa se ejecuta, sin uso de dispositivos intermedios.
Definición de Sistema Operativo
Sistema Operativo: es el soporte lógico que controla el funcionamiento del equipo físico. Administra los recursos ofrecidos por el hardware y facilita su uso, ocultando su complejidad y proporcionando una forma sencilla de acceso. A su vez, genera niveles de privilegio para proteger la información de los usuarios.
- Intermediario: conecta usuario, aplicaciones y hardware, facilitando su uso.
- Gestor de recursos: administra CPU, memoria, E/S; asigna recursos de forma controlada.
- Abstracción: oculta la complejidad del hardware ofreciendo interfaces simples.
Gestión de Procesos y Planificación
Proceso: programa en ejecución junto con su estado y entorno asociado (registros, memoria, variables, etc.).
Programa: conjunto de instrucciones almacenadas (código), que constituye una entidad pasiva.
PCB (Process Control Block): estructura del sistema operativo que almacena toda la información necesaria para gestionar un proceso (estado, PID, registros, memoria, archivos abiertos, prioridad y datos estadísticos).
Hilos: es una unidad de ejecución dentro de un proceso; son mini ejecuciones dentro de un proceso que permiten realizar múltiples tareas concurrentes compartiendo recursos. Son útiles para mejorar el rendimiento, evitar bloqueos y aprovechar múltiples CPUs.
Clasificación y Privilegios
Clasificación de procesos:
- Según diseño: reutilizables.
- Según acceso a CPU/recursos: apropiativos y no apropiativos.
- Según permanencia en memoria: residentes e intercambiables.
- Según nivel de privilegio: privilegiados y no privilegiados.
Proceso privilegiado: se ejecuta en modo supervisor (kernel) y tiene acceso completo al hardware y a todas las instrucciones.
Proceso no privilegiado: se ejecuta en modo usuario, con acceso restringido y solo puede usar un subconjunto de instrucciones.
Algoritmos de Planificación
Planificador (scheduler): componente del sistema operativo que asigna el tiempo del procesador entre los procesos disponibles, decidiendo cuál se ejecuta y cuándo. Sus objetivos son:
- Asegurar justicia.
- Maximizar el rendimiento y usuarios simultáneos.
- Garantizar predecibilidad.
- Minimizar la sobrecarga (cambios de contexto).
- Equilibrar el uso de recursos y respetar prioridades.
FCFS (First Come First Served): algoritmo de planificación que ejecuta los procesos en el orden en que llegan, sin interrupciones.
Round Robin: algoritmo de planificación cíclico que asigna a cada proceso un tiempo fijo (quantum); si no termina, se interrumpe y vuelve al final de la cola de listas.
SJN (Shortest Job Next): selecciona el proceso con menor tiempo de ejecución estimado para ejecutarse primero.
SRT (Shortest Remaining Time): versión apropiativa del SJN; ejecuta el proceso con menor tiempo restante, pudiendo interrumpir al actual.
Despachador apropiativo: es el componente que asigna la CPU a los procesos y puede interrumpirlos, guardando su estado y realizando el cambio de contexto para ejecutar otro.
Cambio de contexto: ocurre cuando el SO interrumpe un proceso y guarda su estado para ejecutar otro, típicamente por fin de quantum, llegada de un proceso más corto o bloqueo por E/S.
Recursos y Sincronización
Condición de carrera: situación donde dos o más procesos acceden a datos compartidos y el resultado depende del orden y momento de ejecución.
RSR (Recurso de Hardware Reutilizable): recurso que puede ser usado múltiples veces, pero solo por un proceso a la vez (ej: impresora).
Daemon: proceso que se ejecuta en segundo plano y realiza tareas del sistema como impresión, correo o servicios de red.
Cron: utilidad del sistema que permite programar la ejecución automática de tareas o scripts en momentos determinados.
Almacenamiento y File System
Sistemas RAID
RAID 1: realiza espejado de datos, es decir, cada dato se copia en otro disco. Tiene alta redundancia, pero la capacidad se reduce a la mitad y no mejora el rendimiento.
RAID 5: distribuye la paridad entre los discos, mejora el rendimiento (especialmente lectura) y tolera la falla de un disco.
RAID 6: distribuye doble paridad entre los discos y tolera la falla de hasta dos discos simultáneamente.
Gestión de Archivos
File System: componente del sistema operativo que administra archivos y el almacenamiento secundario, incluyendo acceso, permisos, dueño, estructura jerárquica e integridad. Sus funciones incluyen:
- Crear, modificar y eliminar archivos.
- Controlar acceso y permisos.
- Organizar en estructura jerárquica.
- Compartir archivos y transferir información.
- Soportar respaldo y recuperación.
Organización de archivos: modelos que definen cómo se almacenan y acceden los registros en el almacenamiento secundario:
- Secuencial: registros en orden físico.
- Directo: acceso por dirección.
- Secuencial indexado: acceso mediante índices.
- Por partición: organización en directorios.
