Logo Studenta

MEMORIA VIRTUAL-1

¡Este material tiene más páginas!

Vista previa del material en texto

“Año de la unidad, la paz y el desarrollo”
FACULTAD DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Sistemas Operativos
Memoria Virtual
Docente: 
		ING. Tonny Eduardo bardales Lozano
 
Alumnos: 	
		Pezo Bartra Tedy 
	Pezo Murrieta Orison
Memoria Virtual
Una ilusión de que un sistema de cómputo
es
Más memoria de la que realmente tiene
posee
permite
Que un proceso sea independiente del tamaño de la memoria real y que un gran número de procesos comparta un sistema de cómputo sin restringirse mutuamente.
utiliza
	El modelo de asignación de memoria no contigua y contiene componentes tanto del hardware como del software.
A través de la parte de la jerarquía de la memoria que consta de una memoria y un disco
 se implementa 
Memoria Virtual
1. Fundamentos 
Una memoria virtual es lo que indica su nombre: una ilusión de que en el sistema de cómputo hay una memoria más grande que la real, es decir, que la RAM.
Métodos fundamentales para implementar la memoria virtual
Paginamiento
Cada componente de un proceso se denomina página
Segmentación
 Entidades lógicas importantes en un proceso con el objetivo de implementar la memoria virtual
