Está en la página 1de 6

2.2.

2 Técnicas de administración de la memoria

Podemos entender la memoria principal como un inmenso casillero, donde cada casilla está numerada
(con una dirección) y puede almacenar una palabra.

Una palabra es el conjunto de bits que la arquitectura de un ordenador puede manejar como un todo.
Los tamaños de palabra más comunes son de 16, 32 ó 64 bits.

Para que un programa pueda ejecutarse, sus instrucciones y sus datos tendrán que estar presentes en
la memoria principal del sistema, lo que conocemos como memoria RAM. Como hemos visto más
arriba, planificando el uso del procesador, mejoraremos el rendimiento general del sistema, pero esto
implicará la necesidad de compartir la memoria principal entre varios procesos de forma simultánea.
Por lo tanto, una buena administración de la memoria, repercutirá de forma inmediata en el
comportamiento de todo el sistema informático.

El gestor de memoria deberá asignar la porción necesaria de memoria principal a cada proceso que
lo necesite.

Los sistemas operativos modernos son, casi siempre, multiprogramados. Es decir, ejecutan varios
procesos de forma concurrente. Esto significa que la memoria debe dividirse para darles cabida.

Cuanto más eficaz sea ese reparto, más procesos podrán ejecutarse a la vez, lo que redundará en un
mayor rendimiento del sistema (no debemos olvidar que el procesador es el elemento más rápido del
sistema y que el objetivo principal consiste en que siempre tenga instrucciones listas para ser
ejecutadas).

2.2.2.1 Paginación

