Está en la página 1de 12

Memoria Virtual Introducción

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

Criterios de diseño (trap), llamado fallo de página. Criterios de diseño


de paginación de paginación

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

Páginas invertidas Páginas invertidas

Algoritmos de Algoritmos de
reemplazo reemplazo

Criterios de diseño Criterios de diseño


de paginación de paginación

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

Paginación Paginación Computadora Tamaño de página


Conceptos Conceptos
Tablas de páginas Tablas de páginas Atlas 512 palabras de 48 bits
Aspectos de diseño Aspectos de diseño
De un nivel: Ejemplo
DEC PDP–11
De un nivel: Ejemplo
DEC PDP–11
Honeywell-Multics 1.024 palabras de 36 bits
Multinivel
De dos niveles:
Multinivel
De dos niveles:
IBM 370/XA y 370/ESA 4 Kbytes
ejemplo VAX ejemplo VAX
De tres niveles: De tres niveles: Familia VAX 512 bytes
ejemplo SPARC ejemplo SPARC
Rendimiento de un
sistema de
Rendimiento de un
sistema de
IBM AS/400 512 bytes
paginación paginación
DEC Alpha 8 Kbytes
Memoria Memoria
Asociativa Asociativa MIPS de 4 Kbytes a 16 Mbytes
Donde:
Páginas invertidas Páginas invertidas UltraSPARC de 8 Kbytes a 4 Mbytes
Algoritmos de
P: es el tamaño del proceso completo. Algoritmos de Pentium de 4 Kbytes a 4 Mbytes
reemplazo reemplazo
W: es el tamaño del conjunto de trabajo. Power Pc 4 Kbytes
Criterios de diseño Criterios de diseño
de paginación
N: es el número total de páginas del proceso. de paginació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

Paginación =⇒ memoria lógica del proceso=128 KB. Paginación


Solución: dividir la tabla en sub-tablas y mantener en
Conceptos
Tablas de páginas Tamaño de página: 8 KB (213 ). Memoria fı́sica: 4 MB
Conceptos
Tablas de páginas
memoria sólo las que sean necesarias en cada momento.
Aspectos de diseño Aspectos de diseño
De un nivel: Ejemplo
DEC PDP–11
(222 ). 512 páginas. De un nivel: Ejemplo
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

Páginas invertidas Páginas invertidas

Algoritmos de Algoritmos de
reemplazo reemplazo

Criterios de diseño Criterios de diseño


de paginación de paginación

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

Páginas invertidas Páginas invertidas

Algoritmos de Algoritmos de
reemplazo reemplazo

Criterios de diseño Criterios de diseño


de paginación de paginación

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

=232 ) El tiempo de acceso efectivo a memoria (tae ) para un


Introducción
Tamaño de página: 4kB (212 ) ⇒ 1 millón de páginas. Introducción sistema de paginación de memoria mononivel es
Paginación Se define un contexto, único para cada proceso, y una Paginación tae = tb + (1 − p) × tam + p × tfallo + tam
Conceptos
Tablas de páginas tabla de contexto (hardware) para almacenar un Conceptos
Tablas de páginas
donde:
Aspectos de diseño
De un nivel: Ejemplo apuntador al comienzo de la tabla de alto nivel del Aspectos de diseño
De un nivel: Ejemplo tb : tiempo medio de búsqueda en la tabla de páginas
DEC PDP–11 DEC PDP–11
Multinivel proceso. Multinivel p: probabilidad de que ocurra un fallo de página
De dos niveles: De dos niveles:
ejemplo VAX
De tres niveles:
ejemplo VAX
De tres niveles:
tam : tiempo de acceso a memoria
ejemplo SPARC
Rendimiento de un
ejemplo SPARC
Rendimiento de un
tfallo : tiempo de resolución de un fallo de página. Tiene
sistema de
paginación
sistema de
paginación tres componentes principales:
Memoria Memoria 1 Atender la interrupción de fallo de página
Asociativa Asociativa
2 Traer la página a la memoria
Páginas invertidas Páginas invertidas
3 Reiniciar el proceso
Algoritmos de Algoritmos de
reemplazo reemplazo En el caso
P de tablas multinivel (n niveles):
Criterios de diseño
de paginación
Criterios de diseño
de paginación
tae = N i=1 [tbi + (1 − pi ) × tam + pi × tfallo ] + tam
Segmentación Segmentación
Memoria Asociativa Memoria Asociativa
Conceptos Esquema
Memoria Virtual Memoria Virtual
Solución para acelerar el acceso a los marcos cuando las
tablas de procesos son muy grandes (búsqueda lenta)
Introducción y/o están organizadas en niveles (requiere múltiples Introducción

Paginación accesos a memoria). Paginación

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

