33
“AÑO DE LA PROMOCIÓN DE LA INDUSTRIA RESPONSABLE Y DEL COMPROMISO CLIMÁTICO” UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE INGENIERÍA INDUSTRIAL ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA MONOGRAFÍA Sistema de Memoria Virtual CURSO: MICROCOMPUTADORAS II DOCENTE: ING. LUIS SAAVEDRA YARLEQUÉ PRESENTADO POR: Lozada Madrid, Bismarck Nole Machaca, Carlos Augusto Palacios Fiestas, Celia Villegas Farfán, Leonardo

Trabajo Final - Sistema de Memoria Virtual

Embed Size (px)

DESCRIPTION

Microcomputadoras II

Citation preview

Page 1: Trabajo Final - Sistema de Memoria Virtual

“AÑO DE LA PROMOCIÓN DE LA INDUSTRIA RESPONSABLE Y DEL COMPROMISO CLIMÁTICO”

UNIVERSIDAD NACIONAL DE PIURAFACULTAD DE INGENIERÍA INDUSTRIAL

ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA

MONOGRAFÍA

Sistema de Memoria Virtual

CURSO:

MICROCOMPUTADORAS II

DOCENTE:

ING. LUIS SAAVEDRA YARLEQUÉ

PRESENTADO POR:Lozada Madrid, BismarckNole Machaca, Carlos AugustoPalacios Fiestas, CeliaVillegas Farfán, Leonardo

Piura, 24 Julio del 2014.

Page 2: Trabajo Final - Sistema de Memoria Virtual

INDICE.............................................................................................................................................

DEDICACTORIA

AGRADECIMIENTOS

CAPÍTULO I:....................................................................................................................2

GENERALIDADES..........................................................................................................2

1.1 FORMULACIÓN DE OBJETIVOS.............................................................................2

1.1.1 OBJETIVO GENERAL........................................................................................2

1.1.2 OBJETIVO ESPECÍFICOS..................................................................................2

CAPÍTULO II:...................................................................................................................3

MARCO TEÓRICO..........................................................................................................3

2.1 ANTECEDENTES.......................................................................................................3

2.2 BASES TEÓRICAS.....................................................................................................5

2.2.1 SISTEMA DE MEMORIA VIRTUAL................................................................5

2.2.2 CARACTERÍSTICAS..........................................................................................5

2.2.3 VENTAJAS..............................................................................................................6

2.2.4 CLASIFICACIÓN....................................................................................................7

2.2.5 ALGORITMOS DE REEMPLAZO DE PÁGINAS.................................................9

2.2.6 GESTIÓN DE MEMORIA EN LOS SISTEMAS OPERATIVOS.........................14

CAPÍTULO III:...............................................................................................................15

CONCLUSIONES Y RECOMENDACIONES..............................................................15

CONCLUSIONES.................................................................................................................15

RECOMENDACIONES........................................................................................................15

BIBLIOGRAFÍA.............................................................................................................16

ANEXOS.........................................................................................................................17

FIG. 2.1.1 DIAGRAMA QUE MUESTRA UNA MEMORIA VIRTUAL MÁS GRANDE QUE LA MEMORIA FÍSICA..............................................................................17

FIG. 2.2.2.1 MEMORIA COMPARTIDA DISTRIBUIDA...................................................17

FIG. 2.2.2.2 ORGANIZACIÓN LÓGICA......................................................................18

FIG. 2.2.2.3 ORGANIZACIÓN FÍSICA........................................................................18

FIG. 2.2.4.1 MEMORIA VIRTUAL PAGINADA.........................................................18

FIG. 2.2.4.2 MEMORIA VIRTUAL SEGMENTADA......................................................19

FIG. 2.2.4.3 MEMORIA VIRTUAL SEGMENTADA/PAGINADA.............................19

Page 3: Trabajo Final - Sistema de Memoria Virtual

DEDICATORIA

Dedicamos este trabajo aquellas personas que nos enseñaron

que la mejor libertad del ser humano está en la

superación personal e intelectual,

