Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos
Memoria Virtual Memoria Virtual Concepto de Memoria Virtual: Método para conseguir
que la suma de los espacios de pila, datos y texto de un
Introducción Introducción
programa pueda ser mayor que el tamaño fı́sico de la
Conceptos memoria disponible para él. (Fotheringham, 1961)
Paginación
Memoria Virtual Paginación
Memoria Cada proceso se asigna un área de direcciones contiguo.
Asociativa Memoria
Páginas invertidas
Asociativa El SO mantiene en memoria solamente las partes del
Algoritmos de
Eloy Anguiano Rey Páginas invertidas
programa que se están utilizando y mantiene en disco
reemplazo eloy.anguiano@uam.es Algoritmos de
reemplazo (intercambiadas) el resto.
Criterios de diseño
de paginación Criterios de diseño Sirve para sistemas mono y multiprogramados.
Centro de Referencia Linux UAM–IBM de paginación
Segmentación
Escuela Politécnica Superior Segmentación Permite optimizar el uso de la memoria, al mantener
Universidad Autónoma de Madrid en disco partes del proceso poco usadas (rutinas de
atención a errores poco frecuentes, funciones de uso
esporádico, datos no usados, . . . )
La memoria virtual se implementa normalmente
mediante paginación.
Paginación Paginación
Conceptos Conceptos
Memoria Virtual Memoria Virtual
Como respuesta al fallo de página, el SO:
La memoria fı́sica se divide en bloques de tamaño fijo 1 Selecciona una página poco usada del proceso.
que llamamos marcos. 2 Intercambia la página a disco.
Introducción Introducción
La memoria virtual se divide en bloques del mismo 3 Asigna el marco de la página liberada a la página virtual
Paginación Paginación
Conceptos tamaño llamados páginas. Conceptos que se intenta acceder.
Tablas de páginas Tablas de páginas
Aspectos de diseño Aspectos de diseño Esto supone una forma de reasignación dinámica por
De un nivel: Ejemplo Al ejecutar un proceso se cargan sus páginas en los De un nivel: Ejemplo
DEC PDP–11 DEC PDP–11 bloques de las direcciones de memoria del proceso
Multinivel marcos disponibles. La vinculación de direcciones Multinivel
De dos niveles: De dos niveles:
ejemplo VAX
De tres niveles:
requiere soporte por hardware (Manejador de ejemplo VAX
De tres niveles:
ejemplo SPARC
Rendimiento de un Memoria). ejemplo SPARC
Rendimiento de un
sistema de sistema de
paginación
La paginación remedia la fragmentación externa, paginación
Memoria Memoria
Asociativa pero no la fragmentación interna. Asociativa
Páginas invertidas
Un intento de acceso a una página virtual que no esté Páginas invertidas
Algoritmos de Algoritmos de
reemplazo asociada a un marco produce un señalamiento al SO reemplazo
Segmentación Segmentación
Paginación Paginación
Tablas de páginas Tablas de páginas
Memoria Virtual Memoria Virtual El tamaño de página viene definido por el hardware y
Son tablas que contienen (para cada proceso) el número suele ser una potencia de 2 que varı́a entre 512 y 16M.
de marco que corresponde a cada página virtual del Ej. simplificado: Direccionamiento de un espacio virtual
Introducción proceso. Introducción
de 64K, distribuido en 16 páginas de 4K.
Paginación Paginación
Conceptos
Estructura de una entrada de la Tabla de Procesos: Conceptos
Tablas de páginas Tablas de páginas
Aspectos de diseño Aspectos de diseño
De un nivel: Ejemplo De un nivel: Ejemplo
DEC PDP–11 DEC PDP–11
Multinivel Multinivel
De dos niveles: De dos niveles:
ejemplo VAX ejemplo VAX
De tres niveles: De tres niveles:
ejemplo SPARC ejemplo SPARC
Rendimiento de un Rendimiento de un
sistema de sistema de
paginación paginación
Memoria Memoria
Asociativa Asociativa
Algoritmos de Algoritmos de
reemplazo reemplazo
Segmentación Segmentación
Paginación Paginación
Aspectos de diseño Aspectos de diseño
Memoria Virtual Memoria Virtual
El tiempo de asociación debe ser reducido La memoria secundaria está diseñada para transferir
eficazmente los bloques de datos de mayor tamaño, de
Introducción Soluciones basadas completamente en hardware Introducción
(utilizando registros) son las más rápidas, pero esto sólo manera que es propicia para tamaños de página
Paginación Paginación
Conceptos es válido si las tablas son pequeña. Conceptos mayores.
Tablas de páginas Tablas de páginas
Aspectos de diseño
De un nivel: Ejemplo Cuanto menor sea el tamaño de página, menor será la Aspectos de diseño
De un nivel: Ejemplo
Si el tamaño de página es muy pequeño, estarán
DEC PDP–11 DEC PDP–11
Multinivel cantidad de fragmentación interna. Multinivel disponibles en la memoria principal un gran número de
De dos niveles: De dos niveles:
ejemplo VAX
Cuanto menor sea la página, mayor será el número de
ejemplo VAX páginas para cada proceso.
De tres niveles: De tres niveles:
ejemplo SPARC ejemplo SPARC
Rendimiento de un páginas que se necesitan por proceso. Rendimiento de un Después de un tiempo, todas las páginas de la memoria
sistema de sistema de
paginación
Un número mayor de páginas por proceso significa que
paginación contendrán parte de las referencias más recientes del
Memoria Memoria
Asociativa
las tablas de páginas serán mayores. Asociativa proceso. La tasa de fallos de página será menor.
Páginas invertidas
Esto puede significar que una gran parte de las tablas
Páginas invertidas Cuando se incrementa el tamaño de la página, cada
Algoritmos de
reemplazo de páginas de los procesos activos deben estar en la
Algoritmos de
reemplazo
página individual contendrán posiciones cada vez más
Criterios de diseño memoria virtual. Criterios de diseño
distantes de cualquier referencia reciente. La tasa de
de paginación de paginación
fallos será mayor.
Segmentación Segmentación
Paginación Paginación
Aspectos de diseño Aspectos de diseño
Memoria Virtual Memoria Virtual
El comportamiento tı́pico de la paginación en un programa Podemos ver algunos ejemplos de tamaños de página en
es el siguiente: función del Hardware.
Introducción Introducción
Segmentación Segmentación
Paginación Paginación
De un nivel: Ejemplo DEC PDP–11 Multinivel
Memoria Virtual Memoria Virtual
Direccionamiento con 16 bits (memoria lógica de
Objetivo: evitar tener siempre en memoria tablas de
216 =64Kb).
páginas completas.
Introducción Mantiene tablas separadas para instrucciones y datos Introducción
Memoria Memoria
Asociativa Asociativa
Algoritmos de Algoritmos de
reemplazo reemplazo
Segmentación Segmentación
Paginación Paginación
De dos niveles: ejemplo VAX De dos niveles: ejemplo VAX
Memoria Virtual Memoria Virtual Para reducir el uso de memoria, las tablas de páginas
Direccionamiento con 32 bits (memoria lógica de 232 =
están también paginadas, y las partes no usadas de la
4GB).
tabla intercambiadas a disco
Introducción Tamaño de página: 512 bytes (29 ). Introducción
Sólo el SO y su tabla de páginas permanece
Paginación Paginación
Conceptos
Espacio de direcciones lógico divido en cuatro secciones, Conceptos permanentemente en memoria
Tablas de páginas
Aspectos de diseño cada una de 1GB (230 bytes). Tablas de páginas
Aspectos de diseño Esquema de memoria virtual de los procesos:
De un nivel: Ejemplo De un nivel: Ejemplo
DEC PDP–11 Entrada de la tabla de página: 4 bytes. DEC PDP–11
Multinivel Multinivel
De dos niveles:
ejemplo VAX Tamaño de la tabla de páginas (221 × 4B): ¡¡8 MB!! De dos niveles:
ejemplo VAX
De tres niveles: De tres niveles:
ejemplo SPARC
Rendimiento de un
Memoria fı́sica < 2 MB (en las VAX más pequeñas). ejemplo SPARC
Rendimiento de un
sistema de sistema de
paginación Direcciones lógicas: paginación
Memoria Memoria
Asociativa Asociativa
Algoritmos de Algoritmos de
reemplazo reemplazo
Segmentación Segmentación
Paginación Paginación
De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginación
Memoria Virtual Direccionamiento con 32 bits (memoria lógica de 4 GB Memoria Virtual
Memoria Memoria
Asociativa Se basa en la observación de que los procesos acceden Asociativa
Conceptos
Esquema normalmente a un número pequeño de páginas (y Conceptos
Esquema
Asignación del Asignación del
manejador de
memoria
esporádicamente al resto). manejador de
memoria
Páginas invertidas Solución: dotar a los ordenadores con hardware Páginas invertidas
Segmentación Segmentación
Segmentación Segmentación
Algoritmos de reemplazo Algoritmos de reemplazo
Del reloj Óptimo
Memoria Virtual Memoria Virtual
Cada página contiene una etiqueta con el número de
instrucciones que transcurrirán hasta el próximo acceso
Introducción Introducción a la página. Se reemplaza la página que tenga la
Paginación Paginación
etiqueta más alta.
Memoria Memoria
Asociativa Asociativa Problema: Es irrealizable ya que el SO no tiene forma
Páginas invertidas Páginas invertidas de saber cuándo se va a realizar un nuevo acceso a una
Algoritmos de Algoritmos de página. Es posible si se ejecuta en modo simulación, se
reemplazo reemplazo
Conceptos Conceptos computan los accesos a las páginas, y esos cómputos se
FIFO FIFO
Segunda oportunidad Segunda oportunidad utilizan en sucesivas ejecuciones.
Del reloj Del reloj
Óptimo Óptimo
NRU NRU
LRU LRU
NFU NFU
NFU con maduración NFU con maduración
Segmentación Segmentación
Paginación
Clase 1: Páginas no referenciadas, modificadas (R=0,M=1). Paginación Implementa una aproximación del algoritmo óptimo,
Memoria Memoria
Asociativa Clase 2: Páginas referenciadas no modificadas (R=1,M=0). Asociativa
basado en mirar al pasado y a partir de él estimar cuál
Páginas invertidas Clase 3: Páginas referenciadas, modificadas (R=1,M=1). Páginas invertidas podrı́a ser el uso de la página.
Algoritmos de La asignación de página a desalojar se realiza aleatoriamente Algoritmos de Cuando sea necesario, el planificador saca de la tabla
reemplazo reemplazo
Conceptos entre las páginas de menor clase de la tabla. Conceptos que lleva más tiempo sin acceso, de entre las entradas
FIFO FIFO
Segunda oportunidad Segunda oportunidad de la tabla.
Del reloj Del reloj
Óptimo Óptimo Hay varias implementaciones posibles.
NRU NRU
LRU LRU
NFU NFU
NFU con maduración NFU con maduración
Segmentación Segmentación
Algoritmos de reemplazo Algoritmos de reemplazo
LRU (Last Recently Used) NFU (No Frequently Used)
Memoria Virtual Memoria Virtual
La tabla se implementa como pila Implementa una aproximación del algoritmo LRU,
Pila de números de página que conserva en la salida la utilizando exclusivamente Software:
Se activa un contador software por cada página
Introducción página más recientemente usada y en la base la menos Introducción
En cada interrupción de reloj, el SO suma el bit R (0 ó
Paginación recientemente usada Paginación
1) al contador.
Memoria Memoria
Asociativa La actualización de la tabla es muy lenta, aún usando Asociativa Cuándo existe un fallo de página se selecciona la página
Páginas invertidas HW especial. Páginas invertidas con el contador más bajo y se envı́a a disco.
Algoritmos de Algoritmos de
reemplazo Uso de contadores reemplazo
Conceptos Conceptos
FIFO Las entradas de la tabla de páginas tienen un campo de FIFO
Segunda oportunidad Segunda oportunidad
Del reloj
Óptimo
‘tiempo de uso’ en el que el Manejador de Memoria Del reloj
Óptimo
NRU
LRU
escribe el tiempo de cada referencia. NRU
LRU
NFU NFU
NFU con maduración Cada acceso a memoria requiere una búsqueda en la NFU con maduración
Criterios de diseño Tabla de Páginas y una escritura en memoria por cada Criterios de diseño
de paginación de paginación
Segmentación
acceso a memoria. Segmentación
Requiere HW especial.
Problema: Tiene memoria
Segmentación
Diseño de paginación Diseño de paginación
Número de marcos Asig. de marcos en sist. multiprogramados
Memoria Virtual Lı́mite superior: no se puede asignar más del total de Memoria Virtual Asignación equitativa: Cada proceso de los n
marcos libres. existentes reciben el mismo número de marcos (m/n) ,
Lı́mite inferior: Número máximo de referencias necesarias
de los m marcos del sistema.
Introducción para completar una instrucción: Introducción
Segmentación
Diseño de paginación Segmentación
Diseño de paginación
Asignación global o local Hiperpaginación (Trashing)
Memoria Virtual Memoria Virtual
Definimos conjunto de trabajo como el número de
páginas activas que un proceso tiene en un momento
Introducción Asignación global: Un proceso puede utilizar marcos Introducción dado. Es el número suficiente, mayor al mı́nimo. Si el
Paginación que pertenecen a otro proceso (ocurre en asignación Paginación
número de marcos disponibles es inferior al tamaño del
Memoria
Asociativa
con prioridades). Memoria
Asociativa conjunto de trabajo, se producirán frecuentes fallos de
Páginas invertidas Asignación local: Un proceso sólo puede utilizar Páginas invertidas página (hiperpaginación).
Algoritmos de marcos que le han sido asignados a dicho proceso. Algoritmos de Un proceso hiperpaginado pasa más tiempo
reemplazo reemplazo
Criterios de diseño
Problemas: Criterios de diseño
intercambiando páginas que ejecutándose, y puedo
de paginación Desperdicia espacio si el proceso no necesita todos los de paginación ‘robar’ páginas de otros procesos, provocando su
Asignación de marcos Asignación de marcos
en sistemas
monoprogramados
marcos que se le han asignado. en sistemas
monoprogramados hiperpaginación.
Número de marcos Si el proceso necesita más marcos de los asignados, el Número de marcos
Asignación de marcos Asignación de marcos Consecuencia: reducción drástica del uso de CPU. El
en sistemas proceso no podrá ejecutarse correctamente, aunque en en sistemas
multiprogramados
Asignación global o el sistema haya muchos marcos vacı́os.
multiprogramados
Asignación global o planificador de procesos responde incrementando el
local local
Hiperpaginación
(Trashing)
Hiperpaginación
(Trashing)
nivel de multiprogramación. Este procesos se
Tamaño de página
Área de
Tamaño de página
Área de
realimenta positivamente hasta que el sistema se
almacenamiento en
disco
almacenamiento en
disco desploma.
Administración de Administración de
fallos de página fallos de página
Administración de Administración de
fallos de página fallos de página
Segmentación Segmentación
Diseño de paginación Diseño de paginación
Hiperpaginación (Trashing) Tamaño de página
Memoria Virtual Memoria Virtual
Segmentación
Diseño de paginación Segmentación
Diseño de paginación
Área de almacenamiento en disco Administración de fallos de página
Memoria Virtual Lo más simple es asignar un área dedicada (inicialmente Memoria Virtual
1 El HW hace un señalamiento al núcleo, que guarda el
vacı́a), separada del sistema de directorios. Opciones: contador de programa (y a veces el estado de
Introducción 1 Cada vez que se crea un proceso se reserva una zona del área Introducción instrucción interrumpida)
Paginación de intercambio igual al tamaño de imagen del proceso. A Paginación 2 Ejecuta una rutina en ensamblador que resguarda los
Memoria cada proceso se le asigna la dirección en disco de su área de Memoria datos volátiles (registros) y llama al SO como un
Asociativa Asociativa
intercambio, que se almacena en la Tabla de Proceso.La procedimiento
Páginas invertidas lectura se realiza sumando el número de página virtual a la Páginas invertidas
3 El SO detecta el fallo de página e intenta determinar la
Algoritmos de dirección de comienzo del área asignada al proceso. Algoritmos de
reemplazo reemplazo
página virtual requerida (normalmente contenida en un
Criterios de diseño 2 Si los datos y/o la pila pueden crecer, es mejor reservar zonas Criterios de diseño
registro, o a partir del contador de programa
de paginación de paginación
zonas independientes. A cada zona se le asignan varios
Asignación de marcos
en sistemas
Asignación de marcos
en sistemas almacenado)
monoprogramados bloques. monoprogramados
Número de marcos Número de marcos 4 El SO verifica que la página es válida y los permisos. En
Asignación de marcos Asignación de marcos
en sistemas 3 No se asigna nada inicialmente. A cada página se le asigna en sistemas caso de que no sea válida o no se disponga de los
multiprogramados multiprogramados
Asignación global o
local
su espacio en disco cuando se va a intercambiar, y el espacio Asignación global o
local permisos adecuados el SP envı́a una señal al proceso o
Hiperpaginación se libera cuando la página vuelve a memoria. Problema: se Hiperpaginación
(Trashing) (Trashing) lo elimina. En caso contrario el SO intenta encontrar un
Tamaño de página debe llevar contabilidad en memoria (página a página) de la Tamaño de página
Área de
almacenamiento en localización de las páginas en disco.
Área de
almacenamiento en
marco libre y si no lo hay ejecuta el algoritmo de
disco disco
Administración de Administración de reemplazo de páginas.
fallos de página fallos de página
Administración de
fallos de página
Administración de
fallos de página
5 Si la página seleccionada ha sido modificada se escribe
Segmentación Segmentación en disco. Durante ese tiempo el planificador da paso a
Diseño de paginación Segmentación
Administración de fallos de página
Memoria Virtual Memoria Virtual
6 El SO busca en disco la página solicitada y planifica una Técnica para mantener espacios independientes de
operación de disco para recuperarla. Durante el tiempo direcciones virtuales, llamados segmentos. Supone un
Introducción de carga, el proceso solicitante sigue suspendido, y el Introducción nuevo nivel de abstracción, en el que distintas partes del
Paginación planificador puede dar paso a otro proceso de usuario. Paginación proceso tienen espacios virtuales independientes entre
Memoria
Asociativa
El marco se pone a “ocupado”. Memoria
Asociativa
sı́. El espacio de memoria virtual es multidimensional
Páginas invertidas
7 Al terminarse la carga de la página el SO actualiza las Páginas invertidas
La segmentación permite:
Algoritmos de
tablas de páginas del proceso(s) involucrados. Algoritmos de
1 Desentenderse de la administración ‘interna’ de la
reemplazo 8 La instrucción que cometió el fallo se reinicia (o vuelve reemplazo memoria virtual del proceso, es decir, del control del
Criterios de diseño
al estado en que quedó al ser interrumpida). El Criterios de diseño crecimiento, decrecimiento y ajuste entre si de las
de paginación de paginación
Asignación de marcos
Contador de Programa se modifica para que apunte a distintas partes del proceso.
en sistemas Segmentación
monoprogramados 2 Asignar permisos distintos a las partes del proceso.
Número de marcos esa instrucción. MULTICS
(segmentación +
Asignación de marcos paginación) 3 Compartir datos o procedimientos entre procesos.
en sistemas 9 El proceso que provocó el fallo se planifica de nuevo y el
multiprogramados
Los segmentos se direccionan desde 0 hasta una
Asignación global o
local SO regresa a la rutina que lo llamó.
Hiperpaginación dirección máxima, que puede variar.
(Trashing) 10 La rutina restaura los registros y demás información
Tamaño de página
Área de volátil y regresa al espacio de usuario para continuar la La segmentación pura puede producir problemas de
almacenamiento en
disco
ejecución. fragmentación externa.
Administración de
fallos de página
Administración de
fallos de página
Segmentación
Segmentación Segmentación
MULTICS (segmentación + paginación) MULTICS (segmentación + paginación)
Memoria Virtual Memoria Virtual
Cada programa mantiene una tabla de segmentos, que a
Cada programa dispone de una memoria virtual de hasta su vez reside en un segmento que puede estar paginado.
Introducción Introducción
Paginación
218 segmentos, cada uno de hasta 64K (218 ) palabras. Paginación
Cada entrada de la tabla se segmentos tiene los
Memoria Cada segmento es un espacio virtual independiente que Memoria
siguientes campos:
Asociativa
puede paginarse, con 64 (26 ) páginas de 1K (210 ) Asociativa
Algoritmos de
Las direcciones fı́sicas son de 24 bits, con las páginas Algoritmos de
reemplazo alineadas con fronteras de 64 bytes reemplazo
Segmentación Segmentación
MULTICS MULTICS
(segmentación + (segmentación +
paginación) paginación)
Segmentación
MULTICS (segmentación+paginación)
Memoria Virtual
Conversión de direcciones:
Introducción
Paginación
Memoria
Asociativa
Páginas invertidas
Algoritmos de
reemplazo
Criterios de diseño
de paginación
Segmentación
MULTICS
(segmentación +
paginación)