Algoritmos de (Memoria Asociativa) para asociar algunas páginas de Algoritmos de


reemplazo reemplazo
uso frecuente con páginas fı́sicas sin necesidad de
Criterios de diseño Criterios de diseño
de paginación acceder a la tabla de páginas. El tamaño de la memoria de paginación

Segmentación asociativa suele ser de 8 a 32 entradas. Segmentación

Proporción de encuentros: Proporción de accesos a la


Memoria Asociativa que son exitosos (la Página Virtual
buscada se encuentra en la Memoria).

Memoria Asociativa Páginas invertidas


Asignación del manejador de memoria Conceptos
Memoria Virtual Memoria Virtual
En sistemas de direccionamiento por 64 bits (20 Tb=
264 ), el número de páginas de (p.ej) 4 KB es 252 . Es
Introducción Introducción impensable poder mantener tablas de páginas de esa
Paginación Paginación longitud, mayor que la memoria fı́sica de la mayorı́a de
Memoria
Asociativa
Memoria
Asociativa
los sistemas.
Conceptos
Páginas invertidas
En esos sistemas, el número de marcos fı́sicos es
Esquema
Asignación del
manejador de
Conceptos sustancialmente menor, lo que permite organizar la
memoria Algoritmos de
reemplazo
tabla de entradas alrededor de la memoria fı́sica en
Páginas invertidas
Criterios de diseño lugar de la memoria virtual (IBM S/38, HP Spectrum).
Algoritmos de
de paginación
reemplazo La tabla de páginas ahora tiene tantas entradas como
Segmentación
Criterios de diseño
de paginación
páginas fı́sicas (marcos), y cada entrada contiene la
Segmentación
dirección virtual que está utilizando dicha página.
Se utiliza siempre con una memoria asociativa.
Si una dirección virtual no se encuentra en la tabla
invertida, se hace una búsqueda en una tabla
convencional, que puede estar en memoria o en disco.
Algoritmos de reemplazo Algoritmos de reemplazo
Conceptos FIFO
Memoria Virtual Memoria Virtual

Cada entrada de la tabla tiene un registro asociado con


el instante de carga de la página, o (b) el SO mantiene
Introducción Introducción
la tabla de páginas en orden de antigüedad (FIFO)
Paginación Paginación

Memoria Memoria Cuando se produce un fallo de página y no hay marcos


Asociativa
Tras un fallo de página, el SO debe elegir qué página de Asociativa
libres, se intercambia a disco la página que lleve más
Páginas invertidas Páginas invertidas
memoria deber ser intercambiada disco para hacer sitio tiempo en la tabla.
Algoritmos de Algoritmos de
reemplazo a la nueva página que se está solicitando. reemplazo
Conceptos Conceptos
FIFO Criterio general: eliminar páginas poco usadas. FIFO
Segunda oportunidad Segunda oportunidad
Del reloj Del reloj
Óptimo Óptimo
NRU NRU
LRU LRU
NFU NFU
NFU con maduración NFU con maduración

Criterios de diseño Criterios de diseño


de paginación de paginación

Segmentación Segmentación

Algoritmos de reemplazo Algoritmos de reemplazo