Memoria Virtual
1. 1. Carga por demanda de las componentes de un proceso 
Con el fin de dar la ilusión de una gran memoria. 
Ésta contiene su primera instrucción. Las demás se cargan según sea necesario.
De esta forma, la memoria asignada a un proceso puede ser menor que el tamaño de éste.
Cuando va a iniciarse la ejecución de un proceso, el manejador de la memoria virtual carga en la memoria sólo una de sus componentes. 
Memoria Virtual
1. 2. Un ejemplo de operación de la memoria virtual 
En la figura se muestra la ejecución del proceso A en una memoria virtual. El proceso consta de cuatro componentes, 1-4. Por conveniencia, éstas se denominan A-1, A-2, A-3 y A-4.
2. Paginamiento por demanda
2. 1. Visión general del Paginamiento
Se entiende que un proceso consta de páginas, numeradas desde 0 hacia delante. El tamaño de cada página es s bytes. Se considera que la memoria del sistema de cómputo consta de marcos de página, donde un marco de página es un área de la memoria del mismo tamaño de una página. 
2. 2. Preliminares del Paginamiento por demanda
En el Paginamiento por demanda, una página se carga en la memoria cuando se requiere, es decir, cuando una dirección lógica generada por un proceso apunta a una página que no se encuentra en la memoria
Tres conceptos son importantes para comprender la operación del Paginamiento por demanda.
Fallos de página
Mientras realiza la traducción de la dirección para una dirección lógica (pi, bi), la MMU comprueba el bit válido de la entrada de la tabla de página de pi). Si indica que pi no está presente en la memoria, el manejador de la memoria virtual origina una interrupción denominada fallo de página o interrupción por omisión de página (missing page interrupt)
La acción de interrupción transfiere el control al manejador de interrupción, que invoca al manejador de la memoria virtual cuando encuentra que la interrupción es un fallo de página. El manejador de interrupción pasa el número de página que provocó la interrupción, es decir, pi, al manejador de la memoria virtual. El manejador de la memoria virtual carga la página pi en la memoria.
Operaciones de página adentro, página afuera y reemplazo de página
2.2.1. Reemplazo de página
Una página se carga en la memoria cuando ocurre un fallo de página. Esto se denomina operación de página adentro.
La operación se denomina página afuera cuando la página debe copiarse de la memoria al bloque de disco que tiene asignado en el espacio de intercambio del proceso 
El hecho de cargar una nueva página en un marco de página que previamente contenía otra página se denomina operación de reemplazo de página.
El reemplazo de páginas se vuelve necesario cuando ocurre un fallo de página y en la memoria no existen marcos de página libres. 
El principio de localidad de referencia proporciona pistas invaluables para identificar estas páginas. 
Una dirección lógica generada mientras se ejecuta una instrucción en un proceso tiene la probabilidad de encontrarse en la cercanía de las direcciones lógicas generadas durante las instrucciones previamente ejecutadas del proceso.
Planteada como: 
2.2.2. Tamaño optimo de página
El tamaño de página se define en la arquitectura de un sistema de cómputo. Determina el número de bits requeridos para representar el desplazamiento del byte en una página. 
1. El desperdicio de memoria debido a fragmentación interna.
2. El tamaño de la tabla de página para un proceso.
3. Las razones de fallo de página cuando se asigna una cantidad de memoria fija a un proceso.
El tamaño de página también determina
Los sistemas de cómputo tienden a usar tamaños de página más grandes debido a las siguientes razones:
1. Las entradas de la tabla de página tienden a ocupar más de un byte.
2. Los costos de hardware son más altos para tamaños de página más pequeños. Por ejemplo, el costo de traducción de la dirección aumenta si para representar un número de
página se usa un número más grande de bytes.
3. Los discos rápidos que se utilizan como dispositivos de Paginamiento tienden a operar de manera menos efi caz para tamaños más pequeños de bloques de disco.
2. 3. Hardware de Paginamiento 
2. 3. 1. Protección de la memoria
En un sistema multiprogramado con memoria virtual y Paginamiento, las excepciones a la protección pueden presentarse sólo en las dos formas siguientes:
Una dirección está fuera del espacio de direcciones lógicas de un proceso: Un proceso puede utilizar una dirección lógica (pi, bi) que exceda el tamaño de su espacio de direcciones lógicas. Debido a que el kernel considera que un proceso contiene un número entero de páginas, esto sólo puede ocurrir si pi es mayor que el número de la última página en el kernel.
Un proceso excede sus privilegios de acceso: Un proceso puede intentar acceder a una página de manera inválida, por ejemplo, puede tratar de modificar una página para la que sólo tiene un privilegio de lectura.
2. 3. 2. Soporte para el reemplazo de página
El manejador de la memoria virtual requiere dos tipos de información para tomar decisiones relacionadas con el reemplazo de página que minimicen los fallos de página y el número de operaciones de página adentro y página afuera:
1. Hora en que la página fue utilizada por última vez.
2. Si una página es sucia, es decir, si en cualquier byte de la página se ha realizado una operación de escritura. (Una página es limpia si no es sucia.)
El hardware de Paginamiento realiza las funciones adicionales enumeradas en la tabla 6.2. 
2. 4. El manejador de la memoria virtual
Utiliza dos estructuras de datos.
La tabla de página.
La lista de marcos libres
Funciones efectuadas por el manejador de la memoria virtual.
Operación del manejador de la memoria virtual.
2. 5. Organizaciones prácticas de la tabla de página
Tablas de página invertidas (IPT)
Se utiliza también para traducción de la dirección. Este método ahorra una cantidad de memoria considerable, ya que el tamaño de la IPT está regido sólo por el tamaño de la memoria física; es independiente del número y el tamaño de los procesos que se están ejecutando.
Tablas de página de dos niveles
 La memoria contiene dos tipos de páginas: las páginas de proceso y las páginas de la tabla de página, es decir,