En la Gestión de memoria con particiones variables, hemos visto que la memoria disponible tiende
a no estar en posiciones contiguas, por lo que se produce una considerable fragmentación externa
(la memoria disponible se dispersa a lo largo del espacio de direcciones.

Para resolver esta circunstancia, se planteó la posibilidad de que el espacio de memoria que usa un
determinado proceso no tuviese que estar en posiciones contiguas. Así, en un esquema de paginación,
la memoria se divide en trozos del mismo tamaño que reciben el nombre de marcos de página (o, en
inglés, frames). Del mismo modo, los procesos se dividen en fragmentos del mismo tamaño
denominados páginas. De este modo, cuando llegue un nuevo proceso, el único problema será
encontrar la cantidad suficiente de marcos de página disponibles en la memoria principal.

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 1 de 6


Gracias a este planteamiento, se acaba con la fragmentación externa, y la fragmentación interna
quedará reducida al último marco de página asignado a cada proceso. Cabe esperar que, por término
medio, la mitad del último marco de página quede desocupado.

Como podrás suponer, este esquema necesita un método que traduzca las direcciones virtuales a
direcciones físicas, teniendo en cuenta la ubicación real de cada marco de página. Este método se basa
en la creación de una tabla de páginas, para cada proceso, en el momento de cargarlo en memoria.
En ella se establecerá el paralelismo entre cada página y su marco de página correspondiente.

Por lo tanto, las direcciones virtuales constarán de un número de página y un desplazamiento dentro
de ella. El número de página actuará como índice en la tabla de páginas.

Además, es frecuente que el sistema operativo mantenga una lista de marcos de página disponibles.

Las direcciones virtuales también suelen llamarse direcciones relativas y suelen asignarse durante la
compilación del programa, siendo relativas al comienzo del mismo (que será la dirección 0 de la
página 0).

Dado que este método implica constantes traducciones de direcciones virtuales a direcciones físicas,
para evitar que el sistema sufra una importante penalización de rendimiento, habrá que recurrir a un
hardware específico para la traducción.

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 2 de 6


Por otra parte, el sistema operativo dispondrá de un mapa de la memoria, con una entrada por cada
marco de página, donde se indique cuáles están libres y cuáles ocupados.

Otro aspecto a tener en cuenta será el tamaño de los marcos de página:

o Con marcos de página pequeños, tendremos poca fragmentación interna y tablas de páginas

grandes.

o Con marcos de página grandes, tendremos más fragmentación interna y tablas de páginas

pequeñas.

Usando la paginación, se pueden seguir aplicando técnicas de intercambio, para mover a memoria
secundaria, los procesos que se encuentran bloqueados en espera de un suceso.

2.2.2.2 Segmentación

Hasta ahora, hemos visto el problema de la gestión de memoria desde el punto de vista del sistema
operativo, donde la asignación de memoria se realiza en función del tamaño total de un proceso o
dividiendo éste en porciones de la misma longitud. Sin embargo, los programadores y los usuarios
necesitan manejar sus datos de un modo más flexible: Tanto las funciones y procedimientos en las
que se dividen los programas, como las estructuras en las que se organizan los datos (como tablas o
pilas), tienen tamaños diversos.

Por lo tanto, podemos decir que un programa es un conjunto de elementos lógicos de tamaños
variables.

Para dar cobertura a este planteamiento, la segmentación plantea que en el momento de compilar un
programa, éste se convierta en un conjunto de segmentos a los que se asignará un identificador, un
punto de inicio y un tamaño. Las direcciones se expresarán mediante un número de segmento y un
desplazamiento dentro de él, y el tamaño asegura que no se realizan referencias a direcciones ilegales
dentro del segmento.

Además, como cada componente lógico del proceso se encuentra en un segmento diferente, podemos
mejorar la protección haciendo que los segmentos que contienen código sean de solo lectura.
También podemos asegurar que un fragmento de código no acceda al código de un fragmento
diferente.

Por otra parte, al encontrarse cada bloque lógico del programa en un segmento distinto, podría
compartirse código entre diferentes programas de un modo sencillo.

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 3 de 6


De forma parecida a como ocurría en la paginación, la conversión de una dirección virtual a su
correspondiente dirección física se realiza utilizando una tabla de segmentos.

Como en el caso de la paginación, la segmentación puede extender el espacio físico de


almacenamiento utilizando técnicas de intercambio.

2.2.2.3 Paginación y segmentación combinadas

Dado que la segmentación ofrece ventajas desde el punto de vista del usuario, pero la paginación
simplifica la perspectiva del sistema operativo, cuando el tamaño de los segmentos es grande, es
frecuente que se utilice una combinación de ambas. La idea es dividir cada segmento en páginas de
longitud fija para su ubicación en memoria.

Como en la segmentación pura, las direcciones se expresarán mediante un número de segmento y un


desplazamiento dentro de él. Sin embargo, ahora en la entrada de la tabla de segmentos la dirección
base hace referencia al inicio de la tabla de páginas asociada al segmento. El desplazamiento dentro
del segmento se divide por el tamaño de página para encontrar el marco de página adecuado. El resto
de la división anterior representará la dirección que estamos buscando.

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 4 de 6


Este método ofrece una gran flexibilidad, pero tiene tres inconvenientes:

o El proceso de traducción es más complejo, por lo que consumirá más recursos.

o Dado que cada segmento tiene su propia tabla de páginas, el espacio destinado al

almacenamiento de tablas de páginas será mucho mayor.

o Como cada segmento tiene su propia tabla de páginas, podremos tener un marco de páginas

incompleto al final de cada uno de los segmentos asignados a un proceso, lo que implica una

mayor fragmentación interna.

2.2.2.4 Memoria virtual.

Todos los métodos estudiados hasta el momento suponen que un proceso debe estar completamente
cargado en memoria para poder ejecutarse. Sin embargo, el modelo de Memoria virtual aplica los
mecanismos de intercambio que ya hemos mencionado para que las partes de un proceso que no
estén siendo utilizadas en un momento concreto, puedan residir en memoria secundaria. De esta
forma, se libera una mayor cantidad de memoria principal para albergar un número de procesos
superior. Además, este planteamiento nos permitiría ejecutar procesos que fuesen más grandes que
la memoria física.

Normalmente se implementa a partir de los conceptos de paginación y/o segmentación que hemos
estudiado antes.

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 5 de 6


Cuando el proceso hace referencia a una dirección de memoria que no reside en memoria principal, se
produce un fallo de página. En ese momento, el sistema localiza un marco de página libre y carga en
él la página necesaria. Si no hubiese marcos libres, habría que aplicar un algoritmo de sustitución
para elegir la página de este u otro proceso que debe abandonar la memoria principal para dejar
espacio a la que debe cargarse.

Mientras dura toda esta operación, el proceso que originó el fallo de página permanece en estado
Bloqueado.

Para saber qué páginas se encuentran en memoria principal y cuáles están en el disco, la tabla de
páginas puede incluir un bit de presencia.

Este tipo de esquemas consiguen que la memoria se aproveche mucho mejor. Además, al poder cargar
más procesos en la misma cantidad de memoria, el procesador estará mejor aprovechado. Sin
embargo, si se produce una situación que provoque una cantidad elevada de fallos de página, los
accesos a disco se multiplicarán y el rendimiento puede caer de forma considerable. Este fenómeno
recibe el nombre de hiperpaginación.

Licencia del contenido


Autoría: Pedro Ruiz Aranda
Licencia: Creative Commons BY-NC-ND
Procedencia: http://somebooks.es/?p=6469

Los contenidos de este capítulo se encuentran bajo una licencia Creative Commons Reconocimiento – No Comercial –
Sin Obra Derivada 3.0. Puedes encontrar todos los detalles en
http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es

Capítulo 1. Introducción a los sistemas operativos y su instalación Página 6 de 6

También podría gustarte