Segunda oportunidad Del reloj
Memoria Virtual Memoria Virtual
Es una modificación del FIFO, que consiste en revisar el
bit de Referencia de la entrada más antigua: si es un 1,
Introducción Introducción
se pone a 0 y se sitúa al final de la cola de páginas. Ası́ Las páginas se mantienen en una cola circular, con un
Paginación Paginación
sucesivamente hasta que se encuentre una página no apuntador a la páginas más antigua. Si hay un fallo y
Memoria Memoria
Asociativa referenciada. Asociativa R=0, la página se retira y se avanza el apuntador. Si
Páginas invertidas Páginas invertidas R=1 se limpia R se avanza hasta encontrar una página
Algoritmos de Algoritmos de con R=0.
reemplazo reemplazo
Conceptos
FIFO
Conceptos
FIFO
Es tan sólo una implementación alternativa del
Segunda oportunidad
Del reloj
Segunda oportunidad
Del reloj
algoritmo de la segunda oportunidad, más eficiente por
Óptimo
NRU
Óptimo
NRU
no requerir movimiento de páginas en la tabla de
LRU
NFU
LRU
NFU páginas. Son los punteros los que se desplazan, no las
NFU con maduración NFU con maduración
entradas de la tabla.
Criterios de diseño Criterios de diseño
de paginación de paginació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

Criterios de diseño Criterios de diseño


de paginación de paginación

Segmentación Segmentación

Algoritmos de reemplazo Algoritmos de reemplazo


NRU (No Recently Used) LRU (Last Recently Used)
Memoria Virtual Utiliza los bits de Referencia (R) y Modificado (M) de las Memoria Virtual
entradas de la tabla de páginas. Se definen cuatro clases de
páginas.
Introducción Clase 0: Páginas no referenciadas ni modificadas (R=0,M=0). Introducció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

Criterios de diseño Criterios de diseño


de paginación de paginació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

Algoritmos de reemplazo Diseño de paginación


NFU con maduración Asig. de marcos en sist. monoprogramados
Memoria Virtual Memoria Virtual
Solución al problema de memoria: Maduración.
Se activa un contador software por cada página. Se asignan páginas al SO y las restantes páginas libres
Introducción Introducción
En cada interrupción de reloj se desplaza el contador un
Paginación Paginación se van asignando tras las correspondientes fallos de
bit a la derecha y luego se suma el bit R al bit más
Memoria significativo del contador. Memoria página a las páginas del proceso
Asociativa Asociativa

Páginas invertidas Páginas invertidas


Una vez llenas todas las páginas, el manejador utiliza
Algoritmos de Algoritmos de
uno de los algoritmos de asignación por demanda para
reemplazo
Conceptos
reemplazo
intercambiar páginas de la memoria y habilitar huecos
Criterios de diseño
FIFO
Segunda oportunidad de paginación para las nuevas páginas.
Del reloj Asignación de marcos
Óptimo en sistemas
monoprogramados
Variación: el SO reserva parte de su espacio (libre) para
NRU
LRU
Número de marcos
Asignación de marcos
apoyar la paginación. El espacio reservado sirve para
NFU en sistemas
NFU con maduración multiprogramados alamacenar temporalmente la página entrante mientras
Asignación global o
Criterios de diseño
de paginación
local
Hiperpaginación
se selecciona la página que se va a intercambiar.
(Trashing)
Segmentación Tamaño de página
Área de
almacenamiento en
disco
Administración de
fallos de página
Administración de
fallos de página

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

Paginación Lı́mite inferior = imax + omax (1 + nmax ) Paginación


