S07. Gestion de Memoria Virtual

Published on December 2016 | Categories: Documents | Downloads: 29 | Comments: 0 | Views: 187
of 20
Download PDF   Embed   Report

memoria vitual

Comments

Content

Universidad Nacional de Ingeniería

Facultad de Ingeniería Industrial y de Sistemas

Curso: SISTEMAS OPERATIVOS (ST-324)
Tema: Gestión de Memoria Virtual

Escuela Profesional de Ingeniería de Sistemas
Área Académica de Sistemas y Telemática

Ciclo Académico 2014-I

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[1]

Gestión de Memoria Virtual
Necesidad


Para mejorar la eficiencia del uso del procesador se requiere tener la mayor cantidad
de procesos posibles en estado Listo (en memoria principal).



La cantidad de procesos que deben residir en memoria y el tamaño de los mismos,
frente a la cantidad disponible de memoria principal, hace necesario el uso de
mecanismos que permitan ampliar de manera virtual la memoria.



El uso de memoria secundaria, es el mecanismo denominado “memoria virtual” para
suplir esta necesidad.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[2]

Gestión de Memoria Virtual
Qué ocurre al ejecutar un programa ?
1. El SO trae a memoria únicamente una o dos porciones de programa que incluyen la
porción inicial del programa y la porción inicial de datos sobre los que acceden dichas
instrucciones. (Conjunto Residente / Resident Set).
2. Si todas las referencias a memoria se encuentran dentro del Conjunto Residente, la
ejecución fluye con normalidad (el procesador determina la ubicación en base a las
tablas de paginas o segmentos).
3. Si el procesador encuentra una dirección lógica que no se encuentra en memoria
principal, genera una interrupción indicando un fallo de acceso a memoria.
4. El SO coloca el proceso interrumpido en un estado Bloqueado y toma el control. Para
que el proceso pueda ser reanudado, debe traerse a memoria principal la porción del
proceso que corresponde a la dirección lógica que causó el fallo de acceso.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[3]

Gestión de Memoria Virtual
Qué ocurre al ejecutar un programa ?
5. Para traer la porción del proceso requerido, el SO realiza una petición de E/S, una
lectura a disco.
6. El SO activa algún otro proceso para que sea ejecutado mientras el disco realiza la
operación de E/S.
7. Con la porción de proceso requerido en la memoria principal, se lanza una nueva
interrupción de E/S, dando el control de nuevo al SO que coloca el proceso Bloqueado
nuevamente en estado Listo.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[4]

Gestión de Memoria Virtual
Tipos de Memoria
• Memoria Real.- Es la memoria principal. Un proceso solamente se ejecuta al
estar en la memoria principal.
• Memoria Virtual.- Es la memoria secundaria. Se encuentra localizada en el
disco.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[5]

Gestión de Memoria Virtual
Ventajas de la Memoria Virtual
• Pueden mantenerse un mayor número de procesos en memoria principal.- Esto
nos lleva a una utilización más eficiente del procesador (es mayor la
probabilidad de que haya uno o más procesos en estado Listo que pueden
ocupar el procesador).
• Un proceso puede ser mayor que toda la memoria principal.- Sin este esquema,
un programador debe estar realmente atento a cuanta memoria está
disponible.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[6]

Gestión de Memoria Virtual
Principio de Cercanía o Proximidad


El Principio de Proximidad indica que las
referencias al programa y a los datos
dentro de un Proceso tienden a
agruparse. Por tanto, solo unas pocas
porciones del proceso se necesitarán a lo
largo de un período de tiempo corto.



También es posible hacer suposiciones
inteligentes sobre cuáles son las
porciones del proceso que se necesitarán
en un futuro próximo.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[7]

Gestión de Memoria Virtual
Soporte para el uso de Memoria Virtual
El principio de proximidad sugiere que el esquema de memoria virtual debe
funcionar, sin embargo se necesitan dos ingredientes para que resulte práctica y
efectiva:
1. Debe existir un soporte hardware para el esquema de paginación y/o
segmentación.
2. El SO debe incluir código para gestionar el movimiento de páginas y/o
segmentos entre la memoria principal y la memoria secundaria.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[8]

Paginación
Tabla de Páginas






Normalmente, cada proceso dispone de
su propia tabla de páginas.
La cantidad de memoria demandada
por una tabla de páginas puede ser
inaceptablemente grande.
Para resolver esto, la mayoría de
esquemas de memoria virtual también
almacenan las tablas de páginas en la
memoria secundaria (memoria virtual).

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[9]

Paginación
Buffer de Traducción Anticipada
(Translation Lookaside Buffer – TLB)
Toda referencia a Memoria Virtual
puede causar dos accesos a
memoria física:
1.
2.

Uno para buscar la Entrada de
la Tabla de Página apropiada.
Otro para buscar los datos
solicitados

Así un esquema de memoria virtual
básico causaría el efecto de duplicar
el tiempo de acceso a la memoria.
Para resolver este problema, la
mayoría de esquemas de memoria
virtual utiliza una cache especial de
alta velocidad para las entradas de la
tabla de página, denominada buffer
de traducción anticipada.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[10]

