Administración
de la Memoria
La parte del sistema operativo que administra la memoria se
llama administrador de la memoria. Para ello existen diferentes esquemas de
administración de memoria desde los más simples hasta los más elaborados entre
los cuales se ubican:
- Administración de la memoria sin intercambio o paginación.
Se clasifican de dos maneras: 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.
* La monopogramación sin intercambio o paginación es en forma
de secuencia, ya que tiene un objeto en memoria en cada instante.
* La multiprogramación y el uso de la memoria facilita la
programación de una aplicación al dividirla en dos o más procesos.
* La multiprogramación con particiones fijas su objetivo 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.
- 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. Al traslado de procesos de disco a memoria y viceversa se le
llama intercambio.
* La
multiprogramación con particiones variables es
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, existen varios métodos como: la
administración de memoria con mapa de bits, la administración de memoria con
listas ligadas etc.
- 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.
* La
paginación es 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.
Existen
distintos niveles de paginación y a su vez distintos modelos de computadoras
han trabajado con ellas.
o
Paginación de
nivel 1: PDP−11.
o
Paginación de 2
niveles: la VAX.
o
Paginación de 3
niveles: la SPARC.
o
Paginación de 4
niveles: la 68030.
En los algoritmos de paginación las
tablas de páginas se mantienen en la memoria debido a su gran tamaño, en
potencia este diseño tiene un efecto enorme en el rendimiento.
- Algoritmos de remplazo de páginas.
Cuando ocurre un fallo de página el
sistema operativo debe elegir una página para retirarla de la memoria y hacer
un espacio para la página por recuperar. Si la página por eliminar fue
modificada mientras estaba en memoria, debe escribirla en el disco para
mantener actualizada la copia del disco, si por el contrario la página no ha
sido modificada la copia del disco ya está actualizada por lo que no es
necesario volver a escribir, la página por leer sólo escribe encima de la
página por retirar.
*El algoritmo de remplazo de páginas
optimo es el mejor algoritmo posible para remplazo de páginas pero irrealizable
en la práctica.
*El algoritmo de página de uso no muy
reciente en un fallo de página , el sistema operativo inspecciona todas las
páginas y las divide en cuatro categorías según los valores actuales de los
bits R y M.
Clase 0: No se ha hecho referencia ni
ha sido modificada
Clase 1: No se ha hecho referencia
pero ha sido modificada
Clase 2: Se ha hecho referencia pero
no ha sido modificada
Clase 3: Se ha hecho referencia y ha
sido modificada
* El algoritmo NRU implica una hipótesis
que indica que es mejor eliminar una página modificada sin referencias al menos
por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de
implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es
adecuado en muchos casos.
* El algoritmo de remplazo "
primero en entrar, primero en salir FIFO": El sistema operativo tiene una
lista de todas las páginas que se encuentran en memoria, siendo la primera
página la mas antigua y la última la mas reciente, en un fallo de página, se
elimina la primera página y se añade la nueva al final de la lista.
* El algoritmo de remplazo de páginas de
la segunda oportunidad en una modificación simple del FIFO que evita deshacerse
de una página de uso frecuente inspecciona el bit R de la página más antigua,
busca una página antigua sin referencias durante el anterior intervalo de
tiempo.
* El algoritmo de remplazo de páginas
del reloj aunque el anterior algoritmo es razonable un mejor enfoque es
mantener las páginas en una lista circular con la forma de un reloj, una
manecilla apunta hacia la mas antigua.
- Segmentación.
Una memoria segmentada tiene otras
ventajas como hacer mas sencilla la administración de las estructuras de datos
que crecen o se reducen, si cada procedimiento ocupa un segmento independiente
con la posición inicial cero el ligado independiente de los procesos compilados
es mucho mas sencillo.
No hay comentarios:
Publicar un comentario