estas personas son nuestros padres y maestros,

que con la ayuda e iluminación de Dios,

nos dieron su apoyo a diario para cumplir con éxito

y responsabilidad el presente trabajo de investigación.

Page 4: Trabajo Final - Sistema de Memoria Virtual

AGRADECIMIENTOS

En primer agradecer a dios por habernos permitido llegar hasta este punto y ofrecernos

salud, ser el manantial de vida y brindarnos lo necesario para seguir adelante día a día 

para lograr nuestros objetivos, además de su infinita bondad y amor. 

A nuestro profesor por su gran apoyo y motivación ofrecido en este trabajo, por

habernos transmitidos los conocimientos obtenidos y habernos llevado pasó a paso en el

aprendizaje.

Muchas Gracias. 

Page 5: Trabajo Final - Sistema de Memoria Virtual

INTRODUCCION

La memoria es uno de los principales recursos de la computadora, la cual debe de

administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de

cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones

actuales tienen también altos requerimientos de memoria, lo que sigue

generando escasez de memoria en los sistemas multitarea y/o multiusuario.

La parte del sistema operativo que administra la memoria se llama administrador de

memoria y su labor consiste en llevar un registro de las partes de memoria que se estén

utilizando y aquellas que no, con el fin de asignar espacio en memoria a

los procesos cuando éstos la necesiten y liberándola cuando terminen, así como

administrar el intercambio entre la memoria principal y el disco en los casos en los que

la memoria principal no le pueda dar capacidad a todos los procesos que tienen

necesidad de ella.

Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que

desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución

y los que no.

El propósito principal de una computadora es el de ejecutar programas, estos

programas, junto con la información que accedan deben de estar en la memoria

principal (al menos parcialmente) durante la ejecución.

Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener

varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones

de administración tanto del procesador como de la memoria. La selección de uno de

ellos depende principalmente del diseño del hardware para el sistema. A continuación se

observarán los puntos correspondientes a la administración de la memoria.

1

Page 6: Trabajo Final - Sistema de Memoria Virtual

CAPÍTULO I:

GENERALIDADES

1.1 FORMULACIÓN DE OBJETIVOS

1.1.1 OBJETIVO GENERAL Recopilar información sobre los sistemas de memoria virtual en

general sin atender el tipo de sistema operativo con el que se trabaje.

1.1.2 OBJETIVO ESPECÍFICOS Identificar el sistema virtual de memoria que trabaja de forma más

eficiente mediante la medición del tiempo de latencia para cargar un archivo.

Recopilar información sobre la clasificación de los sistemas de memoria virtual y describir cómo es el funcionamiento de cada uno de ellos en la gestión de la misma.

Describir la relación y la forma en la que interactúan la memoria virtual y la memoria física.

Identificar las ventajas y las posibles desventajas con el uso de sistemas de memoria virtual.

2

Page 7: Trabajo Final - Sistema de Memoria Virtual

CAPÍTULO II:

MARCO TEÓRICO

2.1 ANTECEDENTESLos algoritmos de gestión de memoria son necesarios a causa de un requisito

básico: las instrucciones que se están ejecutando deben estar en la memoria física.

La primera estrategia para satisfacer este requisito es colocar todo el espacio de

direcciones lógico en la memoria física. Las superposiciones y la carga dinámica

pueden ayudarnos a hacer menos limitante esta restricción, pero generalmente

requieren precauciones especiales y un esfuerzo adicional por parte del

programador. Esta restricción parece necesaria y razonable, pero también es

frustrante, ya que limita el tamaño de los programas al tamaño de la memoria

física. (Silberschatz & Baer, 1999)

De hecho, si examinamos programas reales, veremos que en muchos casos no

se necesita todo el programa. Por ejemplo:

Los programas a menudo tienen código que maneja condiciones de error poco

comunes. Puesto que tales errores casi nunca ocurren en la práctica, el código

casi nunca se ejecuta.

Es común que se asigne a los arreglos, listas y tablas más memoria de la que