Asignación proporcional: El número de marcos
Memoria donde: Memoria
asignados a un proceso es proporcional a su tamaño. Si
Asociativa
imax : Número máximo de palabras que pueden
Asociativa si es el tamaño de memoria virtual solicitado por le
Páginas invertidas
componer una instrucción.
Páginas invertidas
proceso pi , entonces el número de marcos asignados al
Algoritmos de Algoritmos de
reemplazo omax : Número máximo de operandos que puede reemplazo proceso pi , ai , de entre los m marcos del sistema será:
Criterios de diseño
necesitar una instrucción. Criterios de diseño si
de paginación nmax : Numero máximo de referencias indirectas a de paginación max(ai = m P , número mı́nimo de marcos)
Asignación de marcos Asignación de marcos si
en sistemas
monoprogramados
memoria necesarias para extraer los datos empleados en sistemas
monoprogramados
Número de marcos por la instrucción que más referencias utilice. Número de marcos
Si varı́a el nivel de multiprogramación se recalcula (a la
Asignación de marcos Asignación de marcos
en sistemas
multiprogramados
Si hay indirección múltiple, se debe limitar el número de en sistemas
multiprogramados alta o a la baja) el número de marcos asignados a cada
Asignación global o
local
referencias indirectas, de modo que si se supera se produzca Asignación global o
local proceso.
Hiperpaginación
(Trashing)
una trampa al SO. Hiperpaginación
(Trashing) Asignación con prioridades: El número de marcos
Tamaño de página Ejemplo: Ej. PDP-11 tiene instrucciones de dos palabras con Tamaño de página
Área de
almacenamiento en 2 operandos que pueden estar direccionados indirectamente
Área de
almacenamiento en
asignados a un proceso no depende del tamaño del
disco disco
Administración de (1 nivel): Lı́mite inferior = 2 + 2 × (1 + 1) = 6marcos Administración de mismo sino de su prioridad.
fallos de página fallos de página
Administración de Administración de
fallos de página fallos de página

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

La hiperpaginación se limita si se limita el número de Razones para escoger un tamaño pequeño:


Introducción marcos que el proceso puede utilizar (Asignación local), Introducción Reduce la fragmentación interna.
Paginación y si se asigna a cada proceso un número de marcos Paginación Favorece la localidad (lo que se carga en memoria se
Memoria suficiente. Memoria ajusta a lo que se necesita).
Asociativa Asociativa
Problema: Cómo calcular el número suficiente de Razones para escoger un tamaño grande:
Páginas invertidas Páginas invertidas
marcos que un proceso necesita. Reduce el tamaño de la tabla de páginas (sólo el 1% del
Algoritmos de Algoritmos de
reemplazo reemplazo tiempo de Lectura/Escrituras de/a disco, se debe a la
Criterios de diseño
Para calcular el tamaño del conjunto de trabajo, se Criterios de diseño transferencia, el 99% son los tiempos de latencia y
de paginación
Asignación de marcos
utiliza el modelo de conjunto de trabajo, basado en de paginación
Asignación de marcos
posicionamiento).
en sistemas
monoprogramados el supuesto de localidad, que dice que en la ejecución en sistemas
monoprogramados Reduce el número de fallos de página.
Número de marcos Número de marcos
Asignación de marcos de un proceso, las páginas que se utilizan en cada Asignación de marcos No hay acuerdo:
en sistemas en sistemas
multiprogramados
Asignación global o
momento se pueden agrupar en grupos que varı́an a lo multiprogramados
Asignación global o
Intel 80386: 4Kb
local local
Hiperpaginación largo de la ejecución del proceso. Ej: una llamada a una Hiperpaginación Motorola 68030: variable entre 256 bytes y 32Kb
(Trashing) (Trashing)
Tamaño de página función provoca un cambio de localidad. Tamaño de página IBM/370: 2 ó 4Kb
Área de Área de
almacenamiento en almacenamiento en
disco disco
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
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

Páginas invertidas Páginas invertidas

Algoritmos de
Las direcciones fı́sicas son de 24 bits, con las páginas Algoritmos de
reemplazo alineadas con fronteras de 64 bytes reemplazo

Criterios de diseño Criterios de diseño


de paginación La dirección virtual en MULTICS es: de paginación

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)

También podría gustarte