Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I
Memoria Virtual
Memoria Virtual
La memoria virtual es una tcnica de gestin de la memoria que permite
que el sistema operativo disponga, tanto para el software de usuario como
para s mismo, de mayor cantidad de memoria que est disponible
fsicamente. La mayora de los ordenadores tienen cuatro tipos de
memoria: registros en laCPU, lamemoria cach(tanto dentro como fuera
del CPU), la memoriaRAMy el disco duro. En ese orden, van de menor
capacidad y mayor velocidad a mayor capacidad y menor velocidad.
Memoria Virtual
Ejecucin de un programa
El sistema operativo comienza trayendo slo unos
pocos fragmentos del programa.
El conjunto residente es la parte de un proceso que
est realmente en la memoria principal.
Si el procesador encuentra una direccin lgica que no
est en la memoria principal, genera una interrupcin
que indica un fallo de acceso a la memoria.
El sistema operativo pone al proceso interrumpido en
estado Bloqueado.
Ejecucin de un programa
El sistema operativo necesita traer a la memoria
principal el fragmento del proceso que contiene la
direccin lgica que provoc el fallo de acceso:
Tipos de memoria
Memoria real:
Memoria principal.
Memoria virtual:
Memoria situada en el disco.
Permite una multiprogramacin muy efectiva y releva al usuario
de las rgidas e innecesarias restricciones de la memoria principal.
Hiperpaginacin
El sistema operativo expulsa un fragmento de un proceso
justo antes de ser usado.
El procesador consume ms tiempo intercambiando
fragmentos que ejecutando instrucciones de usuario.
Principio de cercana
Las referencias a los datos y al programa dentro de un
proceso tienden a agruparse.
Durante cortos periodos de tiempo se necesitarn slo
unos pocos fragmentos de un proceso.
Sera posible hacer predicciones inteligentes sobre qu
fragmentos de un proceso se necesitarn en un futuro
cercano.
El principio de cercana sugiere que los esquemas de
memoria virtual pueden funcionar eficazmente.
Paginacin
Cada proceso tiene su propia tabla de pgina.
Cada entrada de la tabla de pginas contiene el nmero de
marco de la pgina correspondiente en la memoria
principal.
Se necesita un bit para indicar si la pgina correspondiente
est presente en la memoria principal o no lo est.
Tablas de pginas
La tabla de pginas completa puede ocupar una cantidad
enorme de memoria principal.
Para solucionar este problema, las tablas de pginas se
almacenan en la memoria virtual.
Cuando un proceso se est ejecutando, al menos una parte
de su tabla de pginas se encuentra en la memoria
principal.
Funcionamiento de la paginacin
con buffer de traduccin
adelantada (TLB)
Uso de un Buffer
de Traduccin
Adelantada.
Tamao de pgina
Cuanto menor sea el tamao de pgina, menor ser la cantidad
de fragmentacin interna.
Cuanto menor sea la pgina, mayor ser el nmero de pginas
que se necesitan por proceso.
Un nmero mayor de pginas por proceso significa que las tablas
de pginas sern mayores.
Esto puede significar que una gran parte de las tablas de pginas
de los procesos activos deben estar en la memoria virtual.
La memoria secundaria est diseada para transferir eficazmente
los bloques de datos de mayor tamao, de manera que es
propicia para tamaos de pgina mayores.
Tamao de pgina
Si el tamao de pgina es muy pequeo, estarn
disponibles en la memoria principal un gran nmero de
pginas para cada proceso.
Despus de un tiempo, todas las pginas de la memoria
contendrn parte de las referencias ms recientes del
proceso. La tasa de fallos de pgina ser menor.
Cuando se incrementa el tamao de la pgina, cada
pgina individual contendrn posiciones cada vez ms
distantes de cualquier referencia reciente. La tasa de
omportamiento tpico
e la paginacin en un programa.
Tamao de pgina
Mltiples tamaos de pgina proporcionan la flexibilidad
necesaria para usar una TLB eficazmente.
Las pginas grandes se pueden utilizar para traducir
instrucciones de programa.
Las pginas de pequeo tamao se pueden emplear para las
pilas de los hilos.
La mayora de los sistemas operativos favorecen el uso de un
solo tipo de pgina.
Segmentacin
Los segmentos pueden ser de distintos tamaos,
incluso de forma dinmica.
Simplifica la
crecientes.
gestin
de
Permite modificar y
independientemente.
estructuras
recopilar
los
de
programas
datos
Tablas de segmentos
Segmento correspondiente de la memoria principal.
Cada entrada de la tabla de segmentos contiene la
longitud del segmento.
Se necesita un bit para indicar si el segmento
correspondiente est presente en la memoria principal.
Otro bit de control necesario es un bit de modificacin
que indique si el contenido del segmento
correspondiente ha sido modificado desde que se carg
por ltima vez en la memoria principal.
Paginacin y segmentacin
combinadas
La paginacin es transparente al programador.
La paginacin elimina la fragmentacin externa.
La segmentacin es visible para el programador.
La segmentacin permite gestionar estructuras de datos
que pueden crecer, la modularidad y el soporte de la
comparticin y la proteccin.
Cada segmento se divide en varias pginas de tamao fijo.
Paginacin y segmentacin
combinadas
ormatos tpicos de gestin de memoria.
Relaciones de proteccin
entre segmentos.
Direcci Memoria
n
principal
Polticas de lectura
Poltica de lectura:
Est relacionada con la decisin de cundo se debe cargar una
pgina en la memoria principal.
Con la paginacin por demanda, se trae una pgina a la memoria
principal slo cuando se hace referencia a una posicin en dicha
pgina:
Cuando un proceso se ejecute por primera vez, se producirn muchos fallos
de pgina.
Polticas de reemplazo
Poltica de ubicacin:
Qu pgina se va a reemplazar.
La pgina que se va a reemplazar tiene que ser la que tenga una
menor posibilidad de ser referenciada en un futuro cercano.
La mayora de las polticas intentan predecir el comportamiento
futuro en funcin del comportamiento pasado.
Polticas de reemplazo
Bloqueo de marcos:
Cuando un marco est bloqueado, la pgina cargada en ese
marco no puede ser reemplazada.
La mayora del ncleo del sistema operativo est en marcos
bloqueados.
Estructuras de control.
Buffers de E/S.
El bloqueo se consigue asociando un bit de bloqueo a cada
marco.
Ejemplo de funcionamiento
de la poltica del reloj.
Ejemplo de funcionamiento
de la poltica del reloj.
Asignacin variable:
Permite que el nmero de marcos asignados a un proceso cambie
a lo largo de su vida.
Polticas de vaciado
Vaciado por demanda:
Una pgina se escribir en la memoria secundaria slo cuando
haya sido elegida para reemplazarse.
Vaciado previo:
Escribe las pginas modificadas por lotes.
Polticas de vaciado
La mejor solucin es incorporar almacenamiento intermedio
de pginas:
Las pginas reemplazadas pueden situarse en dos listas:
Modificadas y no modificadas.
Control de carga
Determina el nmero de procesos que pueden estar en la
memoria principal.
Cuando hay pocos procesos residentes en la memoria,
habr muchas ocasiones en las que todos los procesos
estn bloqueados y se gastar mucho tiempo en el
intercambio.
Si hay demasiados procesos residentes, el resultado ser la
hiperpaginacin.
Suspensin de procesos
Procesos con la prioridad ms baja.
Procesos con fallos de pgina:
Este proceso no tiene su conjunto de trabajo en la memoria
principal, por lo que quedar bloqueado de todas formas.
Suspensin de procesos
Proceso con el conjunto residente ms pequeo:
Este es el proceso que necesita el menor esfuerzo futuro para
volver a cargar el conjunto residente.
El proceso mayor:
Esta alternativa obtiene la mayor cantidad de marcos libres.
Tabla de pginas.
Descriptor de bloques de disco.
Tabla de marcos de pgina.
Tabla de uso de intercambios.
Estructuras de datos
Formatos de gestin
de memoria en UNIX SVR4.
Estructuras de datos
Formatos de gestin
de memoria en UNIX SVR4.
Memoria Virtual
Configuracin Memoria Virtual en Windows