01Esquema Funcional de un Ordenador: Turing, Von Neumann
Un ordenador es una máquina capaz de realizar, bajo el control de un conjunto ordenado de instrucciones (un programa), tres acciones básicas: aceptar unos datos de entrada, efectuar con ellos operaciones lógicas y/o aritméticas (procesamiento) y proporcionar la información resultante a través de unos datos de salida. Este esquema tan simple — entrada, proceso, salida — sigue siendo la base conceptual de cualquier sistema microinformático actual.
Alan Turing y la base teórica de la computación
Alan Turing (1912-1954), matemático y criptógrafo británico, sentó en 1936 las bases teóricas de la informática moderna con su artículo "On Computable Numbers", en el que introdujo el concepto de la "Máquina de Turing": un modelo teórico capaz de resolver, mediante una serie de pasos lógicos, cualquier problema matemático computable. Durante la Segunda Guerra Mundial lideró en Bletchley Park el equipo que rompió el cifrado de la máquina Enigma alemana mediante una máquina electromecánica llamada "Bomba". Tras la guerra propuso el célebre "Test de Turing" para determinar si una máquina puede mostrar un comportamiento inteligente indistinguible del humano, concepto que sigue siendo referencia en inteligencia artificial.
John von Neumann y la arquitectura de programa almacenado
En 1945, el matemático John von Neumann presentó el diseño conceptual que especifica cómo debe funcionar una máquina programable de propósito general, diseño en el que se basan los ordenadores actuales. La "máquina de Von Neumann" establece dos ideas clave: la máquina debe ser controlada por un conjunto de instrucciones ejecutado por un pequeño número de elementos centrales de proceso, y tanto los datos como el programa que los procesa deben almacenarse dentro del ordenador en formato binario (un alfabeto compuesto exclusivamente de ceros y unos).
Unidades funcionales de la máquina de Von Neumann
Unidad de entrada (input)
Dispositivos que permiten introducir datos e instrucciones en el sistema: teclado, ratón, escáner...
Unidad de salida (output)
Dispositivos que permiten mostrar los resultados obtenidos: pantalla, impresora, altavoces...
Unidad de proceso (CPU)
Procesa la información y realiza las operaciones aritmético-lógicas; se divide en unidad de control y unidad aritmético-lógica.
Este esquema funcional —entrada, CPU (con su unidad de control y su unidad aritmético-lógica) y salida, todo ello coordinado a través de la memoria donde se almacenan datos y programa— es el punto de partida para entender la arquitectura de cualquier sistema microinformático actual, desde un PC de sobremesa hasta un servidor.
02Componentes Internos de un PC
Un PC (computadora personal) está compuesto por diversos componentes internos que trabajan juntos para ejecutar instrucciones, procesar datos y realizar tareas. Conocer la función de cada uno es imprescindible antes de instalar, actualizar o diagnosticar un sistema operativo.
Placa base (motherboard)
Componente central al que se conectan todos los demás: aloja CPU, RAM y ofrece ranuras de expansión y conexiones a almacenamiento y periféricos.
CPU (procesador)
El "cerebro" del PC: ejecuta instrucciones, realiza cálculos y coordina el resto de componentes. Su velocidad se mide en GHz y depende del número de núcleos e hilos.
Memoria RAM
Memoria de trabajo temporal donde se almacenan datos e instrucciones mientras el CPU los necesita. Es volátil: se pierde al apagar el equipo. Tipos comunes: DDR3, DDR4, DDR5.
Almacenamiento (HDD/SSD)
Guarda de forma permanente datos, sistema operativo y programas. El HDD usa platos magnéticos giratorios (más capacidad, más lento); el SSD usa memoria flash (mucho más rápido).
Tarjeta gráfica (GPU)
Procesa y renderiza gráficos en pantalla. Puede estar integrada en el CPU o ser una tarjeta dedicada, necesaria para juegos, diseño 3D o edición de vídeo.
Fuente de alimentación (PSU)
Suministra electricidad a todos los componentes, convirtiendo la corriente alterna de la red en corriente continua, con conectores para placa, CPU y discos.
Unidad óptica (opcional)
Lectoras/grabadoras de DVD o Blu-ray, cada vez menos comunes, sustituidas por USB y descargas digitales.
Tarjeta de sonido (opcional)
Procesa el audio; hoy suele venir integrada en la placa base, siendo la tarjeta dedicada opcional para mejorar la calidad en multimedia y juegos.
Tarjeta de red (NIC)
Permite conectar el PC a una red local o a Internet, por cable (Ethernet) o de forma inalámbrica (Wi-Fi); puede ser dedicada o estar integrada.
Sistema de refrigeración
Ventiladores y disipadores (o refrigeración líquida en equipos de alto rendimiento) que evitan el sobrecalentamiento de CPU y GPU.
BIOS/UEFI (firmware)
Controla las operaciones iniciales del hardware antes de cargar el sistema operativo: almacena configuraciones y permite ajustar el orden de arranque.
Batería CMOS
Alimenta la memoria que guarda la configuración de la BIOS/UEFI (fecha, hora y otros ajustes) mientras el equipo está apagado.
Otros elementos habituales
- SSD M.2 / NVMe: almacenamiento de altísima velocidad conectado directamente a la placa base, ideal para cargas de trabajo exigentes.
- Ranuras de expansión PCIe (Peripheral Component Interconnect Express): permiten añadir tarjetas gráficas, de sonido o de red adicionales.
03La Placa Base: Componentes y Modelos Actuales
La placa base (motherboard o placa madre) es el componente principal de un ordenador, encargado de conectar y permitir la comunicación entre todos los demás componentes. Distribuye la energía y gestiona la comunicación entre ellos, asegurando que funcionen juntos de manera eficiente.
Componentes principales de la placa base
- Socket del procesador: el conector donde se instala la CPU; distintos procesadores requieren distintos sockets.
- Ranuras de memoria RAM: donde se insertan los módulos de memoria.
- Chipset: circuitos que gestionan la comunicación entre procesador, memoria y periféricos.
- Ranuras de expansión PCIe: para tarjetas gráficas, de red, de sonido y otros componentes.
- Conectores de almacenamiento: puertos SATA para discos y SSD, y ranuras M.2 para SSD NVMe.
- BIOS/UEFI: firmware que controla el arranque del sistema y configura el hardware.
- Conectores de alimentación: distribuyen la energía desde la PSU a los distintos componentes.
Modelos actuales según socket y fabricante
| Fabricante | Socket | Compatible con | Ejemplos de placas |
|---|---|---|---|
| Intel | LGA 1700 | Core de 12ª/13ª generación (Alder Lake, Raptor Lake) | ASUS ROG Strix Z790-E, MSI MPG Z690 Carbon WiFi |
| Intel | LGA 1200 | Core de 10ª/11ª generación (Comet Lake, Rocket Lake) | ASUS TUF Gaming Z590-Plus, Gigabyte Z590 Aorus Master |
| AMD | AM5 | Ryzen serie 7000 (Zen 4) | ASUS ROG Crosshair X670E Hero, MSI MPG X670E Carbon WiFi |
| AMD | AM4 | Ryzen 3000/5000 y parte de la serie 7000 | ASUS ROG Strix B550-F, MSI B550 Tomahawk |
Factores a considerar al elegir una placa base
- Compatibilidad con el procesador: verificar que el socket y el chipset encajen con la CPU elegida.
- RAM y almacenamiento: soporte para la cantidad y tipo de memoria (DDR4/DDR5) y conexiones SATA/M.2.
- Puertos de expansión: suficientes ranuras PCIe para tarjeta gráfica y otras ampliaciones.
- Conectividad: puertos USB, Ethernet, Wi-Fi y otros periféricos.
- Factor de forma: ATX, micro-ATX o mini-ITX, que condiciona la caja y el espacio disponible.
04Tipos de Memoria: RAM, Caché, Secundaria, Virtual...
La memoria es uno de los componentes clave de un sistema informático: almacena y recupera los datos que el ordenador necesita para ejecutar programas y operaciones. Existen varios tipos, cada uno con un equilibrio distinto entre velocidad, capacidad y volatilidad.
Memoria RAM
Memoria de trabajo del sistema, de acceso aleatorio y volátil (se pierde al apagar). Tipos: DRAM (necesita refresco constante, la habitual) y SRAM (más rápida y cara, usada en cachés).
Memoria caché
Memoria pequeña y muy rápida entre el procesador y la RAM, con niveles L1 (la más rápida, dentro del CPU), L2 (algo mayor y más lenta) y L3 (compartida entre núcleos).
Memoria secundaria
Almacenamiento permanente y no volátil: HDD (platos magnéticos, gran capacidad, más lento) y SSD (memoria flash, mucho más rápido, mayor coste por GB).
Memoria virtual
Técnica que usa espacio del disco como RAM adicional cuando la física se agota, permitiendo seguir funcionando aunque a menor velocidad.
Memoria ROM
Memoria de solo lectura, no volátil, que almacena el firmware esencial (como la BIOS). Variantes reprogramables: EPROM y EEPROM.
Memoria flash
No volátil, usada en USB, tarjetas SD y SSD; es una evolución de la EEPROM, escribible y borrable en bloques grandes, con vida útil limitada en ciclos de escritura.
Memoria óptica
CD, DVD y Blu-ray: no volátil pero lenta comparada con RAM y flash; usada sobre todo para archivo y distribución de medios.
Memoria swap
Parte del disco usada como extensión temporal de la RAM (típico de Linux); mucho más lenta, se activa cuando la RAM está completamente ocupada.
El uso excesivo de memoria virtual o swap (cuando el sistema pasa más tiempo intercambiando páginas que ejecutando procesos) provoca un fenómeno conocido como thrashing, que degrada gravemente el rendimiento del sistema.
05La Unidad Central de Proceso (CPU) y sus Elementos
El procesador o CPU (Central Processing Unit) es el componente principal que ejecuta las instrucciones y realiza los cálculos dentro de un ordenador, procesando datos y gestionando las operaciones lógicas y matemáticas que permiten que el software funcione.
Componentes y características clave
- Núcleos: cada uno ejecuta instrucciones de forma independiente; los procesadores actuales suelen tener entre 4 y 16 núcleos.
- Hilos (threads): con tecnologías como Hyper-Threading o SMT, cada núcleo puede procesar más de un hilo simultáneamente.
- Frecuencia de reloj: medida en GHz, indica cuántas operaciones puede realizar el procesador por segundo.
- Caché integrada: memoria de acceso rápido a los datos más usados, organizada en niveles L1, L2 y L3.
- TDP (Thermal Design Power): energía consumida y calor generado bajo carga máxima, determinante para elegir la refrigeración.
Fabricantes y familias principales
| Fabricante | Familia | Enfoque |
|---|---|---|
| Intel | Core i3/i5/i7/i9 (Alder Lake, Raptor Lake) | Uso general, gaming y creación de contenido, con arquitectura híbrida de núcleos de rendimiento y eficiencia |
| Intel | Xeon | Servidores y estaciones de trabajo: virtualización y análisis de datos |
| AMD | Ryzen 3/5/7/9 (Zen 3, Zen 4) | Uso general y gaming, muy competitivo en precio/rendimiento |
| AMD | Threadripper | Estaciones de trabajo profesionales: hasta 64 núcleos y 128 hilos para renderizado y simulación |
| Apple | Apple Silicon (M1, M2, ARM) | MacBooks e iMacs; gran eficiencia energética y buen rendimiento gráfico |
Tipos de procesador según el uso
Uso general
Tareas cotidianas (navegación, ofimática): Intel Core i3, AMD Ryzen 3.
Gaming y creación de contenido
Juegos, edición de vídeo, diseño 3D: Intel Core i7/i9, AMD Ryzen 7/9.
Estaciones de trabajo y servidores
Cómputo masivo, IA, virtualización: Intel Xeon, AMD Threadripper.
06Buses del Ordenador: Tipos y Funciones
Los buses son sistemas de comunicación que permiten transferir datos entre los distintos componentes del sistema —procesador, memoria, almacenamiento y periféricos—, actuando como canales que facilitan el intercambio de información de forma coordinada. Son esenciales para la eficiencia y velocidad de un ordenador.
Componentes de un bus
- Bus de datos: transporta los datos que se están procesando o transmitiendo.
- Bus de direcciones: transporta las direcciones de memoria donde se almacenan datos o instrucciones.
- Bus de control: transmite las señales que gestionan y sincronizan las operaciones.
Tipos de buses actuales y su función
| Bus | Función principal | Notas |
|---|---|---|
| Bus del sistema | Conecta CPU, RAM y chipset de la placa base | Se subdivide en bus de memoria y bus de datos del procesador |
| PCIe (Peripheral Component Interconnect Express) | Conecta tarjetas gráficas, de red o de sonido | Arquitectura punto a punto; versiones 3.0, 4.0 y 5.0 (esta última duplica la velocidad de la anterior) |
| USB (Universal Serial Bus) | Conecta periféricos (teclado, ratón, discos externos...) | Versiones 2.0, 3.0, 3.1 y 4.0; USB-C transfiere datos, vídeo y energía |
| SATA (Serial ATA) | Conecta discos duros, SSD y unidades ópticas | SATA III alcanza hasta 6 Gbps; va siendo reemplazado por NVMe |
| M.2 / NVMe | Conecta SSD de alta velocidad directamente a la placa base | Usa el bus PCIe; mucho más rápido que SATA |
Buses como AGP (para tarjetas gráficas) o ISA y PCI (para tarjetas periféricas de los primeros PC) se consideran hoy obsoletos, sustituidos por PCIe. Los buses actuales —PCIe 5.0, USB 4.0, NVMe sobre M.2— ofrecen velocidades de transferencia muy altas, imprescindibles para tareas como gaming, edición de vídeo o transferencias masivas de datos.
07Correspondencia entre Subsistemas Físicos y Lógicos
En informática, los subsistemas físicos (hardware) y lógicos (software) son fundamentales para el funcionamiento del sistema. Mientras que los subsistemas físicos son los componentes tangibles, los subsistemas lógicos son el software y el sistema operativo que gestionan y controlan ese hardware. La interacción entre ambos es esencial para que un ordenador cumpla sus funciones.
Subsistemas físicos (hardware)
- Dispositivos de entrada: teclado, ratón, escáner, micrófono, cámara.
- Dispositivos de salida: monitor, impresora, altavoces.
- Dispositivos de entrada/salida: pantallas táctiles, discos duros, memorias USB.
- Dispositivos de procesamiento: CPU, GPU, memoria RAM.
- Dispositivos de almacenamiento: HDD, SSD, memorias USB.
Subsistemas lógicos (software)
- Sistema operativo: intermediario entre hardware y usuarios, gestiona CPU, memoria y dispositivos de E/S (Windows, macOS, Linux).
- Controladores de dispositivos (drivers): permiten que el sistema operativo controle y gestione el hardware específico.
- Aplicaciones de usuario: procesadores de texto, hojas de cálculo, navegadores, que interactúan con el SO para acceder al hardware.
Cómo se corresponden ambos subsistemas
- Entrada de datos. El hardware de entrada (teclado, escáner) introduce datos; el driver correspondiente traduce las señales eléctricas para que el SO las interprete.
- Procesamiento. La CPU ejecuta las instrucciones que provienen del software, mientras el SO asigna tareas, distribuye memoria y organiza la E/S.
- Salida de datos. Los dispositivos de salida muestran o generan resultados; el software (por ejemplo, el driver de la gráfica) interpreta los datos antes de presentarlos.
- Almacenamiento. El SO organiza los datos en el disco mediante un sistema de archivos (NTFS, ext4...) que permite leerlos y escribirlos de forma eficiente.
08Concepto y Funciones Básicas de un Sistema Operativo
Un sistema operativo (SO) es el software principal que gestiona el hardware de un ordenador y proporciona servicios esenciales al resto de aplicaciones. Actúa como intermediario entre los usuarios y el hardware, permitiendo que los programas se ejecuten de manera eficiente y segura, y coordinando el uso de todos los recursos del sistema.
Funciones principales del sistema operativo
Gestión de procesos
Se asegura de que cada proceso reciba tiempo de CPU, gestiona su creación y finalización, y coordina la multitarea y la planificación.
Gestión de memoria
Asigna espacio de RAM a los procesos, lo libera cuando ya no se necesita y controla la memoria virtual.
Gestión de E/S
Coordina la comunicación entre el hardware de entrada/salida y los procesos, mediante controladores de dispositivos.
Gestión del sistema de archivos
Organiza cómo se almacenan, nombran, acceden y protegen los archivos, mediante sistemas como NTFS, FAT32 o ext4.
Gestión de seguridad y acceso
Protege datos y recursos frente a accesos no autorizados con autenticación, autorización y cortafuegos.
Interfaz de usuario (UI)
Permite la interacción con el sistema mediante interfaz gráfica (GUI) o de línea de comandos (CLI).
Gestión de tareas y recursos
Distribuye de forma justa y eficiente el procesador, la memoria y los dispositivos de E/S entre los procesos activos.
09Componentes Principales de un Sistema Operativo
- Núcleo (kernel): componente central, responsable de la gestión directa del hardware y los recursos; puede ser monolítico (todo desde el núcleo) o micronúcleo (dividido en componentes pequeños).
- Interfaz de Programación de Aplicaciones (API): funciones que permiten a los desarrolladores escribir software que interactúa con el SO sin gestionar el hardware directamente.
- Gestor de dispositivos: utiliza controladores (drivers) para que el sistema reconozca y controle el hardware conectado.
- Gestor de archivos: organiza el acceso a los datos y gestiona la creación, eliminación, copia y modificación de archivos.
- Gestor de red: facilita la comunicación y transferencia de datos entre dispositivos, en red local o Internet.
10Tipos de Sistemas Operativos
| Tipo | Descripción | Ejemplos |
|---|---|---|
| Monousuario | Diseñado para un solo usuario a la vez | MS-DOS |
| Multiusuario | Varios usuarios acceden simultáneamente compartiendo recursos | Linux, Unix, Windows Server |
| Tiempo real (RTOS) | Respuestas inmediatas a eventos externos, críticas en aviación o maquinaria industrial | VxWorks, RTLinux |
| Dispositivos móviles | Optimizados para smartphones y tabletas | Android, iOS |
Los sistemas operativos más populares del mercado actual son Windows y macOS (uso de escritorio), Linux (servidores, supercomputación y uso general de código abierto), y Android e iOS en dispositivos móviles.
11Evolución Histórica: de Windows a Linux
Windows: de la interfaz de texto a la nube
Microsoft lanzó Windows en 1985 como una interfaz gráfica sobre MS-DOS, buscando hacer los PC más accesibles que las líneas de comandos. Windows 1.0 solo permitía colocar ventanas en mosaico; Windows 2.0 (1987) permitió superponerlas y mejoró la gestión de memoria. Windows 3.x (1990-1994) se convirtió en un entorno gráfico más completo, y Windows 95 introdujo el icónico "botón de inicio" y un entorno de 32 bits con el sistema de archivos FAT32.
- Windows 98 (1998): mejor integración con Internet y soporte USB.
- Windows 2000 (2000): estabilidad y seguridad basadas en la arquitectura NT, orientado a empresas.
- Windows XP (2001): unificó consumo y empresa; gran éxito y larga vida útil.
- Windows Vista (2006): Control de Cuentas de Usuario (UAC) e interfaz Aero, criticado por su consumo de recursos.
- Windows 7 (2009): mejoras de rendimiento e interfaz, muy bien recibido tras Vista.
- Windows 8 (2012): pantalla de inicio táctil que eliminó el menú de inicio tradicional, generando rechazo.
- Windows 10 (2015): recuperó el menú de inicio, se planteó como "sistema operativo como servicio" con Cortana y el navegador Edge.
- Windows 11 (2021): interfaz renovada con esquinas redondeadas, Snap Layouts y soporte de apps Android.
Linux: del proyecto personal al estándar de servidores
Linux nació en 1991 cuando Linus Torvalds, estudiante finlandés, desarrolló su propio núcleo inspirado en MINIX, sin las restricciones de las licencias comerciales de UNIX. El kernel se publicó bajo licencia GPL, lo que permitió su distribución y modificación libres y fomentó una comunidad global de desarrolladores.
- Linux 0.01 (1991): primer lanzamiento del núcleo, sin interfaz gráfica.
- Linux 1.x (1994): primera versión oficial (1.0), con soporte de redes TCP/IP.
- Linux 2.x (1996-2003): multitarea, soporte multiprocesador (SMP) y mejores sistemas de archivos; el 2.6 (2003) fue clave en servidores.
- Linux 3.x y 4.x (2011-2015): mejor rendimiento de almacenamiento y compatibilidad con dispositivos ARM.
- Linux 5.x (2019-presente): optimización para GPU, computación en la nube e inteligencia artificial.
Principales distribuciones (distros) de Linux
Debian (1993)
Estabilidad y software libre; base de muchas otras distros, incluida Ubuntu.
Red Hat Enterprise Linux (1995)
Orientada a empresas y servidores, con soporte técnico comercial.
Ubuntu (2004)
Basada en Debian, muy popular por su facilidad de instalación y uso.
Fedora (2003)
Distribución experimental donde se prueban tecnologías antes de llegar a Red Hat.
Arch Linux (2002)
Rolling release minimalista para usuarios avanzados que buscan control total.
Linux Mint (2006)
Derivada de Ubuntu, pensada para quienes migran desde Windows.
Kali Linux (2013)
Basada en Debian, orientada a pruebas de penetración y ciberseguridad.
Hoy, más del 90% de las supercomputadoras del mundo usan Linux gracias a su estabilidad, flexibilidad y escalabilidad, y Android —el sistema operativo móvil más usado del planeta— está construido sobre el kernel de Linux.
12Gestión de Procesos
Un proceso es un programa en ejecución, que incluye su código, los datos con los que trabaja y los recursos necesarios (tiempo de CPU, memoria). El sistema operativo gestiona la creación, ejecución y finalización de procesos para que los recursos se usen eficientemente y no interfieran entre sí.
Estados de un proceso
- Nuevo: el proceso está siendo creado.
- Listo: preparado para ejecutarse, esperando que la CPU quede libre.
- Ejecución: siendo procesado activamente por la CPU.
- Bloqueado: esperando la finalización de una operación (por ejemplo, una lectura de disco).
- Terminado: ha completado su ejecución.
Bloque de Control de Procesos (PCB)
Cada proceso tiene un PCB que almacena su ID (PID), el contador de programa, su estado actual, el contexto de la CPU (registros), la información de memoria asignada y los recursos que tiene abiertos (archivos, dispositivos, permisos).
Planificación de procesos
| Nivel | Función |
|---|---|
| Planificación a corto plazo | Determina qué proceso se ejecuta en el próximo turno de CPU |
| Planificación a medio plazo | Intercambia procesos entre memoria principal y almacenamiento secundario |
| Planificación a largo plazo | Decide qué nuevos procesos se admiten en el sistema |
Concurrencia, sincronización y comunicación
- Multitarea cooperativa vs. preventiva: en la primera los procesos ceden voluntariamente la CPU; en la segunda es el SO quien decide cuándo detenerlos.
- Conmutación de contexto: guardar el estado del proceso actual y cargar el del siguiente, dando la ilusión de ejecución simultánea.
- Sección crítica: parte del código donde se accede a recursos compartidos y solo un proceso puede entrar a la vez.
- Semáforos y mutexes: mecanismos para controlar el acceso a recursos compartidos y evitar condiciones de carrera.
- IPC (comunicación entre procesos): memoria compartida, tuberías (pipes), colas de mensajes y sockets.
- Hilos (threads): unidad básica de ejecución dentro de un proceso; permiten paralelismo con menor sobrecarga que crear procesos completos.
Un proceso puede finalizar de forma normal (completa su ejecución) o forzada (el SO o un usuario lo mata). Cuando un proceso hijo termina y su padre no lo recoge, se convierte en un proceso zombi; si el padre termina antes, el hijo pasa a ser un proceso huérfano.
13Gestión de Memoria
La gestión de memoria administra el uso de la RAM para que los procesos se ejecuten eficientemente, sin interferir entre sí y con un uso óptimo de los recursos: asignación, protección, reubicación, paginación/intercambio y liberación de memoria.
Memoria contigua vs. no contigua
| Técnica | Cómo funciona | Problema típico |
|---|---|---|
| Particiones fijas | La memoria se divide en bloques de tamaño fijo | Fragmentación interna (espacio no usado dentro del bloque) |
| Particiones variables | El bloque se ajusta al tamaño que necesita el proceso | Fragmentación externa (huecos pequeños inutilizables) |
| Paginación | La memoria se divide en páginas fijas y marcos; un proceso puede repartirse en varios marcos | Evita la fragmentación externa; requiere la MMU (Unidad de Gestión de Memoria) |
| Segmentación | La memoria se divide en segmentos de tamaño variable según unidades lógicas (código, datos, pila) | Organización más natural, pero puede generar fragmentación externa |
Memoria virtual e intercambio (swapping)
La memoria virtual permite ejecutar procesos más grandes que la RAM física combinando esta con almacenamiento secundario. Si no hay suficiente memoria física, el sistema mueve páginas inactivas a un archivo de paginación (swap en sistemas UNIX); cuando se necesitan de nuevo, se traen de vuelta. Un exceso de este intercambio provoca thrashing: el sistema dedica más tiempo a intercambiar páginas que a ejecutar procesos.
Algoritmos de ajuste de memoria
La protección de memoria garantiza que un proceso no acceda a la memoria de otro, mediante hardware que genera una interrupción si se intenta acceder fuera del rango permitido. La MMU (Memory Management Unit) traduce en tiempo real las direcciones lógicas generadas por los programas en direcciones físicas.
14El Sistema de Entrada/Salida (E/S)
El sistema de E/S gestiona la comunicación entre el procesador y los dispositivos periféricos (teclado, ratón, impresoras, discos, red), permitiendo que los procesos interactúen de forma eficiente con el hardware, a pesar de que estos dispositivos operan a velocidades muy distintas de la CPU.
Modos de operación de E/S
| Modo | Cómo funciona | Ventaja / Desventaja |
|---|---|---|
| E/S programada | La CPU controla directamente cada operación y espera su finalización | Fácil de implementar, pero ineficiente |
| E/S por interrupciones | La CPU sigue trabajando y el dispositivo la interrumpe al terminar | Mejor uso del tiempo de CPU, pero riesgo de sobrecarga con muchas interrupciones |
| Acceso Directo a Memoria (DMA) | Un controlador dedicado transfiere datos entre memoria y dispositivo sin la CPU | Libera a la CPU, pero exige hardware adicional |
Buffering y spooling
- Buffering: se usa un área temporal de memoria (buffer) para no interrumpir a la CPU mientras el dispositivo lento trabaja.
- Spooling: las operaciones de E/S se encolan en disco para procesarse en orden, típico en trabajos de impresión.
Jerarquía de almacenamiento
- Memoria caché: la más rápida, pequeña y costosa.
- Memoria principal (RAM): rápida, pero volátil.
- Almacenamiento secundario: HDD, SSD, cintas — más lentos, mayor capacidad, no volátiles.
- Almacenamiento terciario: cintas magnéticas o nube, para backup y archivo a largo plazo.
Los sistemas modernos añaden hot swapping (conectar/desconectar dispositivos sin reiniciar) y Plug and Play (reconocimiento y configuración automática de hardware), además de gestionar la E/S distribuida en redes mediante sistemas de archivos remotos.
15Sistema de Archivos
Un sistema de archivos organiza y gestiona cómo se almacenan, recuperan y manipulan los datos en los dispositivos de almacenamiento, actuando como abstracción entre el hardware y el usuario mediante archivos y directorios.
Componentes
- Archivos: colecciones de datos con nombre y metadatos (tamaño, fecha, permisos).
- Directorios: estructuras jerárquicas que agrupan archivos.
- Bloques de datos: unidad mínima de almacenamiento en disco.
- Superbloque: área con información crucial sobre el propio sistema de archivos.
- Metadatos: permisos, tamaño, fechas, tipo y ubicación de cada archivo.
Principales sistemas de archivos
| Sistema de archivos | Sistema operativo | Características |
|---|---|---|
| FAT32 | Multiplataforma (USB, tarjetas) | Muy antiguo y compatible, pero limitado a archivos de 4 GB |
| NTFS | Windows | Avanzado: compresión, cifrado y control de acceso |
| ext2/ext3/ext4 | Linux | Journaling y buen manejo de grandes volúmenes de datos |
| APFS / HFS+ | macOS | Optimizado para SSD y almacenamiento flash (APFS sustituye a HFS+) |
| exFAT | Dispositivos móviles y flash | Supera las limitaciones de tamaño de FAT32 |
| ZFS | Servidores y almacenamiento de alta capacidad | Resistente a fallos, con compresión y gran escalabilidad |
Journaling, fragmentación y permisos
- Journaling: registra los cambios pendientes antes de aplicarlos, permitiendo recuperar el sistema tras un apagado inesperado (NTFS, ext3/4, APFS).
- Fragmentación: archivos divididos en fragmentos no contiguos que ralentizan la lectura/escritura; la desfragmentación los reorganiza.
- Permisos en Linux/Unix: r (leer), w (escribir), x (ejecutar), aplicados a propietario, grupo y otros.
- Permisos en NTFS: listas de control de acceso (ACL) con control granular por usuario o grupo.
Sistemas de archivos distribuidos
16Sistema de Protección
El sistema de protección de un sistema operativo es el conjunto de mecanismos y políticas que controlan el acceso a los recursos del sistema (archivos, memoria, CPU, dispositivos de E/S), garantizando que solo usuarios o procesos autorizados puedan acceder a ellos.
Objetivos
Confidencialidad
Los datos solo son accesibles por usuarios o procesos autorizados.
Integridad
Los recursos no se modifican de manera no autorizada.
Disponibilidad
Los recursos están disponibles para quien esté autorizado a usarlos.
Modelos de protección
| Modelo | Cómo funciona |
|---|---|
| ACL (Lista de Control de Acceso) | Cada objeto tiene asociada una lista con los permisos de cada sujeto |
| Capacidades | Los sujetos poseen un conjunto de permisos que les otorgan derechos sobre objetos, de forma descentralizada |
| DAC (Control de Acceso Discrecional) | El propietario del recurso decide quién puede acceder a él y con qué permisos |
| MAC (Control de Acceso Obligatorio) | El sistema predefine los permisos según niveles de seguridad y roles; típico de entornos gubernamentales o militares |
Mecanismos de protección por recurso
- Memoria: segmentación y paginación garantizan que cada proceso solo acceda a su propio espacio.
- CPU: modos de ejecución usuario/kernel y algoritmos de planificación evitan que un proceso monopolice el procesador.
- Dispositivos de E/S: interrupciones, privilegios y drivers controlan el acceso al hardware.
- Sistema de archivos: permisos de lectura/escritura/ejecución y cifrado protegen los datos almacenados.
La protección se complementa con mecanismos de seguridad como la autenticación (verificar identidad), la autorización (definir qué recursos puede usar un usuario autenticado) y la auditoría (registro de acciones para detectar abusos). Windows usa ACL y el Security Accounts Manager (SAM); Linux/Unix usa permisos de usuario y grupo, además de modelos MAC como SELinux; macOS combina permisos estilo UNIX con aislamiento de aplicaciones.
17Sistema de Comunicaciones
El sistema de comunicaciones gestiona cómo procesos, dispositivos y usuarios se comunican entre sí, tanto en un sistema local como a través de redes, permitiendo el intercambio de información de manera eficiente, segura y controlada.
Comunicación entre procesos (IPC)
- Pipes (tuberías): transferencia de datos entre procesos relacionados; existen anónimas y con nombre.
- Memoria compartida: el método más rápido de IPC, aunque requiere semáforos para evitar condiciones de carrera.
- Semáforos: sincronizan procesos y controlan el acceso a recursos compartidos.
- Colas de mensajes: envío y recepción de mensajes de forma ordenada y asíncrona.
- Sockets: comunicación entre procesos tanto localmente como a través de red.
Comunicaciones en red
El sistema operativo gestiona la conexión de equipos a través de redes locales o globales mediante pilas de protocolos organizadas en capas.
| Capa | Protocolos típicos | Función |
|---|---|---|
| Aplicación | HTTP, FTP, SMTP, SSH | Comunicación entre clientes y servidores |
| Transporte | TCP, UDP | Divide los datos en segmentos y los reensambla; TCP con control de errores, UDP sin él |
| Red | IP | Direccionamiento y enrutamiento de paquetes |
| Enlace de datos | Ethernet, Wi-Fi | Transmisión física de los datos |
Otros mecanismos
- RPC (Remote Procedure Call): permite ejecutar procedimientos en otra computadora como si fueran locales.
- Señales: notificación básica entre procesos (por ejemplo, para pedir que uno termine o se reinicie).
- Seguridad en la comunicación: cifrado, autenticación de usuarios y procesos, y firewalls que protegen frente a accesos no autorizados.
En el modelo cliente-servidor —base de la mayoría de las comunicaciones en red, incluida la web— el cliente (por ejemplo, un navegador) envía solicitudes que el servidor (web, de bases de datos...) responde con los datos o servicios pedidos.
18Sistema de Interpretación de Órdenes (Shell)
El sistema de interpretación de órdenes —también llamado intérprete de comandos o shell— recibe, interpreta y ejecuta las instrucciones que usuarios o programas solicitan, sirviendo de interfaz entre el usuario y el núcleo del sistema operativo.
CLI vs. GUI
| Tipo | Descripción | Ejemplos |
|---|---|---|
| CLI (línea de comandos) | El usuario escribe comandos en una terminal | Bash (Linux/Unix), Cmd y PowerShell (Windows) |
| GUI (interfaz gráfica) | El usuario interactúa mediante ventanas, iconos y menús con ratón y teclado | Explorador de Windows, GNOME/KDE en Linux |
Funciones del intérprete de órdenes
- Interpretación de comandos: traduce la entrada del usuario en llamadas que el kernel puede ejecutar.
- Automatización y scripting: permite crear scripts (Bash en Linux, batch .bat en Windows) para tareas repetitivas.
- Gestión de procesos: comandos como ps, top y kill en Linux, o tasklist y taskkill en Windows.
- Gestión de archivos y directorios: ls, cp, mv, rm en Linux; dir, copy, move, del en Windows.
- Personalización del entorno: variables de entorno ($PATH / %PATH%), alias y funciones.
Componentes de un intérprete
- Prompt: símbolo que indica que el sistema está listo para recibir un comando.
- Parser: analiza el comando introducido y lo descompone en nombre y argumentos.
- Executor: invoca las funciones del sistema operativo para llevar a cabo la acción.
- Historial de comandos: permite reutilizar comandos anteriores.
Intérpretes más comunes
Bash
El más usado en Linux/Unix: scripting avanzado, historial, alias, tuberías y redirección.
PowerShell
Shell moderno de Microsoft que devuelve objetos en lugar de texto plano, facilitando el scripting.
Cmd
Línea de comandos clásica de Windows, más limitada pero aún muy utilizada.
La redirección permite enviar la salida de un comando a un archivo (> o >>), tomar la entrada desde un archivo (<), o encadenar comandos con tuberías (|). En sistemas multiusuario, el acceso al intérprete se protege mediante permisos de usuario y mecanismos como sudo en Linux, que permite ejecutar comandos con privilegios elevados.
19Programas del Sistema
Los programas del sistema son un conjunto de software que actúa como intermediario entre el hardware y las aplicaciones de usuario, gestionando, controlando y coordinando las actividades del hardware para que las aplicaciones puedan ejecutarse correctamente.
Cargador de programa (loader)
Carga los programas almacenados en disco a la memoria principal para que la CPU pueda ejecutarlos.
Intérprete de comandos (shell)
Permite la interacción entre usuario y sistema operativo mediante CLI o GUI.
Controladores de dispositivos (drivers)
Traducen entre el sistema operativo y el hardware físico (impresoras, discos, tarjetas de red).
Gestión de archivos
Crea, modifica, elimina y organiza archivos y directorios en los dispositivos de almacenamiento.
Mantenimiento del sistema
Desfragmentación, diagnóstico de hardware y monitores de recursos (CPU, memoria, red).
Gestores de memoria
Administran la asignación y liberación de memoria, memoria virtual, paginación y segmentación.
Gestores de procesos
Gestionan la creación, ejecución, suspensión y finalización de procesos, y la planificación de CPU.
Sistemas de seguridad y protección
Control de acceso, cifrado, autenticación de usuarios y monitoreo de actividades.
Programas del sistema por sistema operativo
| Sistema operativo | Ejemplos de programas del sistema |
|---|---|
| Linux | Kernel, controladores, sistema de archivos (ext4, btrfs), shell (Bash, Zsh), cron |
| Windows | Núcleo NT, administrador de dispositivos, Explorador de archivos, CMD/PowerShell, Administrador de tareas |
| macOS | Kernel Darwin, Finder, Terminal, servicios del sistema para gráficos y red |
Estos programas comparten tres rasgos: son independientes del hardware concreto (funcionan en cualquier equipo compatible con el SO), actúan como interfaz entre hardware y software, y muchos se ejecutan en segundo plano proporcionando servicios esenciales de forma continua, sin los cuales ni los usuarios ni las aplicaciones podrían interactuar de forma efectiva con el hardware.