admon de memoria

Anuncio
Organización de memoria virtual.
“Almacenamiento virtual ” significa la capacidad de direccionar un espacio de
almacenamiento mucho mayor que el disponible en el almacenamiento primario de
determinado sistema de computación. (George W. Reynolds-2002)
Los métodos más comunes de implementación son mediante:
Técnicas de “paginación”.
Técnicas de “segmentación”.
Una combinación de ambas técnicas.
Las direcciones generadas por los programas en su ejecución no son,
necesariamente, aquellas contenidas en el almacenamiento primario (memoria
real), ya que las direcciones virtuales suelen seleccionarse dentro de un número
mucho mayor de direcciones que las disponibles dentro del almacenamiento
primario.




Administración de la memoria sin intercambio o paginación.
Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los
que desplazan los procesos de la memoria principal al disco y viceversa durante la
ejecución (intercambio y paginación) y aquellos que no.

Monopogramación sin intercambio o paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante,
el usuario carga toda la memoria con un programa, esto implica que cada proceso
debe contener controladores de dispositivo para cada uno de los dispositivos E/S
que utilice.

Multiprogramación y uso de la memoria.
La multiprogramación facilita la programación de una aplicación al dividirla en dos
o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de
datos de dispositivos E/S.

Multiprogramación con particiones fijas
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución
posible sería dividir la memoria en n partes al inicio de una sesión de uso de la
máquina, pero aún así se obtiene el desperdicio de particiones grandes con una
tarea pequeña, la respuesta puede ser tener particiones pequeñas también.
Las tareas que van llegando se forman hasta que una partición adecuada está
disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta
terminar.

Intercambio
En un sistema por lotes la organización de la memoria en particiones fijas es
adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo
compartido, ya que existen mas usuarios de los que puede albergar la memoria,
por lo que es conveniente albergar el exceso de los procesos en disco., por
supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria
principal. Al traslado de procesos de disco a memoria y viceversa se le llama
intercambio.

Multiprogramación con particiones variables.
Mediante un algoritmo de administración de memoria las particiones variables
varían de forma dinámica durante el uso de la máquina, evitando desperdicio de
memoria.

Memoria Virtual
El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual,
la idea es que el tamaño combinado de la pila, programa y datos puede exceder la
memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes
del programa que se deben permanecer en memoria y el resto lo deja en disco, las
partes entre el disco y la memoria se intercambian de modo que se vayan
necesitando.

Paginación
El espacio de direcciones de cada proceso se divide en bloques de tamaño
uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para
página marco disponible en memoria. Cuando las tablas de páginas son muy
grandes se puede utilizar un esquema de paginación de varios niveles para que
las páginas se paginen a sí mismas.
Fig. 1 Administración de memoria segmentada y paginada.
Estructura de una entrada de tabla de
páginas
La estructura general de una tabla de páginas consta de lo siguiente:
 Número de marco de página
 Bit presente/ausente; si el bit es 1 la entrada es válida y puede usarse, si
es 0 significa que la página virtual de la entrada no está en
memoria, esto causaría un fallo de página.
 Bit de Protección; indica que tipos de accesos están permitidos. Si el bit es0
permite leer y escribir; y si es 1 permite únicamente leer.
 Bit Modificada y Solicitada llevan el control del uso de la página. El bit
modificado refleja el estado de la página, y el bit solicitado se
enciende cada vez que se hace referencia a una página; ya sea
para leer o escribir.
 El ultimo bit permite inhabilitar el uso de caché con la pagina.
Importante en el caso de páginas que corresponda a registros de
dispositivos, no a memoria.
No
poner
caché
Modificada
Presente/Ausente
Solicitada
Numero
Protección
de
marco
de
pagina
Funcionamiento de memoria paginada
Cada vez que la
CPU
genere una dirección de memoria ésta es transformada poruna unidad
hardware, de forma que en el bus del sistema se introduce ladirección
física correspondiente. Es importante observar que la paginación es ensí
misma una forma de reubicación dinámica. Cada dirección lógica
estransformada en alguna dirección física por el hardware de paginación.
Observetambién que si el tamaño de página es una potencia de dos, el hardware
noprecisa realizar ninguna división, simplemente sabe que los últimos n
bits, si eltamaño de página es de 2
n
, representan el desplazamiento, y los primeros bits lapágina.Cada
proceso debe tener su propia tabla de páginas, y su dirección de comienzoen la
memoria principal forma parte de la porción del
PCB
utilizada para realizarun cambio de proceso. Como el número de
marcos
(cantidad de memoria real)asignados a un proceso será normalmente menor que
el número de páginas que éste utiliza, es muy posible que una dirección del
programa haga referencia a una página que no se encuentre en aquel
momento en la memoria principal. En este caso el elemento
correspondiente de la tabla de páginas estará vacío, provocando el
hardware una interrupción de "
fallo de página
Si se intenta acceder a ella. Esta interrupción provoca que el control pase
al software (al sistema operativo), para que éste inicie la transferencia
de la página que falta desde la memoria secundaria a la memoria principal, y
actualice de acuerdo con ello la tabla de páginas. El proceso en ejecución se hará
no listo hasta que se haya completado esta transferencia. La posición de las
páginas en la memoria secundaria puede guardarse en una tabla separada o en la
misma tabla de páginas. En este último caso, es necesario un " b i t d e
presencia”
Ejercicio de aplicación
En este ejemplo es de 4KB de páginas y marcos, con un espacio de
direcciones virtuales de 64K y 32KB de memoria física, tenemos 16
páginas virtuales y ocho marcos de página. Cuando el programa trata de tener
acceso a la dirección 0, por ejemplo, con la intrusión la dirección virtual 0 envía a
la MMU. Esta ve que tal dirección virtual está en la pagina 0(0 a 4095, que según
su correspondenciaes el marco de pagina 2(8192 a 12287). Así, la MMU; lo único
que ve es una solicitud de leer o escribir a la dirección 8192, y lo hace. Por lo
tanto, la MMU haestablecido la correspondencia total de todas las direcciones entre
0 y 4095 conlas direcciones físicas 8192 a12287.
De forma similar la instrucción
F i g u r a 3 7 :
Ejemplo de aplicación
Descargar