realmente necesitan. Se podría declarar un arreglo de 100 por 100 elementos,

aunque casi nunca sea mayor que 10 por 10 elementos. La tabla de símbolos de

un ensamblador podría tener espacio para 3000 símbolos, a pesar de que, en

promedio, los programas tienen menos de 200 símbolos.

Es posible que ciertas opciones y funciones de un programa se usen muy rara

vez. Por ejemplo, hace años que no se usan las rutinas de los computadores del

gobierno de Estado Unidos que balancean el presupuesto.

Inclusos en los casos los que se necesita todo el programa, cabe la posibilidad

de que no se necesite todo al tiempo (como es el caso de las superposiciones, por

ejemplo).

3

Page 8: Trabajo Final - Sistema de Memoria Virtual

La capacidad para ejecutar un programa que no está todo en la memoria tendría

muchas ventajas:

Los programas ya no estarían limitados por la cantidad de memoria física con

que se cuenta. Los usuarios podrían escribir programas para un espacio de

direcciones virtual extremadamente grande, lo que simplificaría la tarea de

programación.

Puesto que cada programa de usuarios ocuparía menos memoria física, se

podrían ejecutar más programas al mismo tiempo. Esto aumentaría el

aprovechamiento de la CPU y la productividad sin aumentar el tiempo de

respuesta ni el de retorno.

Se requeriría menos E/S para cargar o intercambiar cada programa de usuario

por lo que su ejecución sería más rápida.

Queda claro que la ejecución de un programa que sólo está parcialmente en la

memoria beneficiaría tanto al sistema como al usuario.

La memoria virtual es la separación entre la memoria lógica de los usuarios y

la memoria física. Esta separación permite ofrecer a los programadores una

memoria virtual extremadamente grande aunque sólo esté disponible una memoria

física pequeña (Fig. 2.1.1). La memoria virtual facilita mucho la tarea de

programación porque el programador ya no necesita preocuparse por la cantidad

de memoria física de que dispone, ni pensar en qué parte del código puede colocar

en superposiciones; en vez de ello, puede concentrarse en el problema que va a

programar. En los sistemas que manejan memoria virtual, las superposiciones

prácticamente han desaparecido.

La memoria virtual generalmente se implementa con paginación por demanda,

pero también puede implementarse en un sistema con segmentación. Varios

sistemas ofrecen un esquema de segmentación paginada, en el que los segmentos

se dividen en páginas. Así, lo que el usuario ve son segmentos, pero el sistema

operativo puede implementar esta visión con paginación por demanda. También

se puede usar segmentación por demanda para ofrecer memoria virtual. Los

sistemas de computación Burroughs han utilizado segmentación por demanda, y

4

Page 9: Trabajo Final - Sistema de Memoria Virtual

lo mismo hace el sistema operativo IBM OS/2. Los algoritmos de reemplazo de

segmentos son más complejos que los de reemplazo de páginas porque los

segmentos son de tamaño variable.

2.2 BASES TEÓRICAS

2.2.1 SISTEMA DE MEMORIA VIRTUALLos sistemas de memoria virtual separan las direcciones de memoria

utilizadas por un proceso de las direcciones físicas reales, permitiendo la

separación de procesos e incrementando la cantidad efectiva de memoria

de acceso aleatorio utilizando la paginación. La calidad de la gestión de la

memoria es crucial para las prestaciones del sistema.

([email protected], 2002)

2.2.2 CARACTERÍSTICASLos sistemas de gestión de memoria de sistemas operativos multitarea

normalmente tratan con las siguientes tareas:

REASIGNACIÓN.- En los sistemas con memoria virtual, los

programas en la memoria debe ser capaz de residir en diferentes partes

de la memoria en diferentes momentos. Esto se debe a que cuando el

programa se cambió de nuevo en la memoria después de ser

intercambiado por un tiempo que no siempre se puede colocar en el

mismo lugar. La unidad de gestión de memoria virtual también debe

hacer frente a la concurrencia. Gestión de memoria en el sistema

