# Almacenamiento de un solo nivel

Almacenamiento de un solo nivel (SLS) o memoria de un solo nivel es un término de almacenamiento informático que tiene dos significados. Los dos significados están relacionados en que en ambos, las páginas de memoria pueden estar en el almacenamiento principal (RAM) o en almacenamiento secundario (disco), y que la ubicación física de una página no es importante para un proceso.
El término originalmente se refería a lo que ahora se suele llamar memoria virtual, que fue introducido en 1962 por el sistema Atlas en Manchester.
En el uso moderno, el término generalmente se refiere a la organización de un sistema informático en el que no hay archivos, solo objetos persistentes (a veces llamados segmentos), que se asignan a espacio de direcciones de procesos (que consisten enteramente en una colección de objetos mapeados). Todo el almacenamiento de la computadora se considera como un solo plano bidimensional de direcciones (segmento y dirección dentro del segmento).
El concepto de objeto persistente fue introducido por primera vez por el Multics a mediados de la década de 1960, en un proyecto compartido por el MIT, General Electric y Bell Labs. También se implementó como memoria virtual, y la implementación física real incluye varios niveles de tipos de almacenamiento (Multics, por ejemplo, tenía originalmente tres niveles: memoria principal, un tambor de alta velocidad y discos).
IBM tiene patentes de almacenamiento de un solo nivel implementado en el sistema operativo IBM i en los IBM Power Systems y sus predecesores desde el System/38, que se lanzó en 1978.

## Diseño

Con un almacenamiento de un solo nivel, todo el almacenamiento de una computadora se considera como un solo plano bidimensional de direcciones, que apuntan a páginas. Las páginas pueden estar en el almacenamiento principal (RAM) o en el almacenamiento secundario (disco); sin embargo, la ubicación actual de una dirección no es importante para un proceso. El sistema operativo asume la responsabilidad de localizar las páginas y ponerlas a disposición para su procesamiento. Si una página está en el almacenamiento principal, está disponible de inmediato. Si una página está en el disco, se produce un error de página y el sistema operativo lleva la página al almacenamiento principal. Los procesos no realizan E/S explícitas en el almacenamiento secundario: en cambio, las lecturas del almacenamiento secundario se realizan como resultado de fallas de página; las escrituras en el almacenamiento secundario se realizan cuando las páginas que se han modificado desde que se leyeron del almacenamiento secundario al almacenamiento primario se vuelven a escribir en su ubicación en el almacenamiento secundario.

### Diseño del System/38 y del IBM i

El diseño de IBM del almacenamiento de un solo nivel fue originalmente concebido y promovido por Frank Soltis y Glenn Henry a fines de la década de 1970, como una forma de construir una implementación de transición para computadoras con memorias 100% de estado sólido. La idea en ese momento era que las unidades de disco quedarían obsoletas y serían reemplazadas por completo con algún tipo de memoria de estado sólido. El System/38 fue diseñado para ser independiente de la forma de memoria de hardware utilizada para el almacenamiento secundario. Sin embargo, esto no ha sucedido porque mientras que la memoria de estado sólido se ha vuelto exponencialmente más barata, las unidades de disco también se han vuelto igualmente más baratas; por lo tanto, la relación de precios a favor de las unidades de disco continúa: capacidades mucho más altas que la memoria de estado sólido, un acceso mucho más lento y mucho menos costosas.
En IBM i, el sistema operativo cree que tiene acceso a una matriz de almacenamiento casi ilimitada de «memoria real» (es decir, almacenamiento primario). Un traductor de direcciones asigna la memoria real disponible a la memoria física, que reside en las unidades de disco (ya sea «giratorios» o de estado sólido) o en un servidor SAN (como el V7000). El sistema operativo simplemente coloca un objeto en una dirección en su espacio de memoria. El sistema operativo «no sabe» (o no le importa) si el objeto está físicamente en la memoria o en un dispositivo de almacenamiento en disco más lento. El código interno con licencia (LIC), sobre el cual se ejecuta el sistema operativo, maneja las fallas de página en páginas de objetos que no están en la memoria física, leyendo la página en un marco de página disponible en el almacenamiento principal.
Con la implementación de IBM i de almacenamiento de un solo nivel, los errores de página se dividen en dos categorías. Estas son fallas de la base de datos y fallas que no son de la base de datos. Las fallas de la base de datos ocurren cuando una página asociada con un objeto de base de datos relacional, como una tabla, una vista o un índice, no se encuentra actualmente en el almacenamiento principal. Las fallas que no son de base de datos ocurren cuando cualquier otro tipo de objeto no está actualmente en el almacenamiento principal.
IBM i trata todo el almacenamiento secundario como un conjunto único de datos, en lugar de una colección de múltiples conjuntos (sistemas de archivos), como suele hacerse en otros sistemas operativos, como sistemas tipo Unix y Microsoft Windows. Dispersa intencionalmente las páginas de todos los objetos en todos los discos para que los objetos puedan almacenarse y recuperarse mucho más rápidamente. Como resultado, un servidor IBM i rara vez se vincula a un disco. Los sistemas operativos de almacenamiento de un solo nivel también permiten que los recursos de CPU, memoria y disco se sustituyan libremente entre sí en tiempo de ejecución para suavizar los cuellos de botella en el rendimiento.