Capítulo 7. Administración de Memoria

Tabla de contenidos

¿Que es la memoria virtual?
Creando un espacio swap
Usando un área de swap
Compartiendo el área de swap con otro sistema operativo
Alocando espacio de swap.
El Buffer Cache

Minnet, jag har tappat mitt minne, är jag svensk eller finne, kommer inte ihåg...” (Bosse österberg)

A Swedish drinking song, (rough) translation: “Memory, I have lost my memory. Am I Swedish or Finnish? I can't remember

En esta sección se describen las características de la administración de memoria en Linux, ej., la memoria virtual y el cache en disco. El propósito, la forma de trabajar y las consideraciones que deberá tomar el administrador del sistema son descriptas en este capítulo.

¿Que es la memoria virtual?

Linux soporta las características de Memoria Virtual (virtual memory). Esto significa usar un disco como una extensión de la memoria RAM, de forma tal que el tamaño efectivo de memoria utilizable crezca considerablemente. El kernel se encarga de escribir el contenido de un bloque de memoria que no está siendo utilizado al disco rígido de forma que esta porción de memoria quede disponible para otro propósito. Cuando los bloques originales vuelven a ser requeridos, son leídos y colocados nuevamente en memoria. Todo esto es realizado en forma completamente transparente para el usuario. Los programas ejecutados bajo Linux solo ven una gran cantidad de memoria disponible y no saben que parte de ellos reside en el disco en un momento dado. Por supuesto que leer y escribir en el disco es mucho mas lento que utilizar la memoria real (en el orden de 1000 veces mas lento), Por lo que los programas se tornan mucho mas lento también. La parte del disco que es usado como memoria virtual se llama área de swap (swap space).

Linux puede utilizar tanto un archivo normal en el sistema de archivos como una partición separada del disco como área de swap. Una partición swap es mucho mas rápida, pero es mucho mas fácil cambiar el tamaño del área de swap si este es un archivo (y no hay necesidad de particionar el disco rígido entero, y posiblemente instalar todo desde cero). Cuando se conoce la cantidad de espacio swap que se necesita, es más indicado optar por una partición swap. Pero si no se está seguro de la cantidad de espacio que se necesita, se puede crear primero un archivo swap, probar el sistema hasta que se esté seguro del tamaño necesario, y luego construir una partición con dicho tamaño.

Cabe señalar que Linux permite también usar una o varias particiones de swap y/o archivos de swap al mismo tiempo. Esto significa que si ocasionalmente se necesita una cantidad adicional de espacio swap, se puede crear un archivo de swap extra para ese momento especial, en lugar de mantener una partición con todo ese espacio necesario en forma permanente.

Una nota sobre la terminología en Sistema Operativo: La ciencia de la computación distingue habitualmente entre la palabra swapeado o "swaping" (escribir el proceso entero al área de swap) y paginado (escribir solo porciones fijas de memoria, generalmente unos pocos kilobytes, por vez). El paginado generalmente es mas eficiente y es lo que hace Linux, aunque de todos modos en la terminología Linux se dice Swapeo o "swapping" [20]



[20] Tus quite needlessly annoying a number of computer scientists greatly.