operativo por lo tanto debe ser capaz de trasladar los programas en la

memoria y manejar referencias de la memoria y las direcciones en el

código del programa para que siempre apuntan a la ubicación correcta

en la memoria.

PROTECCIÓN.- Los procesos no deberían poder referenciar la

memoria de otros procesos sin permiso, para evitarlo existe la

protección de memoria, que evita que código malicioso o erróneo de un

programa interfiera con la operación de otros programas en ejecución.

5

Page 10: Trabajo Final - Sistema de Memoria Virtual

MEMORIA COMPARTIDA.- Aunque la memoria utilizada por

diferentes procesos suele estar protegida, algunos procesos puede que sí

tengan que compartir información y, para ello, han de acceder la misma

sección de memoria. La memoria compartida es una de las técnicas más

rápidas para posibilitar la comunicación entre procesos. (Fig. 2.2.2.1)

ORGANIZACIÓN LÓGICA.- Los programas a menudo están

organizados en módulos, algunos de los cuales pueden ser compartidos

por diferentes programas, algunos son de sólo-lectura y otros contienen

datos que se pueden modificar. La gestión de memoria es responsable

de manejar esta organización lógica, que se contrapone al espacio de

direcciones físicas lineales. Una forma de lograrlo es mediante la

segmentación de memoria. (Fig. 2.2.2.2)

ORGANIZACIÓN FÍSICA.- La memoria suele dividirse en un

almacenamiento primario de alta velocidad y uno secundario de menor

velocidad. La gestión de memoria del sistema operativo se ocupa de

trasladar la información entre estos dos niveles de memoria. (Fig.

2.2.2.3)

2.2.3 VENTAJAS Reduce la latencia en la ejecución de los programas, al no tener éstos

que cargarse completamente para comenzar a ejecutarse.

Permite gestionar más eficientemente la memoria física. Cualquier

espacio libre, incluso una única página, puede ser aprovechado para

cargar un nuevo programa y comenzar a ejecutarlo. Por otra parte, si

una página de un programa no se referencia durante la ejecución, no

habrá que cargarla.

Al aumentar el grado de multiprogramación a costa de reducir el

número de páginas cargadas de cada programa, permite incrementar la

eficiencia de la CPU en sistemas multiprogramados.

Ahora la independencia de los programas con respecto a la máquina es

completa. Además del direccionamiento virtual que aporta la

6

Page 11: Trabajo Final - Sistema de Memoria Virtual

paginación, la cantidad de memoria física disponible para ejecutar el

programa.

Eliminar los inconvenientes de una memoria pequeña y limitada

Los programas de usuario pueden exceder el tamaño de la memoria

principal. Nos permite utilizar un espacio lógico de direcciones superior

al realmente disponible en la memoria principal.

Compartición eficiente de la memoria entre múltiples procesos

garantizando protección.

La memoria principal necesita solamente las partes activas de los

programas. Esto nos permite compartir eficientemente el procesador así

como la memoria principal.

Proporciona los mecanismos de protección necesarios.

(Madrid, 2012)

2.2.4 CLASIFICACIÓN

MEMORIA VIRTUAL PAGINADA

El mecanismo de traducción de DV a DF que acabamos de describir

corresponde a un sistema de memoria virtual paginada. En él el espacio

virtual (y físico) se divide en páginas de igual tamaño. Veremos en el

apartado siguiente otra alternativa en la que la MV se divide en

segmentos de longitud variable, dando lugar a la memoria virtual

segmentada. Las entradas de la TP de una MV paginada, además del

NPF contienen unos bits de control, de los que hemos mencionado el bit

de presencia P.

Como se muestra en la (Fig. 2.2.4.1), existen otros bits que controlan

los derechos de acceso a la página: lectura (R), escritura (W) y

ejecución (X), este último sólo para páginas de código. También suele

existir un bit que indica si la página ha sido modificada (datos) y

necesita escribirse en disco cuando sea sustituida. Los demás bits de

control dependen de cada procesador.

P = bit de presencia (de la página en memoria física)

