sistemas operativos capitulo 3 tanenbaum
GESTIÓN DE MEMORIA
La memoria es un recurso importante que debe ser cuidadosamente gestionado. Aunque
el ordenador doméstico medio de nuestros días tiene miles de veces más memoria que el IBM
7094 (el mayor ordenador del mundo a principios de la década de los años sesenta) el tamaño de
los programas está creciendo mucho más rápido que el tamaño de las memorias. Para
parafrasear la ley deParkinson: “Los programas se expanden hasta llenar toda la memoria
disponible para contenerlos”. En este capítulo vamos a estudiar la forma en la que los sistemas
operativos gestionan la memoria.
Idealmente a todo programador le gustaría poder contar con una memoria infinitamente
grande, infinitamente rápida y que fuese además no volátil, esto es, que no perdiese su
contenido en ausencia deenergía eléctrica. Llegados aquí, ¿porqué no pedir además que esa
memoria sea también suficientemente barata? Desafortunadamente la tecnología no proporciona
tales memorias. Consecuentemente, la mayoría de los ordenadores disponen de una jerarquía
de memoria, con una pequeña cantidad de memoria caché muy rápida, cara y volátil, decenas
de megabytes de memoria principal (RAM) moderadamenterápida, moderadamente cara y
volátil, y decenas o cientos de gigabytes de memoria de disco lenta, barata y no volátil.
Corresponde al sistema operativo coordinar la utilización de esos tres tipos de memoria.
La parte del sistema operativo que gestiona la jerarquía de memoria se denomina el
gestor de memoria. Su trabajo es seguir la pista de qué partes de la memoria están en uso y
cuáles no loestán, con el fin de poder asignar memoria a los procesos cuando la necesiten, y
recuperar esa memoria cuando dejen de necesitarla, así como gestionar el intercambio entre
memoria principal y el disco cuando la memoria principal resulte demasiado pequeña para
contener a todos los procesos.
En este capítulo vamos a investigar diferentes esquemas de gestión de memoria, que van
desde los más simpleshasta los más sofisticados. Vamos a comenzar por el principio,
fijándonos primero en el sistema de gestión de memoria más sencillo posible para luego ir
progresando gradualmente a gestores de memoria más y más elaborados.
Como señalamos en el Capítulo 1, la historia tiende a repetirse ella misma en el mundo
de los ordenadores. Así, aunque los esquemas de gestión de memoria más sencillos ya nose
utilizan en los ordenadores personales, siguen utilizándose todavía en algunos asistentes
personales (palmtops), sistemas empotrados y sistemas de tarjeta inteligente. Por este motivo, es
necesario estudiarlos todavía.
1
4.1
GESTIÓN DE MEMORIA BÁSICA
Los sistemas de gestión de memoria pueden dividirse en dos clases: los que mueven
procesos de la memoria principal al disco y deldisco a la memoria principal durante su
ejecución (intercambio y paginación), y los que no lo hacen. Los segundos son más sencillos,
por lo que vamos a estudiarlos primero. Más tarde en el capitulo examinaremos el intercambio y
la paginación. A lo largo de este capítulo el lector debe tener presente que el intercambio y la
paginación son principalmente mecanismos artificiales motivados por lafalta de memoria
principal suficiente para contener todos los programas a la vez. Si la memoria principal llegara a
ser tan grande que siempre hubiera la suficiente, los argumentos a favor de un tipo de esquema
de gestión de memoria u otro podrían volverse obsoletos.
Por otra parte, como ya mencionamos anteriormente, el software parece estar creciendo
incluso con más rapidez que la memoria,por lo que es posible que siempre se necesite una
gestión de memoria eficiente. En la década de 1980, muchas universidades ejecutaban un
sistema de tiempo compartido con docenas de usuarios (más o menos satisfechos) sobre un
ordenador VAX de tan solo 4 MB. En la actualidad, Microsoft recomienda tener por lo menos
64 MB para un sistema Windows 2000 monousuario. La tendencia hacia la...
Regístrate para leer el documento completo.