Cuando un sistema operativo gestiona la memoria del ordenador, hay dos tareas importantes que necesitan ser realizadas. La primera es que cada proceso tiene que tener memoria suficiente para poder ejecutarse, y no puede funcionar en el espacio de memoria de otro proceso. En segundo lugar, los diferentes tipos de memoria en el sistema deben ser usados apropiadamente por lo que cada proceso puede funciona de forma más efectiva.
La primera tarea requiere que el sistema operativo configure los límites de memoria para los tipos de software y las aplicaciones individuales. Para poderlo ver de una forma más clara, veremos a continuación un sencillo ejemplo.
Imaginemos que tenemos un pequeño sistema con 1 megabyte de RAM. Durante el proceso de arranque, el sistema operativo de nuestro ordenador imaginario está diseñado para llegar al máximo de la memoria disponible, y luego dar marcha atrás si es necesario para ajustarse a las necesidades del propio sistema operativo. Digamos que el OS necesita 300 kilobytes para funcionar.
Ahora, el sistema operativo hace uso de la memoria en RAM y comienza a instalar los numerosos controladores de software requeridos para controlar el hardware de los subsistemas del ordenador. En este ejemplo, los controladores se llevan hasta 200 kilobytes. Por lo tanto, después de que el OS se hay cargado completamente, hay 500 kilobytes sobrantes para los procesos de las aplicaciones.
Cuando las aplicaciones empiezan a cargarse en memoria, son cargados en bloques de tamaños determinados por el sistema operativo. Si el tamaño de un bloque es 2 kilobytes, entonces cada proceso que se cargue se le dará un trozo de memoria que es un múltiplo de 3 kilobytes en tamaño. Las aplicaciones serán cargadas en estos bloques prefijados, con los bloques empezando y terminando en los límites establecidos por tramos de 4 o 8 bytes.
Estos bloques y límites ayudan a asegurar que las aplicaciones no se cargarán sobre el espacio de otra aplicación por un error en el cálculo de los bits. Asegurando esto, la duda es que hacer cuando los 500 kilobytes de espacio es llenado por completo.
En la mayoría de los ordenadores, es posible añadir memoria más allá de la capacidad original. Por ejemplo, Podría expandir la memoria RAM hasta 3 gigabytes. Esto funciona bien, pero puede ser relativamente caro. También se ignora un factor fundamental de la computación – mucha de la información que una aplicación almacena en memoria no se está usando en ningún momento. Un proceso solo puede acceder a la memoria en una localización a la vez, por lo que buena parte de la RAM no es usada en ciertos momentos.
Al ser el espacio en disco algo más económico comparado con la RAM, mover información en RAM al disco duro puede expandir enormemente espacio y coste. Esta técnica se llama gestión de memoria virtual.
El almacenamiento en disco es solo uno de los tipos de memoria que debe ser gestionado por un sistema operativo, y es el más lento. En orden de velocidad, los tipos de memoria en un sistema de ordenadores son:
- Caché de alta velocidad – Son pequeñas y rápidas cantidades de memoria que están disponibles para la CPU por medios de conexiones rápidas. Los controladores de caché predicen qué trozos de los datos necesitará la CPU a continuación, y lo sacará de la memoria principal dentro del caché de alta velocidad para acelerar el rendimiento del sistema.
- Memoria principal – Es la RAM que puedes ver medida en megabytes cuando compras un ordenador.
- Memoria secundaria – Esto es frecuentemente algún tipo de almacenamiento rotatorio magnético que mantiene las aplicaciones y los datos disponibles para ser usados, y sirve como una RAM virtual bajo el control del sistema operativo.
El sistema operativo debe balancear las necesidades de los múltiples procesos con la disponibilidad de los diferentes tipos de memoria, moviendo los datos en bloques (llamadas páginas) entre la memoria disponible, tal como dictan los procesos.
En la siguiente parte del artículo, veremos como es la gestión del dispositivo. Haz clic aquí para verlo:
Funcionamiento de la gestión OS