RWX = derechos de acceso de lectura, escritura y ejecución

Entrada de la tabla de páginas con correspondencia directa

7

Page 12: Trabajo Final - Sistema de Memoria Virtual

P R W X Dirección de Página Física

Cada programa (proceso) puede ocupar una gran cantidad de

memoria virtual. Por ejemplo, en la arquitectura VAX, cada proceso

puede tener hasta 231 = 2 GBytes de memoria virtual.

Utilizando páginas de 29 = 512 bytes, eso significa que se necesitan

tablas de páginas de 222 entradas por proceso. La cantidad de memoria

dedicada sólo a tablas de páginas podría ser inaceptablemente alta.

MEMORIA VIRTUAL SEGMENTADAMientras que la paginación es transparente para el programador, y le

proporciona un espacio mayor de direcciones, la segmentación es

normalmente visible para el programador, y proporciona una forma

lógica de organizar los programas y los datos, y asociarle los privilegios

y atributos de protección.

La segmentación permite que el programador vea la memoria

constituida por múltiples espacios de direcciones o segmentos. Los

segmentos tienen un tamaño variable, dinámico.

Usualmente, el programador o el sistema operativo asignarán

programas y datos a segmentos distintos. Puede haber segmentos de

programa distintos para varios tipos de programas, y también distintos

segmentos de datos. Se pueden asignar a cada segmento derecho de

acceso y uso. Las direcciones virtuales estarán constituidas en este caso

por un número de segmento (NS) y un desplazamiento dentro del

segmento (DP). El proceso de traducción de dirección virtual a física es

análogo al de la memoria virtual paginada, con la diferencia que ahora

tenemos una tabla de segmentos (TS) cuyas entradas (denominadas

también descriptores de segmento) contienen, además de los bits de

control y la dirección real del segmento, la longitud L del mismo, ya

que los segmentos tienen longitud variable. (Fig. 2.2.4.2)

8

Page 13: Trabajo Final - Sistema de Memoria Virtual

MEMORIA VIRTUAL SEGMENTADA/PAGINADAComo vimos en el apartado anterior, la segmentación presenta una

serie de propiedades ventajosas para el programador, sin embargo, la

paginación proporciona una forma más eficiente de gestionar el espacio

de memoria. Para combinar las ventajas de ambas, algunos sistemas

permiten una combinación de ambas, es decir, un sistema virtual con

segmentos paginados. El mecanismo de traducción de DVs a DFs no es

más que la composición del mecanismo de la memoria segmentada y el

de la paginada, tal como se muestra en la (Fig. 2.2.4.3).

2.2.5 ALGORITMOS DE REEMPLAZO DE PÁGINASHay muchos algoritmos de reemplazo de páginas distintos. Es probable

que cada sistema operativo tenga su propio esquema de reemplazo único.

¿Cómo escogemos un algoritmo de reemplazo específico? En general, lo

que buscamos es el algoritmo con la frecuencia de fallos de página más

baja.

Evaluamos un algoritmo ejecutándolo con una serie específica de

referencias a la memoria y calculando el número de fallos de página. La

serie de referencias a la memoria se denomina serie de referencias.

Podemos generar series de referencias artificialmente (con un generador de

números aleatorios, por ejemplo) o rastreando la ejecución en un sistema

dado y registrando la dirección de cada referencia a la memoria. La

segunda opción produce gran cantidad de datos (del orden de un millón de

direcciones por segundo). Para reducir el número de datos, observamos

dos cosas.

En primer lugar, para un tamaño de página dado (que el hardware o el

sistema generalmente fija), sólo necesitamos considerar el número de

página, no toda la dirección. En segundo lugar, si tenemos una referencia a

una página p, cualesquier referencias a la página p que le sigan

inmediatamente nunca causarán un fallo de página. La página p estará en

la memoria después de la primera referencia; las referencias

inmediatamente subsecuentes no darán lugar a fallos.

9

Page 14: Trabajo Final - Sistema de Memoria Virtual

Por ejemplo, si rastreamos un proceso específico, podríamos registrar la

