viernes, 23 de marzo de 2012

GESTION DE MEMORIA PRINCIPAL


Todo ordenador tiene una memoria principal que utiliza para albergar los programas en ejecución. En los sistemas operativos más sencillos, sólo hay un programa a la vez en la memoria. Para ejecutar un segundo programa, es preciso desalojar el primero y colocar el segundo en la memoria.

Los sistemas operativos algo más sofisticados permiten que haya varios programas en la memoria al mismo tiempo. Para evitar que se interfieran (y que interfieran con el sistema operativo), es necesario algún tipo de mecanismo de protección. Aunque este mecanismo tiene que estar en el hardware, es controlado por el sistema operativo. El punto de vista anterior tiene que ver con la gestión y la protección de la memoria principal del ordenador. Un aspecto distinto, pero igualmente importante, relacionado con la memoria es la gestión del espacio de direcciones de los procesos. Normalmente, cada proceso tiene algún conjunto de direcciones que puede usar y que normalmente va desde 0 hasta algún máximo. En el caso más sencillo, la cantidad máxima de espacio de direcciones que tiene un proceso es menor que la memoria principal. De esa manera, un proceso puede llenar su espacio de direcciones habiendo suficiente espacio en la memoria principal para contenerlo. Sin embargo, en muchos ordenadores las direcciones son de 32 o 64 bits, lo que significa espacios de direcciones de 232 o 264 bytes, respectivamente. ¿Qué sucede si el espacio de direcciones de un proceso es mayor que la memoria principal del ordenador y el proceso quiere hacer uso de todo su espacio? En los primeros ordenadores no se podía ejecutar ese desafortunado proceso. Actualmente existe una técnica denominada memoria virtual, en la cual el sistema operativo mantiene una parte de su espacio de direcciones en la memoria principal y otra parte en el disco, y transfiere fragmentos entre ambos lugares según sea necesario. Esta importante función del sistema operativo, y otras relacionadas con la administración.