PARTE XLI · Computación, datos e Internet
456
Sistemas operativos: compartir recursos y aislar procesos
El sistema operativo convierte recursos físicos compartidos en entornos utilizables, pero toda abstracción conserva límites y dependencias
En este capítulo
Un editor reproduce música mientras guarda un archivo, el navegador recibe datos y una actualización escribe en disco. Hay menos procesadores que actividades aparentes, una memoria física compartida y dispositivos con ritmos incompatibles. Sin coordinación, cada programa necesitaría conocer el hardware y podría alterar a los demás.
Un sistema operativo administra recursos, ofrece abstracciones comunes y media el acceso entre programas y hardware. Su núcleo suele ejecutar con privilegios superiores a las aplicaciones; bibliotecas y servicios completan el entorno. No existe una frontera universal que obligue a incluir exactamente las mismas piezas bajo el nombre «sistema operativo».
Este capítulo pregunta: ¿cómo puede un ordenador compartir recursos entre tareas manteniendo separación, persistencia y control, y dónde dejan de sostenerse esas garantías?
456.1. Procesos, hilos y planificación#
Un programa es una descripción; un proceso es una ejecución con estado y recursos: memoria, identificadores, archivos abiertos y credenciales. Dos procesos del mismo programa pueden tener datos distintos. El sistema operativo mantiene estructuras para suspender uno y continuar otro sin confundir sus contextos.
Un hilo es un flujo de ejecución dentro de un proceso. Los hilos suelen compartir memoria y otros recursos del proceso, lo que abarata comunicación y exige sincronización. Procesos separados ofrecen fronteras más fuertes, aunque pueden compartir memoria o comunicarse mediante mecanismos explícitos.
El planificador decide qué entidad ejecutable usa un procesador y durante cuánto tiempo. La multiprogramación alterna tareas con suficiente rapidez para dar sensación de simultaneidad; con varios núcleos también hay paralelismo real. Una interrupción de reloj u otro evento permite recuperar control.
Las políticas persiguen objetivos en tensión: respuesta interactiva, rendimiento total, equidad, consumo o plazos. Una cola simple no garantiza justicia si una tarea acapara recursos; dar prioridad estricta puede dejar otras esperando indefinidamente. La prioridad puede incluso invertirse cuando una tarea importante necesita un recurso retenido por una menos prioritaria.
Un proceso puede estar ejecutándose, listo o bloqueado a la espera de entrada, tiempo o sincronización. Mientras uno espera al disco, otro aprovecha el procesador. La utilización aumenta, pero el sistema también paga cambios de contexto, contaminación de cachés y coordinación.
Los sistemas de tiempo real se distinguen por sus límites temporales, no por ser «rápidos». Una respuesta correcta después de su plazo puede ser fallo. Garantizar peor caso requiere controlar interrupciones, recursos compartidos y rutas de ejecución; el promedio no basta.
456.2. Memoria y protección#
Cada proceso suele operar con direcciones virtuales. La unidad de gestión de memoria y las tablas mantenidas por el núcleo traducen páginas virtuales a marcos físicos y verifican permisos. Dos procesos pueden usar la misma dirección numérica sin referirse a la misma memoria.
La memoria virtual cumple varias funciones: simplifica ubicación, protege regiones, permite compartir páginas seleccionadas y mantiene en memoria física sólo parte del espacio. Una página ausente provoca una excepción; el núcleo puede cargarla desde almacenamiento, asignarla o declarar inválido el acceso.
Los permisos de página distinguen lectura, escritura y ejecución. Separar datos de código y evitar que aplicaciones modifiquen memoria del núcleo reduce daños. Pero el aislamiento depende de hardware, núcleo, controladores y configuración correctos. Una vulnerabilidad privilegiada puede atravesarlo.
La copia en escritura permite que procesos compartan páginas hasta que uno modifica una. Entonces se crea una copia privada. Esta técnica reduce coste al iniciar procesos o tomar instantáneas, pero la memoria prometida puede materializarse más tarde y presionar al sistema.
Cuando falta memoria, el núcleo recupera cachés, mueve páginas o termina tareas según su política. Reservar más memoria virtual que la física disponible puede funcionar si no toda se usa a la vez; también puede producir fallos tardíos. La capacidad nominal no garantiza que una asignación permanezca utilizable.
La memoria compartida mejora rendimiento, pero debilita separación y exige reglas de visibilidad. Un error de límites en una región compartida afecta a varios participantes. Protección y comunicación son decisiones conjuntas: abrir una vía crea también una frontera que debe gobernarse.
456.3. Archivos, permisos y almacenamiento#
Un sistema de archivos transforma bloques de almacenamiento en nombres, directorios, contenido y metadatos. El nombre visible no es necesariamente el objeto: enlaces distintos pueden referirse al mismo contenido; un descriptor abierto puede seguir accediendo a un archivo cuyo nombre fue retirado.
El sistema de archivos virtual ofrece operaciones comunes —abrir, leer, escribir, consultar— sobre implementaciones diferentes. El núcleo resuelve rutas, comprueba permisos y dirige la operación. Esta uniformidad no vuelve idénticos los soportes ni sus garantías.
Los permisos relacionan sujeto, operación y objeto. Propietario, grupo, listas de control y capacidades son modelos posibles. La decisión efectiva puede depender también de directorios, montaje, identidad del proceso y políticas adicionales. «Puede leer este archivo» no implica poder atravesar la ruta que conduce a él.
Escribir no siempre significa que los bits hayan alcanzado un soporte persistente. Cachés agrupan operaciones; controladores y dispositivos también pueden retenerlas. Las llamadas de sincronización solicitan determinados órdenes y niveles de persistencia, pero sus garantías dependen de toda la cadena.
Un fallo entre varias escrituras puede dejar estado parcial. El registro por diario, la copia en escritura y actualizaciones atómicas limitan combinaciones visibles, cada una con alcance específico. Recuperar estructura del sistema de archivos no prueba que una transacción de aplicación sea coherente.
Las copias de seguridad protegen frente a pérdida sólo si son independientes, verificables y restaurables. Una réplica sincronizada puede copiar enseguida un borrado accidental. Un permiso que impide acceso cotidiano tampoco sustituye recuperación ante corrupción o fallo del medio.
456.4. Dispositivos y comunicaciones#
Un controlador de dispositivo traduce operaciones generales a protocolos y estados concretos. El núcleo expone interfaces estables para que las aplicaciones no programen cada modelo de disco, tarjeta de red o pantalla. El controlador, por su privilegio y contacto con entradas externas, forma parte crítica de la confianza.
Las aplicaciones solicitan servicios mediante llamadas al sistema. Una transición controlada cambia a ejecución privilegiada; el núcleo valida argumentos, permisos y recursos antes de operar. No toda llamada a una biblioteca cruza esa frontera: algunas se resuelven en espacio de usuario.
La entrada/salida puede bloquear al solicitante, notificarlo después o representarse como eventos listos. Buffers absorben diferencias de ritmo. Si llegan datos más rápido de lo que pueden procesarse, la cola crece hasta aplicar contrapresión, descartar o agotar memoria.
Tuberías, colas, memoria compartida y sockets permiten comunicación entre procesos. Cada mecanismo define límites de mensaje, orden, copia, bloqueo y fallo. Un flujo de bytes no conserva por sí mismo dónde termina un mensaje; el protocolo superior debe delimitarlo.
Un dispositivo con acceso directo a memoria puede transferir sin que la CPU copie cada fragmento. Esto mejora rendimiento y amplía el poder del dispositivo. Una unidad de gestión de E/S puede restringir las regiones accesibles; sin mediación adecuada, un periférico defectuoso o hostil puede leer o sobrescribir memoria ajena.
La interfaz uniforme oculta diferencias sin abolirlas. Un archivo local, un terminal y un socket pueden admitir lectura, pero difieren en persistencia, repetición, latencia y errores. El software correcto conserva esas distinciones cuando afectan a su contrato.
456.5. Virtualización y límites del aislamiento#
La virtualización presenta recursos lógicos distintos de su realización física. Un hipervisor media CPU, memoria, red y almacenamiento para varias máquinas virtuales, cada una capaz de ejecutar su propio sistema operativo. Puede apoyarse en extensiones del procesador y dispositivos virtuales.
Los contenedores suelen compartir el núcleo anfitrión y aíslan vistas de procesos, red, archivos e identidades mediante mecanismos del sistema operativo. Por eso una máquina virtual y un contenedor no ofrecen la misma frontera. Tampoco todos los hipervisores o contenedores tienen idéntico diseño.
El aislamiento controla canales declarados, pero participantes que comparten hardware aún compiten por cachés, memoria, procesador y energía. El tiempo de respuesta puede revelar actividad; una presión extrema degrada vecinos; una vulnerabilidad del núcleo o hipervisor puede permitir escape. «Virtual» no significa independiente.
Las instantáneas conservan un estado de máquina o almacenamiento para volver o clonar. No equivalen siempre a una copia coherente de la aplicación: datos en vuelo, servicios externos y secretos pueden quedar fuera o duplicarse. Restaurar el reloj lógico también puede invalidar supuestos.
NIST atribuye al hipervisor la mediación de recursos y el aislamiento en ejecución entre máquinas, pero advierte que la plataforma de gestión es parte decisiva de la seguridad. Quien controla la administración puede inspeccionar, modificar o detener invitados. El plano de control tiene más autoridad que las fronteras que configura.
Una garantía de aislamiento debe nombrar adversario, recursos compartidos y consecuencia tolerable. Separar errores accidentales entre aplicaciones ordinarias es distinto de resistir código hostil, operadores privilegiados o ataques físicos. Ninguna etiqueta —proceso, contenedor o máquina virtual— sustituye ese modelo.
Síntesis#
El sistema operativo convierte ejecuciones en procesos e hilos, reparte tiempo de procesador y usa memoria virtual para ubicar y proteger. Los sistemas de archivos dan nombres y persistencia sobre dispositivos imperfectos. Las llamadas al sistema median operaciones privilegiadas y los controladores traducen hardware. La virtualización repite estas abstracciones a otra escala. Compartir y aislar son funciones simultáneas: toda vía útil de comunicación y todo recurso común definen también límites de la separación.
Preguntas de transferencia#
1. Dos procesos usan la dirección 0x1000. ¿Comparten necesariamente el dato?#
No. Sus tablas pueden traducirla a marcos físicos distintos; sólo compartirán si el sistema configura una correspondencia común.
2. Una aplicación terminó de escribir. ¿El dato sobrevivirá a un corte inmediato?#
No necesariamente. Puede permanecer en cachés de aplicación, núcleo, controlador o dispositivo. Hay que conocer y solicitar la garantía de persistencia requerida.
3. ¿Por qué más prioridad puede empeorar una tarea crítica?#
Si espera un recurso retenido por una tarea de baja prioridad que no recibe procesador, aparece inversión de prioridades. La política debe considerar dependencias.
4. ¿Un contenedor equivale a una máquina virtual pequeña?#
No. Normalmente comparte el núcleo anfitrión, mientras una máquina virtual ejecuta un sistema operativo invitado sobre hardware virtualizado. Sus superficies y costes difieren.

Clave de lectura. El hipervisor es una alternativa adicional de mediación; no aparece en todo ordenador ni convierte automáticamente una configuración en segura.
Fuentes y lecturas del capítulo#
- The Open Group. The Open Group Base Specifications, Issue 8 — POSIX.1-2024. Estándar oficial.
- Linux Kernel Documentation. Memory Management: Concepts overview. Consultada en 2026.
- Linux Kernel Documentation. Overview of the Linux Virtual File System. Consultada en 2026.
- Ramaswamy Chandramouli. NIST SP 800-125A Rev. 1: Security Recommendations for Server-based Hypervisor Platforms. NIST, 2018.
- Abraham Silberschatz, Peter B. Galvin y Greg Gagne. Operating System Concepts. Wiley, 10.ª edición, 2018.
- John L. Hennessy y David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 6.ª edición, 2019.