secuencia de direcciones siguiente:

0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103,

0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105,

Que, con 100 bytes por página, se reduce a la serie de referencias

siguiente:

1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1

Para determinar el número de fallos de página con una serie de

referencias y algoritmo de reemplazo de páginas específicos, también

necesitamos saber el número de marcos de páginas de que se dispone.

Obviamente, a medida que aumenta el número de marcos disponibles, el

número de fallos de página disminuye. Por ejemplo, para la serie de

referencias anterior, si tuviéramos tres o más marcos sólo tendríamos tres

fallos de página, uno para la primera referencia a cada página. Por otro

lado, si sólo contamos con un marco, tendríamos un reemplazo con cada

referencia, para un total de 11 fallos. A medida que aumenta el número de

marcos, el número de fallos de página se reduce a un nivel mínimo. Desde

luego, la adición de memoria física incrementa el número de marcos.

(Silberschatz & Baer, 1999)

ALGORITMO FIFO.- El algoritmo de reemplazo de páginas más

sencillo es el tipo primero en entrar, primero en salir (FIFO, first-in,

first-out). Un algoritmo de reemplazo FIFO asocia a cada página el

instante en que esa página se trajo a la memoria. Si es necesario

reemplazar una página, se escoge la más vieja. Cabe señalar que no es

estrictamente necesario registrar el instante en que se trae una página.

Podemos crear una cola FIFO que contenga todas las páginas que están

en la memoria, y reemplazar la página que esté a la cabeza de la cola.

Cuando traemos una página a la memoria, la insertamos al final de la

cola.

10

Page 15: Trabajo Final - Sistema de Memoria Virtual

ALGORITMO ÓPTIMO.- Un resultado del descubrimiento de la

anomalía de Belady fue la búsqueda de un algoritmo de reemplazo de

páginas óptimo. Un algoritmo óptimo tiene la frecuencia de fallos de

página más bajo de todos los algoritmos de reemplazo de páginas, y

nunca exhibe la anomalía de Belady. Existe un algoritmo de reemplazo

de páginas óptimo, que se ha denominado OPT o MIN, y es

sencillamente reemplazar la página que se usará durante más tiempo.

El empleo de este algoritmo de reemplazo de páginas garantiza la

frecuencia de fallos de página más baja para un número fijo de marcos.

ALGORITMO LRU.- Si el algoritmo no es factible, tal vez podría

lograrse una aproximación. La distinción clave entre los algoritmos

FIFO y OPT (aparte de mirar hacia atrás y hacia adelante en el tiempo)

es que el segundo usa el instante en que se usará un página. Si

utilizamos el pasado reciente como una aproximación del futuro

cercano, sustituiremos la página que no se ha usado durante más

tiempo. La estrategia de este algoritmo es el algoritmo de menos

reciente como una aproximación usada (LRU, least recently used).

ALGORITMOS DE APROXIMACIÓN A LRU.- Pocos

sistemas de computación ofrecen suficiente soporte de hardware para el

verdadero reemplazo de páginas LRU. Algunos sistemas no cuenta con

soporte de hardware, y esto obliga a usar otros algoritmos de reemplazo

de páginas (como el FIFO). Muchos sistemas proporcionan un poco de

ayuda, en forma de un bit de referencia. El hardware enciende (pone en

1) el bit de referencia de una página cada vez que se hace referencia a

ella (sea para leer o escribir cualquier byte de la página). Cada entrada

de la tabla de páginas tiene asociado un bit de referencia.

11

Page 16: Trabajo Final - Sistema de Memoria Virtual

o ALGORITMO CON BITS DE REFERENCIA

ADICIONALES.- Podemos obtener información de

ordenamiento adicional si registramos los bits de referencia a

intervalos adicionales. Podemos mantener un byte histórico de ocho

bits para cada página de una tabla que está en memoria. A intervalos

regulares (digamos cada 100 milisegundos), una interrupción del

temporizador transfiere el control al sistema operativo, el cual

introduce el bit de referencia de cada página en el bit de orden alto