páginas PT, o páginas de la tabla de página. Para la traducción de la memoria de una dirección
lógica (pi, bi) en un proceso P, la página pi, del proceso P debe estar en la memoria.
Tablas de página de multinivel
Las organizaciones de tabla de página de multinivel se utilizan cuando el tamaño de la tabla de página de nivel superior en una organización de tabla de páginade dos niveles es grande en sí mismo. 
en un sistema que utiliza direcciones lógicas de 32 bits, un tamaño de página de 1 K byte y entradas de tabla de página de 4 bytes, la página debe contener 16 000 páginas. El tamaño de la tabla de página de nivel superior debe ser 64 K bytes. A fi n de reducir aún más el compromiso de la memoria para tablas de página
3. Política de reemplazo de pagina 
Una operación de reemplazo de página es necesaria si un marco de página libre no existe cuando ocurre un fallo de página durante la ejecución de algún proceso
Una decisión de reemplazo de página posee dos aspectos importantes:
Si una página que pertenece al proceso proci debe reemplazarse o si debe incrementarse el número de marcos de página asignados al proceso proci. 
2. Qué criterios deben usarse para elegir la página a reemplazar
El reemplazo de página es una política de decisión basada en la información de referencia de página disponible en la tabla de página. Se implementa mediante el uso de las operaciones de página adentro y página afuera como mecanismos
A continuación se evalúan las tres siguientes políticas de reemplazo para ver cuán bien consideran la localidad actual de un proceso mientras toman decisiones de reemplazo de página:
Reemplazo óptimo de página
Reemplazo de página FIFO
Reemplazo de página LRU
Implica tomar decisiones de reemplazo de página de modo que el número total de fallos de página durante la ejecución de un proceso sea el mínimo posible, es decir, que ninguna otra decisión de reemplazo de página conduzca a un menor número de fallos de página.
En cada fallo de página, la política de reemplazo de página FIFO reemplaza la página que fue cargada en la memoria antes que cualquiera otra página del proceso.
U utiliza el principio de localidad de referencia
como base para sus decisiones de reemplazo. Su operación puede describirse como sigue: en
cada fallo de página, la página usada menos recientemente (LRU: least recently used) se reemplaza por una nueva página. La entrada de la tabla de página de una página registra el instante en
el que se hizo referencia por última vez a la página.
 Comparación de las políticas de reemplazo de página con alloc = 2.
