...............2....................................... MARCOS ALEXIS NEIRA REATEGUI.......... MELVIS P.............."Año de la consolidación del Mar de Grau" UNIVERSIDAD NACIONAL DE UCAYALI FACULTAD DE INGENIERIA DE SISTEMAS Y DE INGENIERIA CIVIL ESCUELA ACADEMICA DE INGENIERIA DE SISTEMAS INFORME: MEMORIA VIRTUAL DOCENTE: ING....... MEMORIA VIRTUAL.................. 4 1......... FALLO DE PÁGINA........ HENRI YURI CONDORCAUHUANA TEXEIRA........................ FRANCO PUCALLPA – PERU 2016 Contenido 1....................... 5 1..... CESAR AUGUSTO AGURTO CHERRE CURSO: SISTEMAS OPERATIVOS INTEGRANTES BAUTISTA USHIÑAHUA.1.......................... Paginación.................................... VASQUES...................... 6 2 ......

........... MÁS ALLÁ DEL LRU............................ el del software aumenta con una mucha mayor..........13 3.... Aunque el tamaño de las memorias se incrementa con cierta rapidez................................................ HIPERPAGINACION..........2...............7 2................6...........6........................................... Asignación dinámica...........8 2..................13 3.......12 3........ PRIMERA EN ENTRARPRIMERA EN SALIR)...........................3.................. BUFFERING DE PAGINAS...................................4.............................5....................................... 6 2. 13 3................................. MENOS RECIENTEMENTE USADA)........ ALGORITMO LRU (LEAST RECENTLY USED..................3..................8 3.. RETENCIÓN DE PÁGINAS EN MEMORIA...... Segmentación paginada.9 3......7...........................................5...... En la 3 .......................................................... Desventajas de la Segmentación Paginada......................6......................1................12 3................ SEGMENTACION.... Rendimiento con Paginación con Demanda............................ Políticas de Asignación de Marcos de Página..................................5...................4........................ ALGORITMO DE LA SEGUNDA OPORTUNIDAD O ALGORITMO DEL RELOJ...........2......................................... Mientras que los registros base y límite se pueden utilizar para crear la abstracción de los espacios de direcciones............................................................................................ 10 3.14 1.................. hay otro problema que se tiene que resolver: la administración del agrandamiento del software.. Paginación por Demanda y Conjunto de trabajo............................1........12 3..........1..................................9 3... ALGORITMO DE REMPLAZO DE PAGINA OPTIMO............ ALGORITMO FIFO (FIRST INPUT-FIRST OUTPUT......................2............ Paginación por Demanda............. MEMORIA VIRTUAL Prácticamente todos los sistemas operativos modernos usan la técnica de la memoria virtual..............................6.... Ventajas de la Segmentación Paginada.............1...... 11 3.......... 2....7 2.2......................2...... 10 3........................8 Política de reemplazo o Algoritmo de reemplazo........... Asignación fija...8 2............5................

No pasó mucho tiempo antes de que alguien ideara una forma de pasar todo el trabajo a la computadora. Una solución que se adoptó en la década de 1960 fue dividir los programas en pequeñas partes. se requiere mucha memoria). El problema de que los programas sean más grandes que la memoria ha estado presente desde los inicios de la computación. lo cual significa que requiere por lo menos 10 segundos para intercambiar un programa de 1 GB de memoria a disco y otros 10 segundos para intercambiar un programa de 1 GB del disco a memoria. ya que un disco SATA ordinario tiene una velocidad de transferencia pico de 100 MB/segundo a lo más. cuando éste terminaba. intercambiándolos primero hacia adentro de la memoria y después hacia afuera de la memoria mediante el administrador de sobrepuestos. incluso. El proceso de dividir programas grandes en partes modulares más pequeñas consumía mucho tiempo. El intercambio no es una opción atractiva. cada uno de los cuales cabe en memoria. La idea básica detrás de la memoria virtual es que cada 4 . 1961) se conoce actualmente como memoria virtual. Los sobrepuestos se mantenían en el disco. Ahora Microsoft recomienda tener por lo menos 512 MB para que un sistema Vista de un solo usuario ejecute aplicaciones simples y 1 GB si el usuario va a realizar algún trabajo serio. todo lo que se cargaba en memoria era el administrador de sobrepuestos. muchas universidades operaban un sistema de tiempo compartido con docenas de usuarios (más o menos satisfechos) trabajando simultáneamente en una VAX de 4 MB. Como consecuencia de estos desarrollos. El método ideado (Fotheringham. La tendencia hacia la multimedia impone aún mayores exigencias sobre la memoria. ya que permitían varios sobrepuestos en memoria a la vez. Aunque el trabajo real de intercambiar sobrepuestos hacia adentro y hacia afuera de la memoria lo realizaba el sistema operativo. indicaba al administrador de sobrepuestos que cargara el 1 encima del sobrepuesto 0 en la memoria (si había espacio) o encima del mismo (si no había espacio). Algunos sistemas de sobrepuestos eran muy complejos. existe la necesidad de ejecutar programas que son demasiado grandes como para caber en la memoria y sin duda existe también la necesidad de tener sistemas que puedan soportar varios programas ejecutándose al mismo tiempo. y era aburrido y propenso a errores. pero que en forma colectiva exceden el tamaño de la misma. para simular una nueva aeronave. conocidas como sobrepuestos (overlays). en áreas limitadas como la ciencia y la ingeniería (para simular la creación del universo o.década de 1980. Cuando empezaba un programa. el de dividir el programa en partes tenía que realizarlo el programador en forma manual. que de inmediato cargaba y ejecutaba el sobrepuesto 0. Pocos programadores eran buenos para esto.

Cuando el programa hace referencia a una parte de su espacio de direcciones que no está en la memoria física. que describiremos a continuación. Cada página es un rango contiguo de direcciones. el hardware realiza la asociación necesaria al instante.programa tiene su propio espacio de direcciones. pero no todas tienen que estar en la memoria física para poder ejecutar el programa. el sistema operativo recibe una alerta para buscar la parte faltante y volver a ejecutar la instrucción que falló. el cual se divide en trozos llamados páginas.1. Paginación La mayor parte de los sistemas de memoria virtual utilizan una técnica llamada paginación. Ejemplo de paginación 5 . 1. Cuando el programa hace referencia a una parte de su espacio de direcciones que está en la memoria física. Estas páginas se asocian a la memoria física.

SEGMENTACION Tanto la memoria física como la memoria virtual se dividen en bloques (en general de distinto tamaño. Es un esquema de segmentación un espacio de direcciones lógicas es un conjunto de segmentos.Tablas de paginación 1. Proceso de una segmentación 6 . 2. FALLO DE PÁGINA La MMU detecta que la página no está asociada (lo cual se indica mediante una «X» en la figura) y hace que la CPU haga un trap al sistema operativo. llamados segmentos). que son las que van a disco cuando vuelven a ser necesarios.2. A este trap se le llama fallo de página.

no se necesita tener la correspondiente PMT. 7 .1. también es posible combinar estos dos esquemas para mejorar con el sistema operativo Multics. puesto que el número variable de segmentos conduce naturalmente al uso de un Registro de Longitud de Tabla de Segmentos. En el caso.2. las direcciones lógicas estaban formadas a partir de un número de segmento de 18 bits y un desplazamiento de 16 bits. la tabla de segmentos tiene un tamaño tolerable. Segmentación paginada Tanto la paginación como la segmentación tienen sus ventajas y desventajas. no tenemos por qué tener entradas vacías en la tabla de segmentos. actuándose en igual forma que bajo segmentación pura. necesitamos tan solo el mismo número de entradas en la tabla de segmentos que segmentos. puede arreglarse un bit adicional (S) a cada entrada de la SMT. que indicara si el segmento esta paginado o no. aunque este esquema crea un espacio de direcciones correspondiente a una dirección de 34 bits. de que un segmento sea de tamaño inferior o igual al de una página.

Desventajas de la Segmentación Paginada 2. Bajo paginación pura se desperdician solo la última página asignada.  Como los espacios de memoria son paginados.4.3. lo que implica un mayor costo de almacenamiento. paginada el desperdicio puede ocurrir en todos los segmentos asigna. se simplifican las estrategias de almacenamiento.Ventajas de la Segmentación Paginada 2.2. se garantiza la facilidad de implantar la compartición y enlace.todas las páginas finales de cada uno de los segmentos. Paginación por Demanda 8 . bajo segmentación.  Se hace necesario mantener un número mayor de tablas en memoria. 2.  Sigue existiendo el problema de fragmentación interna de todas. mientras que.  Las tres componentes de la dirección y el proceso de formación de direcciones hacen que se incremente el costo de su implantación.  Se elimina el problema de la fragmentación externa y la necesidad de compactación.  Debido a que los espacios de memorias son segmentados.o casi.

compilador también ayuda. pero sólo para el código y datos requerido por el proceso.6. Cuando proceso empieza a ejecutarse. Procesos residen en almacenamiento secundario. 2. Conjunto de trabajo cargado en memoria.Técnica que permite otorgar páginas de memoria a procesos a medida que lo necesiten Similar a swapping in. Cuando proceso entra en ejecución páginas se van cargando en memoria (desde disco) a medida que se necesiten. Su tabla de páginas posee todas las entradas inválidas. Proceso deja de generar fallos de páginas cuando tiene todas las páginas que necesita para ejecutarse. Paginación por Demanda y Conjunto de trabajo        Cuando proceso comienza ejecución.5. Ninguna de sus páginas ha sido mapeadas a memoria (páginas no tienen asociadas marcos de página). Ejecución de instrucciones generan fallos de páginas por código y datos.Política de reemplazo o Algoritmo de reemplazo 9 . SO mantiene información de grupos que puede traer. SO actuales traen grupos de páginas (clusters). Rendimiento con Paginación con Demanda Si no hay fallos de página Tiempo efectivo de acceso a memoria depende de:     tasa de aciertos (hits) de caches (datos y/o TLB)costos en tiempo de acceso a caches y memoria En general se define Como Tiempo efectivo de acceso a memoria =TEAM. Tiempo de acceso efectivo = (1 – p)*TEAM + p*(costo fallo de página) donde p es la probabilidad de fallos de páginas 3.      Lo que proceso requiere en su ejecución varía en el tiempo. TEAM = %aciertos*(costo acierto) + %fallas*(costo falla) Si hay fallos de página. 2.

Objetivo de los algoritmos de reemplazo: Minimizar la tasa de fallos de página. el algoritmo de reemplazo óptimo es fácil en teoría. Desafortunadamente. Clock (Reloj o segunda oportunidad) = FIFO + uso del bit de referencia. Algoritmos conocidos: Óptimo. pero prácticamente imposible de implementar. Además. 3. Cada algoritmo tiene versión local y global: local  criterio se aplica a las páginas residentes del proceso.2. y LRU (Least Recently Used). Tal algoritmo existe y ha sido llamado OPT o MIN. Asocia a cada página el instante en 10 . ALGORITMO FIFO (FIRST INPUT-FIRST OUTPUT. ALGORITMO DE REMPLAZO DE PAGINA OPTIMO Descripción Este algoritmo debe de tener el menor índice de fallos de página de todos los algoritmos. estos algoritmos se utilizan en técnicas de buffering de páginas. pero se usa únicamente para estudios de comparaciones Características ·     Es el que produce menos fallos de página para cualquier cantidad de marcos Se reemplaza la página que va a tardar más tiempo en ser referenciada No puede implementarse pues implicaría conocer de antemano las páginas que va a referenciar el proceso Aunque no puede implementarse se utiliza como referencia para los demás algoritmos Ejemplo La cadena de referencia 2 3 2 1 5 2 4 5 3 2 5 2 con tres marcos produce 3 fallos 3. En teoría. dado que requiere conocer a futuro las necesidades del sistema. este algoritmo debe de reemplazar la página que no va a ser usada por el periodo más largo de tiempo. y global  criterio se aplica a todas las páginas residentes.1. PRIMERA EN ENTRAR-PRIMERA EN SALIR) El algoritmo FIFO reemplaza las páginas de la forma que el primero que entra es el primero que sale. FIFO (First In First Out).

Cuando se busca una página para reemplazar. La búsqueda continuará hasta que se encuentre una página con su bit de referencia desactivado. En caso contrario. en vez de una lineal (en el caso de una estrategia local. Si no está activo. Un ejemplo claro es cuando la página puede contener una variable cuyo valor inicial se asignó hace tiempo pero que se utiliza constantemente por lo que puede prescindir de páginas que accede con frecuencia. A pesar de que es un algoritmo fácil de comprender y programar. a continuación. se coloca en el lugar donde señala el puntero y. cuando se necesita reemplazar una página. Existe un puntero que señala en cada instante al principio de la lista. Por tanto. se le da una segunda oportunidad a la página. su rendimiento no siempre es bueno. se desactiva y se avanza el puntero al siguiente elemento. se examina el bit de referencia de la página a la que señala el puntero. 11 . 3. Cuando llega a memoria una página. el algoritmo se convierte en FIFO. ALGORITMO DE LA SEGUNDA OPORTUNIDAD O ALGORITMO DEL RELOJ Este es un algoritmo que deriva del algoritmo FIFO. se avanza el puntero al siguiente elemento de la lista. Para implementar este algoritmo se puede usar una lista circular de las páginas residentes en memoria. En este algoritmo.3. se la considera como si acabara de llegar a memoria.el que se trajo a la memoria. así cuando se tenga que reemplazar una página. se elige la más antigua. Si todas las páginas tienen activado su bit de referencia. se examina el bit de referencia de la página más antigua (la primera de la lista en orden FIFO). Si está activo. El Algoritmo de Segunda Oportunidad. poniéndola al final de la lista y desactivando su bit de referencia. se usa esta página para el reemplazo. se utiliza una lista circular por cada proceso).

Otro mecanismo es llevar un contador por medio de hardware.El puntero avanzará hasta que se encuentre una página con el bit de referencia desactivado. 3. siendo seleccionada la tercera para la expulsión. Pese a ser un buen algoritmo en teoría. Esta puede ser llevada a cabo por una lista enlazada con todas las paginas ordenadas. En este caso. el tratamiento del fallo de página 12 . MENOS RECIENTEMENTE USADA) La estrategia consiste en llevar a disco la página que ha permanecido por más tiempo sin ser accesada. menos probable es que se accese en el futuro inmediato.4. Esta forma de trabajo imita al comportamiento de un reloj donde el puntero que recorre la lista se comporta como la aguja del reloj. lo cual involucra un alto costo asociado. esta estrategia se denomina algoritmo del reloj muestra un ejemplo de este algoritmo. pero al momento de ser referenciada una página esta tiene que cambiar de lugar.1.5. 3. Desventaja: El alto costo de implementación en cuanto a los recursos. donde se puede apreciar que a las dos primeras páginas revisadas se les da una segunda oportunidad por tener el bit de referencia a uno. BUFFERING DE PAGINAS Una situación que intentan evitar la mayoría de los sistemas es la que se produce cuando la página seleccionada para reemplazar está modificada. ALGORITMO LRU (LEAST RECENTLY USED. MÁS ALLÁ DEL LRU 3.5. Debido a ello. el cual es incrementado cada vez que la pagina es accedida. El fundamento de esta estrategia es que estadísticamente se observa que mientras más tiempo permanece una página sin ser accesada. su implementación no lo es tanto.

Políticas de Asignación de Marcos de Página. 3. El diseño de un sistema operativo en el que las páginas de su propio mapa pudieran expulsarse a memoria secundaria resultaría complejo y. así como los datos y otras partes de código usados desde la misma. posiblemente. En primer lugar. Para incidir más en la problemática de llegar a ese momento extremo.2. deben siempre estar residentes para evitar el interbloqueo. Se puede considerar que el algoritmo de reemplazo también se activa bajo demanda: en el momento que no queda más memoria libre. ineficiente. imagine qué ocurriría si se necesitase reservar memoria durante la propia operación de reemplazo para. por ejemplo. si se necesita reservar memoria dentro del contexto de una rutina de interrupción. teniendo en cuenta que. Se puede considerar que algunas páginas están atornilladas a la memoria principal. 13 . quedando el sistema en un interbloqueo. hay que expulsar alguna página.6. Tenga en cuenta. esperar a que se llegue a una situación tan crítica de falta total de memoria no parece una buena estrategia. están las páginas del propio sistema operativo. será necesario marcar las páginas implicadas como no reemplazables hasta que termine la operación. no podría completarse la misma. Además. más aún. RETENCIÓN DE PÁGINAS EN MEMORIA Para acabar esta sección en la que se han presentado diversos algoritmos de reemplazo. Sin embargo. hay que resaltar que no todas las páginas residentes en memoria son candidatas al reemplazo. Al no haber memoria libre. llevar a cabo la escritura en disco. 3. no se puede bloquear la ejecución de la misma hasta que no se habilite memoria libre. que el código de la rutina de tratamiento del fallo de página. además. si se permite que los dispositivos de entrada/salida que usan DMA realicen transferencias directas a la memoria de un proceso.5.implica dos operaciones al disco. aumentando considerablemente el tiempo de servicio del fallo. lo que le permite usar grandes cantidades de datos sin afectar directamente a la cantidad de memoria disponible en el sistema. La mayoría de los sistemas operativos tienen su mapa de memoria fijo en memoria principal. Lo que sí proporcionan algunos sistemas operativos es la posibilidad de que un componente del propio sistema operativo reserve una zona de memoria que pueda ser expulsada.

cuando se usa una estrategia de asignación fija. ya que un proceso sólo usa para reemplazo los marcos que tiene asignados.En un sistema con multiprogramación existen varios procesos activos simultáneamente que comparten la memoria del sistema. este tipo de asignación lleva asociada una estrategia de reemplazo local. Existen dos tipos de estrategias de asignación: asignación fija o asignación dinámica. Asignación fija Con esta estrategia. Por tanto. determinar cuántos marcos de página se asignan a cada proceso. puesto que siempre que se ejecute con los mismos parámetros va a provocar los mismos fallos de página. Por ejemplo. 3. no permitiendo almacenar simultáneamente todas las páginas que está utilizando el proceso en ese intervalo de tiempo. el sistema operativo decide cuál es el número máximo de marcos asignados al proceso. Normalmente. se asigna a cada proceso un número fijo de marcos de página. Existen diferentes criterios para repartir los marcos de las páginas entre los procesos existentes.2.1. por tanto. el proceso podría no terminar de ejecutarla. Una propiedad positiva de esta estrategia es que el comportamiento del proceso es relativamente predecible.6.6. Sin embargo. el número de marcos asignados a un proceso varía según las necesidades que tenga el mismo (y posiblemente el resto de procesos del sistema) en diferentes instantes de tiempo. Asignación dinámica Usando esta estrategia. Con este tipo de asignación se pueden usar estrategias de reemplazo locales y globales. En contraste. 14 . Habrá fases en la que el espacio asignado se le quedará pequeño. la arquitectura de la máquina establece el número mínimo de marcos que deben asignarse a un proceso. El número de marcos asignados no varía. Es necesario. 3. Por otra parte. existirán fases en las que el proceso no usará realmente los marcos que tiene asignados. si la ejecución de una única instrucción puede generar cuatro fallos de página y el sistema operativo asigna tres marcos de página a un proceso que incluya esta instrucción. La principal desventaja de esta alternativa es que no se adapta a las diferentes necesidades de memoria de un proceso a lo largo de su ejecución. el número mínimo de marcos de página para una arquitectura quedará fijado por la instrucción que pueda generar el máximo número de fallos de página. Puede depender de múltiples factores tales como el tamaño del proceso o su prioridad.

crece la tasa de fallos de página de cada proceso (hay menos marcos de página por proceso) y. por otro lado. No se trata de una disminución progresiva. por lo que. sino drástica. La estrategia de reemplazo global hace que el comportamiento del proceso en tiempo de ejecución no sea predecible. si el grado de multiprogramación se hace demasiado alto. Con una estrategia de asignación dinámica. el resto de los procesos del sistema no se verán afectados directamente. lo que causará un aumento considerable de su tiempo de ejecución. Esta situación se denomina Hiperpaginacion. Sin embargo. Este aumento implica una mejora en el rendimiento del sistema. puesto que el tiempo que dedica al tratamiento de los fallos de página aumenta. no debería presentarse este problema. por tanto. el proceso pasa más tiempo en la cola de servicio del dispositivo de swap que en ejecución. El principal problema de este tipo asignación es que la tasa de fallos de página de un programa puede depender de las características de los otros procesos que estén activos en el sistema. La utilización del procesador disminuirá. si el número de marcos de página en el sistema no es suficiente para almacenar los conjuntos de trabajo de todos los procesos. No obstante. Cuando se produce la hiperpaginacion. • Con reemplazo global. se producirán fallos de página frecuentes y. en principio.7. aumenta el tiempo de servicio 15 .• Con reemplazo local. si el número de marcos asignados al proceso no es suficiente para albergar su conjunto de trabajo en una determinada fase de su ejecución. el número de fallos de páginas se dispara y el rendimiento del sistema baja drásticamente. Sin embargo. 3. el número de marcos asignados a un proceso se va adaptando a sus necesidades. por un lado. el proceso va aumentando o disminuyendo su conjunto residente dependiendo de sus necesidades en las distintas fases de ejecución del programa. este programa puede afectar a procesos individuales o a todo el sistema. Dependiendo del tipo de paginación asignado usado. En un sistema operativo que utiliza una estrategia de asignación fija. los procesos compiten en el uso de memoria quitándose entre sí las páginas. que se debe a que al aumentar el número de procesos. se producirá hiperpaginación en ese proceso. el sistema sufrirá hiperpaginación. HIPERPAGINACION Se produce un aumento del grado de multiprogramación al no ser necesario que todo el mapa de memoria de un proceso esté en memoria principal para poder ejecutarlo.

su prioridad. habrá que establecer algún tipo de criterio para decidir qué procesos se deberían suspender (criterios tales como si el proceso está bloqueado. La reactivación de los procesos seleccionados sólo se realizará cuando haya suficientes marcos de página libres. 16 . Este mecanismo de suspensión tiene similitudes con la técnica del intercambio y. Cuando se produce esta situación se deben suspender uno o varios procesos liberando sus páginas. el número de páginas residentes. Es necesario establecer una estrategia de control de carga que ajuste el grado de multiprogramación en el sistema para evitar que se produzca hiperpaginación. como en dicha técnica. La estrategia que decide cuándo suspender un proceso y cuándo reactivarlo se corresponde con la planificación a medio plazo.del dispositivo de paginación (crece la longitud de la cola de servicio del dispositivo). el tamaño de su mapa de memoria o el tiempo que lleva ejecutando).