de su byte histórico, desplazando los demás bits una posición hacia

la derecha u desechando el bit de orden bajo.

o ALGORITMO DE SEGUNDA OPORTUNIDAD.- El

algoritmo básico que una vez que se ha seleccionado una página se

examina su bit de referencia. Si el valor es cero, procedemos a

reemplazar la página, pero si es 1, damos a esa página una segunda

oportunidad y seleccionamos la siguiente página FIFO. Cuando se da

una página una segunda oportunidad, su bit de referencia se pone en

cero y su hora de llegada se restablece a la hora actual. Así, una

página a la que se le dio una segunda oportunidad no será

reemplazada hasta que todas las demás páginas se reemplacen (o

reciban una segunda oportunidad). Además, si una página se usa con

la suficiente frecuencia como para mantener encendido su bit de

referencia, nunca será reemplazada.

o ALGORITMO DE SEGUNDA OPORTUNIDAD

MEJORADO.- El algoritmo de segunda oportunidad que

acabamos de describir puede mejorarse si consideramos tanto el bit

de referencia como el bit de modificación como un par ordenado.

Con esto dos bits, tenemos las cuatro clases posibles siguientes:

1. (0,0) ni se usó recientemente ni se modificó; es la mejor página

que se puede reemplazar

12

Page 17: Trabajo Final - Sistema de Memoria Virtual

2. (0,1) no se usó recientemente pero sí se modificó; no es tan

buena, porque habrá que escribir en disco la página antes de

reemplazarla

3. (1,0) se usó recientemente pero no se ha modificado;

probablemente se usará otra vez pronto

4. (1,1) se usó recientemente y se modificó; probablemente se usará

otra vez, y será necesario escribirla en disco antes de reemplazarla

ALGORITMOS DE CONTEO.- Hay muchos otros algoritmos

que podemos usar para reemplazar páginas. Por ejemplo, podríamos

mantener un contador del número de referencias que se han hecho a

cada página, y desarrollar los dos esquemas siguientes:

o ALGORITMO LFU.- El algoritmo de reemplazo de páginas

menos frecuentemente usadas (LFU, least frequently used) exige

reemplazar la página que se ha usado activamente debe tener una

cuenta de referencias grande. Este algoritmo no es eficiente en el

caso de páginas que se usaron mucho durante la fase inicial del

proceso y luego permanecerán en memoria aunque ya no se

necesiten. Una solución sería desplazar las cuentas un bit a la

derecha a intervalos regulares para formar una cuenta de uso

promedio con decaimiento exponencial.

o ALGORITMO MFU.- El algoritmo de reemplazo de páginas

más frecuentemente usados (MFU, most frequently used) se basa en

el argumento de que la página con la cuenta más baja probablemente

se acaba de traer a la memoria y todavía no se usa.

ALGORITMO DE COLOCACIÓN DE PÁGINAS EN

BUFFERS.- Es común utilizar otros procedimientos además de un

algoritmo de reemplazo de páginas específico. Por ejemplo, muchos

sistemas mantienen una reserva de marcos libres. Cuando ocurre un

fallo de página; se escoge un marco víctima igual que antes. Sin

13

Page 18: Trabajo Final - Sistema de Memoria Virtual

embargo, la página deseada se coloca en un marco libre de reserva antes

de escribir la víctima en el disco. Este procedimiento permite al proceso

reiniciarse lo más pronto posible, sin esperar a que la página víctima se

escriba en el disco. Cuando la víctima termina de escribirse en el disco,

su marco se añade a la reserva de marcos libres.

2.2.6 GESTIÓN DE MEMORIA EN LOS SISTEMAS OPERATIVOS DOS