3. 1. Políticas prácticas de reemplazo de página
Aproximaciones LRU
Aproximaciones FIFO
Variaciones del algoritmo de segunda oportunidad
Muchos sistemas de cómputo proporcionan un solo bit de referencia para recolectar información de referencia de página. Mientras toma una decisión de reemplazo de página, el manejador de la memoria virtual puede usar esta información para encontrar una página a la que no se haya hecho referencia durante algún tiempo. Esta página se reemplaza. Si el manejador de la memoria virtual encuentra que todas las páginas tienen sus bits de referencia 1, restablece los bits de todas las páginas y arbitrariamente elige una página para su reemplazo. 
En el reemplazo de página FIFO no es crucial el soporte del hardware de Paginamiento porque el manejador de la memoria virtual en sí puede mantener el ordenamiento FIFO de las páginas. Puede mantener una cola donde las páginas aparezcan en el orden en que fueron cargadas por última vez en la memoria física.
Puede utilizarse en cualquier escenario donde un manejador de la memoria virtual mantenga una lista de candidatos que se van a reemplazar. Un candidato a reemplazar es una página de la que puede prescindirse debido a que no se ha hecho referencia a ella durante mucho tiempo. 
4. Política de reemplazo de página 
A continuación se analizan tres métodos representativos para determinar la asignación de memoria para los procesos:
Asignación fija, reemplazo local.
Asignación variable, reemplazo global.
Asignación variable, reemplazo local.
En el reemplazo local, un fallo de página es atendido mediante el reemplazo de una página del mismo proceso, mientras en el reemplazo global la página a reemplazar puede pertenecer a cualquier proceso en el sistema. Cuando un reemplazo es local, el desempeño de un proceso independiente del comportamiento de otros procesos en el sistema. Esto no es así cuando el reemplazo es global
Modelo del conjunto de trabajo 
Ayuda al manejador de la memoria virtual a decidir cuántas y cuáles páginas de un proceso deben estar en la memoria para obtener un desempeño aceptable del proceso. De un manejador de la memoria virtual que usa el modelo del conjunto de trabajo se dice que utiliza un asignador de memoria de conjunto de trabajo.
5. PÁGINAS COMPARTIDAS
La compartición estática resulta de la unión estática realizada por un ligador o cargador antes de que inicie la ejecución de un programa
5. 1. Copia durante la escritura 
La característica copia durante la escritura se utiliza para conservar memoria cuando los datos en páginas compartidas pueden modificarse, aunque los valores modificados deben ser privativos de un proceso.
Su objetivo es proporcionar una visión de las cuestiones prácticas en implementaciones de memoria virtual, más que estudiar en detalle el manejador de la memoria virtual de cualquier versión Unix.
6. MEMORIA VIRTUAL UNIX
Espacio de direcciones lógicas y espacio de intercambio
La tabla de página de un proceso distingue tres tipos de páginas:
Residente 
Una página residente existe en la memoria; debe haber sido cargada por demanda en algún fallo de página.
No accedida 
Intercambiada
A una página no accedida no se ha accedido ni siquiera una vez durante la ejecución del proceso; por tanto, jamás ha sido cargada en la memoria. Puede cargarse cuando su uso en alguna instrucción conduce a un fallo de página.
Una página intercambiada existe en el espacio de intercambio. Hacer una referencia a ella producirá un fallo de página, por lo que se cargará de vuelta en la memoria desde su ubicación en el espacio de intercambio.
Copia durante la escritura
Uso eficaz de la tabla de página y del hardware de Paginamiento
El manejador de la memoria virtual Unix utiliza el principio de copia durante la escritura para conservar memoria y espacio de intercambio cuando un proceso crea un proceso hijo a través de la llamada fork. 
La copia durante la escritura se implementa como sigue: cuando un proceso es bifurcado, la cuenta de referencia de todas las páginas de datos en el espacio de direcciones del proceso padre se incrementa en 1.
La mayor parte de los sistemas de cómputo proporcionan un soporte inadecuado para una administración aceptable de la memoria virtual y se deja que el manejador de la memoria virtual haga impráctica y rentable la memoria virtual.
Daemon de pageout
Intercambio
Éste es activado en cualquier momento en que el número de marcos de página libres cae por debajo de 5 por ciento. El daemon intenta añadir páginas a la lista libre y se instala a sí mismo en estado dormido cuando la lista libre contiene más de 5 por ciento de marcos de página libres.
Un proceso se intercambia si ninguna de sus páginas necesarias puede mantenerse en la memoria y si en el sistema existen condiciones semejantes a la hiperpaginación
6. MEMORIA VIRTUAL LINUX
Linux utiliza un tamaño de página de 4 K bytes. En arquitecturas de 64 bits, usa una tabla de página de tres niveles el directorio global de la página, el directorio De en medio y la tabla de página. En consecuencia, una dirección lógica consta de cuatro partes, tres de las cuales son para los tres niveles y la cuarta es el número de byte dentro de una página.
El reemplazo de página en Linux se basa en el algoritmo del reloj. El kernel intenta mantener un número suficiente de marcos de página libres todo el tiempo, de modo que los fallos de página puedan ser atendidos rápidamente utilizando uno de los tres marcos de página.
Linux utiliza un asignador acompañante para asignar marcos de página a los procesos. Este método facilita llevar a cabo operaciones de E/S a través de buses DMA más antiguos en lugar de usar direcciones físicas, ya que tales operaciones de E/S requieren que la memoria sea asignada de manera contigua

Continuar navegando

Contenido elegido para ti

42 pag.
43 pag.
Tema 4 2 MEMORIA VIRTUAL

User badge image

Materiales Generales

12 pag.
Apunte de clase - TEMA 5

UNAM

User badge image

campuzanobeni3

69 pag.
SO Gestion de Memoria

UNAM

User badge image

campuzanobeni3

4 pag.