Documentos de Académico
Documentos de Profesional
Documentos de Cultura
o Software
Objetivos del sistema de gestión de memoria
código
zona compartida
– Mecanismo de comunicación Mapa proceso 2
entre procesos muy rápido zona priv. 2 (P2)
zona privada 1
zona priv. 2 (P1)
zona compartida
zona privada 2
Objetivos del sistema de gestión de memoria
Problemas:
Requiere asignación no contigua
Si la posición de zona Mapa proceso 1
Memoria
compartida contiene referencia a
otra posición de la zona 2000
compartida, no se puede saber a
zona compartida
qué dirección se refiere puesto
que cada proceso ligero verá esa zona compartida
dirección de forma diferente. 10000 ¿1100 ó 2100?
10100
Mapa proceso 2
Ejemplo: Si el código, que es común,
contiene una bifurcación, no se
1000
podrá determinar a qué dirección
zona compartida
se debe saltar, dependiendo del
proceso que esté ejecutando el
código
lógico físico
Objetivos del sistema de gestión de memoria
Conceptos
Módulo Módulo
• Montaje (o enlace): objeto A objeto B Bibliotecas
– Resuelve referencias entre
módulos objeto
– Resuelve referencias a símbolos Montador
de bibliotecas
– Genera resultado (archivo Fichero
ejecutable), que incluye las ejecutable
bibliotecas usadas
Modelo de memoria de un proceso
Tipos:
Estáticas: el montaje enlaza los módulos
objeto del programa y de las bibliotecas,
dando como resultado un ejecutable Main
autocontenido. Función A
Desventajas: Función B
Código
Proceso de carga:
La rutina de carga y montaje incorpora la biblioteca
correspondiente.
Se ajustan las instrucciones que realizan las referencias a dicho
símbolo, de forma que las próximas referencias accedan al símbolo
de biblioteca correspondiente, sin que sea necesario activar de
nuevo el proceso de montaje de la biblioteca.
Para evitar modificar el código del programa, en este proceso, se
suelen utilizar referencias indirectas mediante una tabla que
recoge todos los símbolos correspondientes a bibliotecas
dinámicas. Hay que tener en cuenta que en algunos S.O. los
segmentos de código ejecutables no son modificables
Modelo de memoria de un proceso
Ventajas:
Desventajas:
Forma de uso :
1. Enlace dinámico implícito: Se especifica en tiempo de
montaje qué biblioteca usar, pero se pospone su carga y
montaje a tiempo de ejecución.
2. Uso explícito:
Ficheros ejecutables
Fichero Ejecutable
0 Número mágico Despl. Tam.
Contador de programa inicial Código 1000 4000
Cabecera
.................... Datos con v.i. 5000 1000
Tabla de secciones Datos sin v.i. ------ 500
1000 ...................... ........ ........
5000
Secciones Datos con valor inicial
................
8000
Tabla de símbolos
Modelo de memoria de un proceso
Variables globales
Estáticas
Se crean al iniciarse programa
Existen durante toda la ejecución del proceso
Dirección fija en memoria y en ejecutable
Ejemplo:
Cada región:
Archivo proyectado
Región asociada al archivo proyectado
Memoria compartida
Región asociada a la zona de memoria compartida
Pilas de threads
Cada pila de thread corresponde con una región.
Estas regiones constan de las mismas características que las asociadas a la pila
del proceso
Modelo de memoria de un proceso
Crear región: Implícitamente al crear mapa inicial (por parte del SO)
o por solicitud del programa en tiempo de ejecución de ejecución
(por ejemplo, al cargar una biblioteca dinámica)
Esquema Hardware
El mapa de proceso se ubica en una zona contigua de la
memoria principal.
Proceso:
El S.O. busca un hueco en memoria de tamaño suficiente para
alojar su mapa de memoria del proceso que comienza.
El S.O. reserva la parte del hueco necesaria y crea en ella el
mapa inicial del proceso
Se establece la función de traducción, de forma que las
direcciones del programa se correspondan con las direcciones
existentes en el hueco asignado.
Hardware requerido:
Registros valla (registro base y registro límite). Estos dos
registros sólo son accesibles en modo privilegiado.
Los registros valla están desocupados cuando el S.O. toma el
control para acceder a todo el mapa de memoria.
Esquema de memoria basados en asignación contigua
Proceso 4
Procesador 10000
Hard. traducción (MMU) 10200
PC
Proceso 7
8 R. límite R. base
15036
4000 21000 Proceso 3
Registro instrucción
NO 20500
21000
LOAD R3, /1500 > +
Proceso 2
22500
SI
25000
Excepción
N
Esquema de memoria basados en asignación contigua
Gestión del SO
El S.O. almacena en el BCP cuáles son los valores de los
registros valla.
Conceptos
La técnica de la MV se usa prácticamente en todos los SSOO
modernos. Esta técnica se basa en transferir información
entre memoria principal y memoria secundaria (por lo
que involucra varios niveles de la jerarquía de memoria)
Ventajas:
Paginación
• Página: Zona contigua de memoria de determinado tamaño.
(Por motivos de eficiencia se suele trabajar siempre con tamaños
potencia de 2. Ej:4 KB.)
• Organización:
— El mapa de memoria del proceso se considera dividido en
páginas.
— La memoria principal se considera dividida en marcos de
página (tamaño de marco = tamaño de página).
— Los marcos contendrán páginas de los procesos en ejecución
— La tabla de páginas (TP) relaciona cada página con el marco
que la contiene. El hardware de traducción (MMU) usa la tabla
de páginas para traducir direcciones lógicas a físicas
— Típicamente la MMU usa dos tablas de páginas (TP):
a) TP del usuario: Por ejemplo, direcciones lógicas que
empiezan por 0
b) TP del sistema: Por ejemplo, direcciones lógicas que
empiezan por 1. Estas sólo se podrán usar en modo
sistema
Memoria virtual
Dirección lógica
Página Byte
Marcos de página
0
1
2
3
Registro base de la TP
(RIED)
T. Páginas Proceso 1
Página 0 Marco 2
Memoria
Página 1 Marco N
Pág. 1 Pr. 2 Marco 0
..............
Pág. P Pr. 2 Marco 1
Página M Marco 3
Pág. 0 Pr. 1 Marco 2
Pág. M Pr. 1 Marco 3
T. Páginas Proceso 2
Pág. 0 Pr. 2 Marco 4
Página 0 Marco 4
............
Página 1 Marco 0
.............. Pág. 1 Pr. 1 Marco N
Página P Marco 1
Registro base de la TP
(RIED) n
0
1
2
3
..
.
Página 1023
Tabla de páginas
primer nivel
Página 0
..
V .
V
Página 1024
V
I
Página 2047
I ..
V .
Página 3071
Dirección lógica
Dirección física
Memoria virtual
Segmentación
Con la paginación la MMU no dispone de información sobre las
regiones de los procesos y sólo entiende de páginas. Por esta
razón, el SO debe mantener una lista de las páginas que
componen cada región, lo que supone varias desventajas:
• Al crear una región hay que cuidar que todas las páginas asociadas
tengan la misma información de control
• Para poder compartir una región es preciso que las entradas de varios
procesos apunten a los mismos marcos
Segmentación: es un esquema HW que intenta dar soporte directo a
las regiones. En él se considera el mapa de memoria como
compuesto por varios segmentos.
Se puede considerar que consisten en una generalización de los
registros valla base y límite, pero usando un par de registros por
cada segmento
Memoria virtual
límite base
NO memoria
> +
SI
Excepción
Memoria virtual
Tabla de segmentos:En este caso, la MMU usa una tabla de
segmentos (TS).
Organización:
El SO mantiene una TS por proceso, de forma que en cada
cambio de contexto se notifica a MMU cuál debe usar
Cada entrada de TS contiene (entre otros):
Registro base y límite del segmento
protección: RWX
Organización:
Entrada en TS apunta a una TP para el segmento.
El espacio del segmento está compuesto de varias
páginas, de forma que su espacio no tiene que ser
contiguo.
Memoria virtual
dirección lógica
s p d tabla de páginas
tabla de segmentos para segmento s
NO memoria
> m d
SI
dirección
Excepción física
Memoria virtual
Valoración:
Política de reemplazos:
Reemplazo local: Sólo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
Reemplazo global: Puede usarse para reemplazo cualquier marco
Algoritmos a estudiar
A. Óptimo
B. FIFO
C. Reloj (o segunda oportunidad)
D. LRU
E. Buffering de páginas
F. Retención de páginas en memoria
Memoria virtual
A) Algoritmo óptimo
B) Algoritmo FIFO
Criterio: se elimina la página que lleva más tiempo residente
Implementación: Fácil
Páginas residentes en orden FIFO –› se expulsa la primera
No requiere hardware especial
En el caso de estrategia local se mantiene una lista de páginas por
cada proceso. En el caso global, basta con una única lista
Problema:
Una página que lleva mucho tiempo residente puede seguir
accediéndose frecuentemente.
Su criterio no se basa en el uso de la página.
Anomalía de Belady: Se pueden encontrar ejemplos en que al
aumentar el número de marcos aumenta el número de fallos de
página
Memoria virtual
Criterio:
Si la página elegida por FIFO no tiene activo el bit Ref, es la página
expulsada
Si lo tiene activo se da 2ª oportunidad antes de expulsar: se desactiva
el bit Ref, se pone página al final de FIFO, se aplica criterio a la
siguiente página
E) Buffering de páginas
Criterio:Esta técnica intenta evitar el problema con las páginas
modificadas que han de ser desalojadas. En este caso, el
tratamiento del fallo de página implica realizar dos accesos a disco,
uno para almacenar la página modificada y para traer la nueva
Implementación:
Mantiene una reserva de marcos libres. Cuando se produce un fallo
de página, siempre se usa un marco libre (es decir, en verdad no hay
reemplazo)
Cuando el número de marcos libres queda por debajo de cierto
umbral se activa un “demonio de paginación”, que aplica
repetidamente el algoritmo de reemplazo:
Páginas no modificadas pasan a lista de marcos libres
Páginas modificadas pasan a lista de marcos modificados: cuando se
escriban a disco pasan a lista de libres; suelen escribirse en tandas (lo que
mejora el rendimiento)
Si se referencia una página mientras está en estas listas: se recupera
directamente de la lista (no hay E/S), lo que puede mejorar el
comportamiento de algoritmos poco eficientes
Memoria virtual
Aplicación:
Se aplica a páginas del propio S.O: si sus páginas están fijas en
memoria, su gestión es más sencilla
También se aplica mientras se hace DMA sobre una página. La
página no será reemplazable hasta que finalice la operación
sobre ella
b) Asignación Dinámica
A) Asignación fija
B) Asignación dinámica
Utilización de la UCP
grado de multiprogramación
Se verán a continuación algunas estrategias de control de la
carga de trabajo:
A. Estrategia del conjunto de Trabajo
B. Estrategia de administración basada en la frecuencia de
fallos de página
C. Estrategia de control de carga para algoritmos de
reemplazo globales
Memoria virtual
A) Estrategia del conjunto de trabajo
Objetivo: Determinar el conjunto de trabajo de cada proceso, es
decir, las páginas usadas por el proceso en las últimas N referencias
Proceso:
Si el conjunto de trabajo decrece se liberan marcos.
Si el conjunto de trabajo crece se asignan nuevos marcos.
Si no hay marcos disponibles se suspenderá algún(os) proceso(s), que
se reactivan cuando haya marcos suficientes
límite superior
límite inferior
número de marcos
Memoria virtual
C) Estrategia de control de carga para algoritmos de reemplazo
globales
Objetivo: Controlar la hiperpaginación utilizando un
algoritmo de control de carga. Se da en algoritmos de
reemplazo global.
Swap
Tabla de páginas Archivo Ejecutable
1ªpág. Cabecera
Código RX A Bloque T (arch.) Bloque T
........................... Código
1ªpág.
Dat.v.i. RW A Bloque U (arch.) Bloque U
Datos con valor inicial
...........................
1ªpág. ................
Dat.no.v.i.
RW A Rellenar con 0
...........................
1ªpág. Bloque S
Pila
RW A Bloque S (swap) Pila
a una posición
de memoria Tabla de páginas Datos con valor inicial
Bloque N
Pila
Archivos proyectados en memoria
POSIX
Proyectar un archivo: mmap
Desproyectar un archivo: munmap
Win32
Proyectar un archivo: 2 pasos:
Crear proyección: CreateFileMapping
void *mmap(void *direc, size_t lon, int prot, int indic, int desc, off_t
desp);