El único espacio de almacenamiento que el procesador puede utilizar directamente, más allá de los registros (que si bien le son internos y sumamente rápidos, pero de capacidad muy escasa) es la memoria física. Todas las arquitecturas de procesador tienen instrucciones para interactuar con la memoria, pero ninguna lo tiene para hacerlo con medios persistentes de almacenamiento, como las unidades de disco1. Cabe mencionar que cuando veamos en un texto referencia al almacenamiento primario siempre se referirá a la memoria, mientras que el almacenamiento secundario se refiere a los discos u otros medios de almacenamiento persistente.
Todos los programas que deseemos ejecutar deben cargarse a la memoria del sistema antes de ser utilizados. En esta unidad veremos cómo administra el sistema operativo a la memoria para permitir que varios procesos la compartan — Esta tarea debe preverse desde el proceso de compilación de nuestros programas (en particular, la fase de ligado). Hoy en día, además, casi todos los sistemas operativos emplean implementaciones que requieren de hardware especializado — La Unidad de Manejo de Memoria (MMU). Hablaremos de cómo se manejaban los sistemas multitarea antes de la universalización de los MMU, y qué rol juegan hoy en día.
En esta primer sección, veremos algunos conceptos base que iremos hilando y empleando en las secciones subsecuentes.
Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
- Poderlos ejecutar.
- Referenciarlos directamente.
Se considera “almacenamiento secundario” o “almacenamiento auxiliar” al generalmente soportado en discos.
Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rápido como las memorias:
- “Ley de Parkinson parafraseada”: Los programas se desarrollan para ocupar toda la memoria disponible para ellos.
La parte del S. O. que administra la memoria se llama “administrador de la memoria”:
- Lleva un registro de las partes de memoria que se están utilizando y de aquellas que no.
- Asigna espacio en memoria a los procesos cuando estos la necesitan.
- Libera espacio de memoria asignada a procesos que han terminado.
Organización y Administración del Almacenamiento
Organización del Almacenamiento
Históricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilización debía optimizarse [7, Deitel].
Por organización del almacenamiento se entiende la manera de considerar este almacenamiento:
- ¿ Se coloca un solo programa de usuario o varios ?
- Si se encuentran varios programas de usuario:
- ¿ se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o “particiones” de diferente tamaño ?.
- ¿ se utilizará un esquema rígido de número y tamaño de particiones o un esquema dinámico y adaptable ?.
- ¿ se requerirá que los trabajos de los usuarios sean diseñados para funcionar en una partición específica o se permitirá que se ejecuten en cualquiera donde quepan ?.
- ¿ se requerirá o no que cada trabajo sea colocado en un bloque contiguo de memoria ?