Además de la gestión estándar de memoria, la barrera de los 640 KB de MS-DOS y los sistemas compatibles dieron lugar al desarrollo de programas conocidos como gestores de memoria cuando las memorias principales de los PC comenzaron a ser mayores que 640 KB a finales de los años 1980 (véase memoria convencional). Estos desplazan porciones del sistema operativo fuera de su localización tradicional para incrementar la cantidad de memoria convencional o semiconvencional disponible para otras aplicaciones. El EMM386 es un ejemplo, el cual fue parte de la instalación estándar de las últimas versiones de DOS, así como el QEMM. Estos permitieron el uso de memoria más allá de la barrera de los 640 KB, donde la memoria solía estar reservada a la memoria de acceso aleatorio, y memorias superiores.

UNIX Y SOLARIS

Las primeras versiones de Unix sólo utilizaban particiones variables sin ningún esquema de memoria virtual., pero en las implementaciones actuales, incluidas SVR4 y Solaris 2.x, utilizan memoria virtual paginada.

En SVR4 y Solaris, tienen dos esquemas de memoria separados. El sistema de paginación ofrece una memoria virtual que asigna marcos de página en la memoria principal a los procesos y también asigna marcos de página a las memorias intermedias de los bloques de disco.

Un esquema de memoria virtual paginado se adapta peor a la gestión de la asignación de memoria para el núcleo, por lo que se utiliza un asignador de memoria del núcleo.

14

Page 19: Trabajo Final - Sistema de Memoria Virtual

CAPÍTULO III:

CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

La memoria virtual es la separación entre la memoria lógica de los usuarios y la memoria física.

La memoria virtual es aquella que le ofrece a las aplicaciones la ilusión de que están solas en el sistema y que pueden usar el espacio de direcciones completo.

Entre las desventajas que se han identificado respecto a la memoria virtual están:o Gasto temporal relativamente elevado de la gestión de memoria (traducción

de direcciones, reemplazos de bloques reservados, etc.)o Gasto hardware para conseguir una gestión de memoria rápida y eficienteo Gasto de procesamiento en la resolución de excepciones (en algunos casos el

código casi nunca se ejecuta).

La paginación es una técnica de gestión de memoria en la cual el espacio de memoria se divide en secciones físicas de igual tamaño llamadas marcos de página, las cuales sirven como unidad de almacenamiento de información.

La segmentación es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos.

RECOMENDACIONES

Si se desea conocer de manera más profunda el tema, se recomienda leer temas sobre sistemas operativos así como los diversos algoritmos básicos de política de reemplazo (paginación y segmentación).

15

Page 20: Trabajo Final - Sistema de Memoria Virtual

BIBLIOGRAFÍA

[email protected]. (14 de 07 de 2002). Facultad de Ciencias Exactas y

Naturales. Recuperado el 21 de 07 de 2014, de

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/

MEMVIR02.htm

Madrid, U. C. (Noviembre de 2012). Memoria Virtual. Madrir, España: Facultad de

Informática.

Silberschatz, A., & Baer, P. (1999). Sistemas Operativos. Mexico: Addison Wesley

Longman de México S.A. de C.V.

Wikipedia. (12 de 03 de 2013). Recuperado el 21 de 07 de 2014, de

http://es.wikipedia.org/wiki/Gesti%C3%B3n_de_memoria

16

Page 21: Trabajo Final - Sistema de Memoria Virtual

ANEXOS

FIG. 2.1.1 DIAGRAMA QUE MUESTRA UNA MEMORIA

VIRTUAL MÁS GRANDE QUE LA MEMORIA FÍSICA.

FIG. 2.2.2.1 MEMORIA COMPARTIDA DISTRIBUIDA

17

Page 22: Trabajo Final - Sistema de Memoria Virtual

FIG. 2.2.2.2 ORGANIZACIÓN LÓGICA

FIG. 2.2.2.3 ORGANIZACIÓN FÍSICA

FIG. 2.2.4.1 MEMORIA VIRTUAL PAGINADA

18

Page 23: Trabajo Final - Sistema de Memoria Virtual

FIG. 2.2.4.2MEMORIA VIRTUAL SEGMENTADA

FIG. 2.2.4.3 MEMORIA VIRTUAL SEGMENTADA/PAGINADA

19

Page 24: Trabajo Final - Sistema de Memoria Virtual

20