Fundamentos de Sistemas Operativos: Un Recorrido Completo
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,99 KB
1. Concepto de Sistemas Operativos
Para que el hardware o parte física de un ordenador pueda funcionar, es necesario un conjunto de normas y órdenes que coordinen todos los procesos. Este conjunto se denomina software o parte lógica del sistema. El software se divide en dos grupos:
- Software básico o de sistema: Programas imprescindibles para el funcionamiento del sistema.
- Software de aplicación: Programas utilizados por el usuario para realizar tareas específicas.
El software básico constituye el Sistema Operativo. Una definición general de Sistema Operativo es:
Un conjunto de programas que controlan los programas de los usuarios (cargándolos, ejecutándolos, etc.) y los dispositivos de E/S (repartiéndolos entre varios usuarios), facilitando el uso del ordenador y optimizando su eficiencia.
En otras palabras, un sistema operativo administra permanentemente todos los recursos del sistema, minimizando el tiempo de respuesta y maximizando el rendimiento. Realiza asignaciones en memoria, controla las operaciones de E/S, maneja errores, y coordina la comunicación entre el usuario y el sistema.
Los recursos de un ordenador que el Sistema Operativo administra son:
- El procesador: Ejecuta instrucciones y controla los programas.
- La memoria interna: Almacena datos e instrucciones.
- La entrada/salida: Transmisión de datos entre unidades periféricas y la memoria.
- La información: Datos que manipula el ordenador.
Desde la perspectiva del control de recursos, un Sistema Operativo es el administrador que busca el rendimiento eficaz del hardware.
Los primeros sistemas operativos, denominados monolíticos, eran difíciles de modificar. Actualmente, la mayoría son abiertos, permitiendo modificaciones y ampliaciones sin alterar el núcleo. Estos sistemas operativos modernos se estructuran en niveles, cada uno con una función específica, como el control de interrupciones, periféricos de E/S, y la ubicación de programas y datos en memoria.
2. Evolución Histórica de los Sistemas Operativos
La evolución de los sistemas operativos está ligada a los avances del hardware:
Primera Generación (1945-1955)
Utilizaban válvulas de vacío, programadas en lenguaje máquina. Eran grandes, consumían mucha energía y lentas. Se introducían datos con tarjetas perforadas. Apareció la secuencia automática de trabajos con comandos. El monitor, programa que controlaba la secuencia, fue el primer sistema operativo.
Segunda Generación (1955-1965)
Se integraron transistores. Apareció el procesamiento por lotes, con tres labores fundamentales:
- Introducir datos en un soporte (tarjetas o cinta perforada).
- Procesar los datos en la computadora y almacenar resultados en otro soporte.
- Generar resultados en un dispositivo distinto a la computadora.
Tercera Generación (1965-1980)
Circuitos integrados. Ordenadores más pequeños, baratos y rápidos. El IBM 360 destacó. Apareció la multiprogramación (varios procesos a la vez) y las técnicas de spool (colas de espera). Los sistemas operativos eran complejos, con errores y pocos recursos.
Cuarta Generación (1980-Actualidad)
Computadoras personales. Técnicas de integración complejas. Memorias de semiconductores. Sistemas operativos más fáciles de usar, con interfaces sencillas. Surgieron MS-DOS, sistemas operativos en red, y Windows con entornos gráficos. Mayor potencia en gestión de hardware y distribución de programas y datos en memoria.
3. Modos de Explotación del Sistema Operativo
La forma en que el usuario utiliza los recursos hardware y software define el modo de explotación del sistema operativo. Está relacionada con la evolución histórica de los sistemas operativos.
3.1. Procesos en Lotes y en Tiempo Real
Dos formas fundamentales de explotación:
Procesos en lotes: Carga de datos, procesamiento en la computadora, y visualización/impresión de resultados en fases separadas. La obtención de resultados no es inmediata.
Procesos en tiempo real: El usuario introduce datos y obtiene resultados casi inmediatamente. La mayoría de ordenadores actuales funcionan en tiempo real, con hardware integrado y conectado directamente a la CPU.
3.2. Tipos de Sistemas Operativos
Clasificación según:
- Número de usuarios: Monousuario (MS-DOS) y Multiusuario (UNIX, Windows Server).
- Número de procesos: Monoprogramación/monotarea (MS-DOS) y Multiprogramación/multitarea (Windows NT, UNIX).
- Número de procesadores: Monoproceso (MS-DOS, Windows 95/98) y Multiproceso (UNIX, Windows NT, Linux).
- Tiempo de respuesta: Tiempo real y Tiempo compartido (sistemas multiusuario).
4. Estructura de un Sistema Operativo
Organizados en capas en torno a un núcleo:
Núcleo
Controla todo: arranque, tareas básicas, comunicación con el hardware, planificación de procesos. Módulo de nivel inferior que sirve a los demás.
- Registro de interrupciones: Gestiona las interrupciones (error de máquina, programa, E/S).
- Dispatcher (planificador de procesos): Decide el próximo proceso a ejecutar (FIFO, rueda, SJF, SRT, prioridad multinivel, HRN).
- Rutinas de apertura y cierre: Sincronizan el inicio y fin de cada proceso (espera activa, espera no activa, mecanismo de hardware).
Gestión de Memoria
Gestiona la memoria con limitaciones (cantidad, arquitectura, evitar sobreescritura). Formas de gestión: caché, páginas compartidas, segmentación, paginación.
Rutinas de Entrada/Salida
Conectan la CPU con dispositivos externos. Tipos: almacenamiento, interfaz de usuario, transmisión.
Intérprete de Comandos
Gestiona archivos, recursos y planifica trabajos. Interpreta las órdenes del usuario. Partes: residente, inicialización, transitoria.
5. Gestión del Proceso y del Procesador
Un proceso es un programa en ejecución. El SO conmuta entre procesos.
Funciones del SO:
- Planifica procesos.
- Gestiona recursos.
- Guarda el estado del proceso al cambiar.
Estados de un proceso:
- Nuevo
- Listo
- Ejecución
- Bloqueado
- Terminado
Planificación de Procesos
El planificador de la CPU decide qué proceso ejecutar. Criterios: minimizar tiempo inactivo de la CPU, productividad, minimizar tiempo de espera.
Algoritmos de planificación:
- FIFO
- Rueda (Round-robin)
- SJF
- SRT
- Prioridad multinivel
- HRN
Sincronización de Procesos
Ejecución en orden adecuado sin interferencias. Fase crítica: Sincronización para evitar acceso concurrente a datos. Semáforo: Herramienta de sincronización. Interbloqueo: Ignorado por el SO, requiere intervención del operador.
6. Administración de la Memoria
El administrador de memoria registra las partes de memoria usadas y libres.
6.1. Administración sin Intercambio o Paginación
Tipos:
6.1.1. Monoprogramación sin Intercambio o Paginación
Un objeto en memoria a la vez.
6.1.2. Multiprogramación
Asignación de memoria para varios procesos concurrentes.
- Multiprogramación con particiones fijas: División de memoria en partes. Fragmentación interna: Desperdicio de memoria en particiones grandes con tareas pequeñas.
- Multiprogramación con particiones variables: ...