Sistemas Operativos

Anuncio
Sistemas Operativos
Clase 8: administración de memoria.
Administración de memoria
En forma física, el manejo de memoria es:
• Segmentación.
 Segmentación pura o simple.
 Segmentación con descriptores.
• Paginación.
Administración de la memoria
El gestor o administrador de memoria se encarga de
repartir de forma optima y transparente la memoria
entre los procesos; para ello debe cumplir:
• Reubicación.
• Protección.
• Compartición.
Administración de la memoria
El gestor de memoria emplea diversos mecanismos de
asignación, entre los que se tiene:
•
•
•
•
•
•
Partición fija.
Partición dinámica.
Paginación simple.
Segmentación simple.
Memoria virtual paginada.
Memoria virtual segmentada.
Administración de la memoria
En partición dinámica, debido a los huecos que pueden
ir quedando en memoria (fragmentación externa), es
necesario implementar mecanismos de asignación:
• Mejor ajuste.
• Primer ajuste.
• Peor ajuste.
Administración de la memoria
Memoria virtual
La paginación y la segmentación
características importantes:
poseen
dos
• El uso de direcciones lógicas.
• Un proceso puede dividirse en varios bloques de
memoria, sin necesidad de que estos sean contiguos.
La traducción se realiza en tiempo ejecución.
Administración de la memoria
Memoria virtual
Como hay ocasiones en que un proceso no se
encuentra en ejecución, entonces es posible que en
esos instantes no necesite usar sus segmentos o
páginas, y que por lo tanto deberían liberar el recurso
de memoria.
Administración de la memoria
Memoria virtual
Liberar la memoria proporciona ciertas mejoras:
• Se pueden conservar más procesos en memoria. Con
ello, es posible hacer un uso más eficiente del
procesador.
• Los procesos pueden ser tan grandes como se
necesite.
Administración de la memoria
Memoria virtual
Principio de cercanía: establece que las referencias a
memoria tienden a estar agrupadas.
• En la ejecución de un programa, generalmente la
siguiente instrucción estará a continuación de la
ultima instrucción accedida.
• No es común tener una secuencia larga de llamadas
a procedimientos.
Administración de la memoria
• Cuando se trata de instrucciones iterativas, su
ejecución esta limitada a una pequeña sección de
programa.
• En general, al hacer referencia a datos, estos están
cerca unos de otros.
Lo anterior permite que la memoria virtual sea un buen
método para mejorar el sistema.
Administración de la memoria
Memoria virtual
Un inconveniente de la memoria virtual es el fallo de
página; es decir, cuando un proceso no encuentra sus
datos ya que estos están en la memoria virtual.
Cuando sucede un fallo de página, el proceso que
genero el problema es interrumpido para colocar la
pagina que necesita en memoria.
Administración de la memoria
Memoria virtual
Otro problema que puede surgir al emplear memoria
virtual, es lo que se conoce como hiperpaginación.
La hiperpaginación se presenta cuando suceden
muchos fallos de página, como consecuencia de una
mala organización en los fragmentos de un programa.
Administración de la memoria
Memoria virtual paginada
Generalmente la memoria virtual se asocia a la
paginación, sin embargo, también puede ser empleada
la segmentación.
En la memoria virtual paginada se emplea el mismo
esquema de paginación simple, con la diferencia que
ahora la tabla de paginas requiere de mayor
información.
Administración de la memoria
Memoria virtual segmentada
Nuevamente, aquí se maneja el mismo esquema que el
método de segmentación simple; sin embargo,
descargar un segmento de memoria puede ser un
proceso costoso, por lo que es más común emplear
memoria virtual paginada.
Administración de la memoria
Al diseñar un SO, en el aspecto de la memoria, es
necesario considerar tres puntos:
• ¿Se usará paginación, segmentación o ambas?
• Uso de memoria virtual.
• Los algoritmos empleados en la gestión de memoria.
Administración de la memoria
• La decisión de las dos primeras depende en gran
medida del hardware a donde será ejecutado el SO.
• En el tercer caso, los sistemas están orientados a la
paginación en general por el uso de memoria virtual,
por lo que los algoritmos de gestión estarán
encaminados a considerar estas características.
• Por lo tanto, la idea de los gestores de memoria, será
disminuir el número de fallos de página. Para ello se
deben tomar decisiones sobre qué páginas se
pueden remplazar.
Administración de la memoria
Para los algoritmos hay que considerar:
•
•
•
•
Políticas de lectura.
Políticas de ubicación.
Políticas de reemplazo.
Políticas de vaciado.
Administración de la memoria
Políticas de lectura
Se refiere a la manera en que se van a cargar las
páginas en la memoria; se tienen dos casos:
• Paginación por demanda: la página solo se carga
cuando se utiliza. Al principio los fallos son muchos,
pero estos disminuyen con el tiempo.
• Paginación previa: Ante un fallo de página, se cargan
todas las páginas relacionadas con la del primer fallo.
Administración de la memoria
Políticas de ubicación
Consiste en determinar en que área de la memoria
residirá un proceso. En paginación, debido a su manera
de organización, no es muy importante este aspecto;
sin embargo, cuando se habla de segmentación, esto es
un aspecto muy importante; generalmente se emplean
las políticas del mejor ajuste o el primer ajuste.
Administración de la memoria
Políticas de reemplazo
• La idea es determinar que página se va a reemplazar
para colocar otra.
• El objetivo es reemplazar la página que en el futuro
tenga la menor posibilidad de ser referenciada.
• Son necesarias estadísticas a fin de predecir el
futuro.
• Sin embargo, no es deseable algo muy sofisticado,
para no saturar el hardware.
Administración de la memoria
Políticas de reemplazo
• Problema: las páginas bloqueadas.
• En esta política, se considera el número de marcos
que se debe asignar a cada proceso.
• En función de lo anterior, si hay un fallo de página, se
deberán considerar las páginas dentro de los marcos
asignados, o se usaran otros marcos.
Administración de la memoria
Políticas de reemplazo
Algunos algoritmos de reemplazo son los siguientes:
•
•
•
•
Optimo (ideal).
Least Recently Used LRU (menos usada).
FIFO.
Reloj (o algoritmo de segunda oportunidad).
Administración de la memoria
Políticas de reemplazo: optimo
• Selecciona la página que tiene que esperar el mayor
tiempo a ser referenciada.
• Este es el caso ideal, ya que requiere que el SO
conozca de manera completa el comportamiento de
las páginas de un determinado proceso.
• Este algoritmo sirve de base para los demás.
Administración de la memoria
Políticas de reemplazo: LRU
• En este caso se reemplaza la página que no ha sido
usada por más tiempo.
• Haciendo uso del principio de cercanía, esta sería la
página con menor probabilidad der ser usada.
• Su implementación es costosa, cada página requiere
de asignar una etiqueta de tiempo para determinar
cuando fue usada por ultima vez.
Administración de la memoria
Políticas de reemplazo: FIFO
• En este caso, las paginas se descargan de memoria
según una política tipo “Round-Robin”, ya que se
emplea una especie de buffer circular.
• Esta política es muy sencilla de implementar, solo se
quita la página que lleva más tiempo.
• Sin embargo su rendimiento es muy pobre.
• Se requieren marcas de tiempo.
Administración de la memoria
Políticas de reemplazo: de reloj
• Esta política requiere de un bit de uso, el cual se
modifica como sigue: se pone a 0 cuando se carga la
página, y se coloca a 1 cuando se hace referencia a la
página en una segunda vez.
• El algoritmo recorre las paginas, como en una
especie de buffer circular, hasta que encuentra una
pagina con el bit de uso igual a cero; en caso de que
el bit de uso sea 1, lo cambia a 0 y continua.
Administración de la memoria
Consideremos las siguientes solicitudes con 4 marcos
de página:
5 1 2 3 5 9 2 7 1 3 2 7 9 1 3 6 5 7 9
Administración de la memoria
Sin embargo, hay algunos puntos a considerar:
• Entre menos marcos se asignen, el número de
procesos aumenta.
• Pero si es menor, el número de fallos de página
aumenta.
• Después de un determinado tamaño, la asignación
de más marcos no tendrá efectos notables.
Administración de la memoria
A lo anterior se le conoce como Gestión del conjunto
residente, y es la manera en que se van asignar marcos
de página a los procesos.
En este sentido, se implementan dos políticas:
• Asignación fija.
• Asignación variable.
Administración de la memoria
Política de vaciado
Es en cierto sentido contraria a la política de lectura, ya
que se preocupa por determinar en que momento se
va a escribir al medio secundario una página que ha
sido modificada.
De igual manera existen dos casos:
• Estático.
• Dinámico.
Administración de la memoria
Política de vaciado: estático
• En este caso, la página se escribe en el medio
secundario solo cuando ha sido seleccionada para
ser reemplazada.
• Minimiza las escrituras, pero hace que un proceso
tenga que esperar más tiempo.
• Una solución es implementar una memoria
intermedia, que posea dos listas: modificadas y no
modificadas.
Administración de la memoria
Política de vaciado: dinámico
• Escribe las páginas modificadas antes de que se
empleen sus marcos.
• Este método genera un malgasto de operaciones que
en ocasiones son innecesarias.
• Como la escritura es en lotes, se tienen que escribir
muchas páginas al mismo tiempo.
Fin de clase 8
Descargar