Segmentación
Tabla de Segmentos





Normalmente, cada proceso
dispone de su propia tabla de
segmentos.
Las entradas de la tabla de
segmentos son algo más
complejas que en la tabla de
páginas.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[11]

Gestión de Memoria Virtual
Política de Recuperación o Política de Carga


Determina cuándo una página se trae a la memoria principal.



Alternativas:
1. Bajo Demanda.- La página se trae a memoria principal solo cuando se hace
referencia a una posición dentro de dicha página.
2. Paginación Adelantada (prepaging).- Se traen a memoria principal también otras
páginas, diferentes de la que ha causado el fallo de página. Considera que si las
páginas de un proceso están almacenadas de forma contigua en la memoria
secundaria, es más eficiente traer a la memoria un número de páginas contiguas de
una vez, en lugar de traerlas una a una a lo largo de un período de tiempo más
amplio.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[12]

Gestión de Memoria Virtual
Política de Reemplazo


Determina la página candidata a ser retirada de la memoria principal cuando se va a traer una nueva
página.

 La Política de reemplazo debe determinar qué página de las que actualmente están en memoria es la
que tiene menos posibilidades de volver a tener una referencia en un futuro próximo.
 Debido al Principio de Proximidad de referencia, existe a menudo una correlación entre el histórico de
referencias recientes y los patrones de referencia en un futuro próximo, por eso, la mayoría de
políticas, tratan de predecir el comportamiento futuro en base al comportamiento pasado.
 Debe considerarse que cuanto más elaborada y sofisticada es una política de reemplazo, mayor será la
sobrecarga a nivel SW y HW para implementarla.
 Tipos:
a. Política de Reemplazo Local.- Selecciona únicamente entre las páginas residentes del proceso que
ha generado el fallo de página.
b.

Política de Reemplazo Global.- Se consideran todas las páginas en la memoria principal que no se
encuentren bloqueadas.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[13]

Gestión de Memoria Virtual
Algoritmos de Reemplazo de Páginas


1.
2.
3.
4.

Algoritmos básicos:
Óptimo.
Usado menos recientemente - LRU
(least recently used).
FIFO (first-in-first-out).
Reloj.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[14]

Gestión de Memoria Virtual
Algoritmo de Reemplazo de Páginas - RELOJ
Ejemplo:
• Buffer circular con n marcos de memoria disponibles para reemplazo
• Puntero en la dirección del marco 2
• Página entrante: 727

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[15]

Gestión de Memoria Virtual
Asignación de Páginas para un Proceso


Asignación Fija (Fixed Allocation).- Un proceso en ejecución tiene un número fijo de marcos.



Asignación Variable (Variable Allocation).- Un proceso en ejecución inicia con un conjunto
de marcos y este puede crecer conforme sucedan fallos de página.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[16]

Gestión de Memoria Virtual
Política de Limpieza


Determina cuándo una página que está modificada se debe escribir en memoria
secundaria.



Alternativas:

1. Bajo Demanda.- Una página modificada se escribe a memoria secundaria sólo cuando se
ha seleccionado para reemplazo.
2. Limpieza Adelantada.- Las páginas modificadas se escriben en memoria secundaria antes
de que sus marcos se necesiten, de forma que las páginas se puedan escribir en lotes.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[17]

Gestión de Memoria Virtual
Control de Carga


Determina el número de procesos que residirán en la memoria principal, eso se
denomina: el grado de multiprogramación.



La política de control de carga es crítica para una gestión de memoria efectiva.



Con muy pocos procesos residentes, habrá muchas ocasiones en que todos los procesos
estén bloqueados y gran parte del tiempo se gastará realizando swapping.



Demasiados procesos residentes harán que el tamaño medio del conjunto residente de
cada proceso sea poco adecuado, causando frecuentes fallos de página. Esto genera
Thrashing (Trasiego)

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[18]

Gestión de Memoria Virtual
Suspensión de Procesos


Si se va a reducir el grado de multiprogramación, uno o más procesos residentes deben
suspenderse.



Hay seis criterios que permiten decidir qué procesos suspender:
1.
2.
3.
4.

Procesos con baja prioridad.
Procesos que provocan muchos fallos.
Proceso activado hace más tiempo.
Proceso con el conjunto residente de menor tamaño.- Este requerirá un menor
esfuerzo para cargarse de nuevo.
5. Proceso mayor.- Proporciona un mayor número de marcos libres en memoria. Hace
poco probable futuras desactivaciones a corto plazo.
6. Proceso con la mayor ventana de ejecución restante.

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[19]

Universidad Nacional de Ingeniería

Facultad de Ingeniería Industrial y de Sistemas

Curso: SISTEMAS OPERATIVOS (ST-324)
Tema: Gestión de Memoria Virtual

Escuela Profesional de Ingeniería de Sistemas
Área Académica de Sistemas y Telemática

Ciclo Académico 2014-I

Sistemas Operativos | ST-324 V
- Mg. Carlos Calero -

[20]

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close