El subsistema de Memoria

Anuncio
Arquitectura de Computadores
El subsistema de Memoria
Departament d’Informàtica de Sistemes i Computadors
E.P.S.Alcoi
Arquitectura de Computadores y Sistemas Operativos
1
Bloque Temático II: Arquitectura de
Computadores
ÖTema 3: Introducción a la arquitectura de
un computador
ÖTema 4: Procesadores segmentados
ÖTema 5: El subsistema de memoria
ÖTema 6: El subsistema de Entrada/Salida
ÖTema 7: Computadores Superescalares
ÖTema 8: Multiprocesadores
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
2
1
Arquitectura de Computadores
Gestión de la Memoria
ÖGestión de la memoria
ÖMemoria Virtual
Arquitectura de Computadores y Sistemas Operativos
3
Gestión de la Memoria
Ö Subdivisión de la memoria para hacer sitio a
varios procesos.
Ö Hace falta repartir eficientemente la memoria
para introducir tantos procesos como sea
posible.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
4
2
Arquitectura de Computadores
Requisitos de la gestión de
memoria
Ö Reubicación:
• El programador no conoce qué otros programas
residirán en la memoria en el momento de la
ejecución.
• Mientras que se está ejecutando el programa,
puede que se descargue en el disco y que vuelva a
la memoria principal, pero en una ubicación distinta
a la anterior (reubicación).
• Se deben traducir las referencias a la memoria
encontradas en el código del programa a las
direcciones físicas reales.
Arquitectura de Computadores y Sistemas Operativos
Información
de control
del proceso
Punto
de entrada
al programa
5
Bloque de control de proceso
Programa
Instrucción
de bifurcación
Direcciones
ascendentes
Referencia
de datos
Datos
Cima actual
de pila
Pila
Figura 7.1. Requisitos de dirección para un proceso.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
6
3
Arquitectura de Computadores
Requisitos de la gestión de
memoria
Ö Protección:
• El código de un proceso no puede hacer
referencia a posiciones de memoria de otros
procesos sin permiso.
• Es imposible comprobar las direcciones absolutas
de los programas, puesto que se desconoce la
ubicación de un programa en la memoria principal.
• Debe comprobarse durante la ejecución:
# El sistema operativo no puede anticiparse a todas
las referencias a la memoria que hará un programa.
Arquitectura de Computadores y Sistemas Operativos
7
Requisitos de la gestión de
memoria
Ö Compartimiento:
• Permite el acceso de varios procesos a la misma
zona de la memoria principal.
• Es mejor permitir a cada proceso (persona) que
acceda a la misma copia del programa, en lugar
de tener cada uno su propia copia aparte.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
8
4
Arquitectura de Computadores
Requisitos de la gestión de
memoria
Ö Organización lógica:
• La mayoría de los programas se organizan en
módulos.
• Los módulos pueden escribirse y compilarse
independientemente.
• Pueden otorgarse distintos grados de protección
(sólo lectura, sólo ejecución) a los módulos.
• Compartir módulos.
Arquitectura de Computadores y Sistemas Operativos
9
Requisitos de la gestión de
memoria
Ö Organización física:
• La memoria disponible para un programa y sus
datos puede ser insuficiente:
# La superposición permite que varios módulos sean
asignados a la misma región de memoria.
• El programador no conoce cuánto espacio habrá
disponible.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
10
5
Arquitectura de Computadores
Particiones estáticas
Ö Particiones de igual tamaño:
• Cualquier proceso cuyo tamaño sea menor o igual
que el tamaño de la partición puede cargarse en
cualquier partición libre.
• Si todas las particiones están ocupadas, el
sistema operativo puede sacar un proceso de una
partición.
• Un programa puede que no se ajuste a una
partición. El programador debe diseñar el
programa mediante superposiciones.
Arquitectura de Computadores y Sistemas Operativos
11
Particiones estáticas
Ö El uso de la memoria principal es ineficiente.
Cualquier programa, sin importar lo pequeño que
sea, ocupará una partición completa. Este
fenómeno se denomina fragmentación interna.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
12
6
Arquitectura de Computadores
Sistema operativo
8M
8M
Sistema operativo
8M
2M
4M
6M
8M
8M
8M
8M
8M
12
M
8M
8M
16
M
8M
(a) Particiones de igual
tamaño
(a) Particiones de distinto
tamaño
Figura 7.2. Ejemplo de partición estática en una memoria de
64Mb.
Arquitectura de Computadores y Sistemas Operativos
13
Algoritmo de ubicación con
particiones
Ö Particiones de igual tamaño:
• Puesto que todas las particiones son de igual
tamaño, no importa la partición que se use.
Ö Particiones de distintos tamaños:
• Pueden asignar cada proceso a la partición más
pequeña en la que quepa.
• Hace falta una cola para cada partición.
• Los procesos están asignados de forma que se
minimiza la memoria desaprovechada dentro de
cada partición (se minimiza la fragmentación
interna)
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
14
7
Arquitectura de Computadores
Sistema
operativo
Sistema
operativo
Procesos
nuevos
Procesos
nuevos
(a) Una cola de procesos por partición
(b) Cola única de procesos
Figura 7.3. Asignación de memoria en partición estática.
Arquitectura de Computadores y Sistemas Operativos
15
Particiones dinámicas
Ö Las particiones son variables en número y
longitud.
Ö Al proceso se le asigna exactamente tanta
memoria como necesite.
Ö Finalmente, hay varios huecos en la memoria.
Este fenómeno se denomina fragmentación
externa.
Ö Se debe usar la compactación para desplazar los
procesos que estén contiguos, de forma que toda
la memoria libre quede junta en un bloque.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
16
8
Arquitectura de Computadores
Sistema
operativo
8M
Sistema
operativo
Sistema
operativo
Proceso 1
20M
56M
Sistema
operativo
Proceso 1
20M
Proceso 1
20M
Proceso 2
14M
Proceso 2
14M
Proceso 3
18M
36M
22M
4M
(b)
(a)
(c)
(d)
Figura 7.4. Efectos de la partición dinámica.
Arquitectura de Computadores y Sistemas Operativos
Sistema
operativo
Proceso 1
Sistema
operativo
20M
Proceso 1
17
Sistema
operativo
Sistema
operativo
Proceso 2
20M
14M
20M
6M
Proceso 4
8M
Proceso 4
8M
Proceso 4
14M
6M
6M
Proceso 3
18M
Proceso 3
Proceso 3
4M
4M
(e)
18M
(f)
18M
6M
Proceso 3
18M
4M
4M
(g)
8M
(h)
Figura 7.4. Efectos de la partición dinámica.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
18
9
Arquitectura de Computadores
Algoritmo de ubicación con
particiones dinámicas
Ö El sistema operativo debe decidir qué bloque libre se
tiene que asignar al proceso.
Ö Algoritmo del mejor ajuste (best-fit):
• Elige el bloque de tamaño más próximo al solicitado.
• Proporciona en general los peores resultados.
• Puesto que este algoritmo busca el hueco más
pequeño para el proceso, garantiza que el fragmento
que se deja es lo más pequeño posible y, por lo tanto,
se debe compactar más frecuentemente.
Arquitectura de Computadores y Sistemas Operativos
19
Algoritmo de ubicación con
particiones dinámicas
Ö Algoritmo del primer ajuste (first-fit):
• Es más rápido.
• Normalmente habrá varios procesos cargados en el
extremo inicial de la memoria, que será necesario
recorrer cuando se intente encontrar un bloque libre (el
puntero en memoria queda en la posición en la que se
ha ubicado el último bloque en memoria por lo que, en
el algoritmo first-fit, hay que volver a recorrer la
memoria desde el inicio).
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
20
10
Arquitectura de Computadores
Algoritmo de ubicación con
particiones dinámicas
Ö Algoritmo del siguiente ajuste (next-fit):
• Lleva frecuentemente a la asignación de un
bloque de memoria de la última ubicación, donde
se encuentra el bloque más grande.
• El bloque de memoria más grande se divide en
fragmentos pequeños.
• Hará falta la compactación para obtener un bloque
de memoria grande al final del espacio de
memoria.
Arquitectura de Computadores y Sistemas Operativos
21
8M
12M
8M
Primer ajuste
12M
22M
6M
Mejor
ajuste
Último bloque
asignado (14K)
18M
2M
8M
8M
6M
6M
Bloque asignado
14M
Bloque libre
14M
Siguiente ajuste
36M
20M
(a) Antes
(b)
Después
Figura 7.5. Ejemplo de una configuración de memoria antes y después de asignar
un bloque de 16 Mbytes.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
22
11
Arquitectura de Computadores
Sistema de colegas
Ö El espacio entero disponible para la asignación se trata
como un solo bloque de tamaño 2U
Ö Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U,
entonces el bloque entero se asigna:
• En otro caso, el bloque se divide en dos colegas de igual
tamaño.
• Este proceso continúa hasta que el bloque más pequeño sea
mayor o igual que s.
Arquitectura de Computadores y Sistemas Operativos
23
1 bloque de
1 megabyte
Solicitud de 100K
Solicitud de 240K
Solicitud de 64K
Solicitud de 256K
Liberación de B
Liberación de A
Solicitud de 75K
Liberación de C
Liberación de E
Liberación de D
Figura 7.6. Ejemplo del sistema de colegas.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
24
12
Arquitectura de Computadores
Figura 7.7. Representación en árbol del sistema de colegas.
Arquitectura de Computadores y Sistemas Operativos
25
Reubicación
Ö Cuando el proceso se carga en la memoria, se determina
la ubicación real (absoluta) de la memoria.
Ö Un proceso puede ocupar diferentes particiones, lo que
significa diferentes posiciones absolutas de la memoria
durante su ejecución (a partir de la carga).
Ö La compactación también hará que un programa ocupe
una partición distinta, lo que significa que las ubicaciones
absolutas de la memoria cambien.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
26
13
Arquitectura de Computadores
Direcciones
Ö Dirección lógica:
• Es una referencia a una posición de memoria
independiente de la asignación actual de datos a la
memoria.
• Se debe hacer una traducción a una dirección física.
Ö Dirección relativa:
• La dirección se expresa como una posición relativa a
algún punto conocido.
Ö Dirección física:
• La dirección absoluta o la posición real en la memoria
principal.
Arquitectura de Computadores y Sistemas Operativos
27
Dirección relativa
Bloque de
control de
proceso
Registro base
Programa
Sumador
Registro límite
Comparador
Interrupción al
sistema operativo
Dirección
absoluta
Datos
Pila
Imagen de un proceso
en la memoria
principal
Figura 7.8. Soporte de hardware para la reubicación.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
28
14
Arquitectura de Computadores
Registros utilizados durante la
ejecución
Ö Registro base:
• Se carga con la dirección en la memoria principal
del proceso.
Ö Registro límite:
• Indica la posición final del programa.
Ö Estos valores deben asignarse cuando se carga
el programa y cuando se carga el proceso.
Arquitectura de Computadores y Sistemas Operativos
29
Registros utilizados durante la
ejecución
Ö Se añade el valor del registro base a la dirección
relativa para obtener una dirección absoluta.
Ö La dirección obtenida se compara con el valor
del registro límite.
Ö Si la dirección no está dentro de los límites, se
generará una interrupción en el sistema
operativo.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
30
15
Arquitectura de Computadores
Paginación
Ö La memoria principal se encuentra dividida en trozos
iguales de tamaño fijo y cada proceso en pequeños trozos
de tamaño fijo.
Ö Los trozos del proceso se denominan páginas y los trozos
libres de memoria se denominan marcos.
Ö El sistema operativo mantiene una tabla de páginas para
cada proceso:
• Muestra la posición del marco de cada página del
proceso.
• La dirección de la memoria consta de un número de
página y de un desplazamiento dentro de la página.
Arquitectura de Computadores y Sistemas Operativos
Número
de marco
31
Memoria principal
Memoria principal
Memoria principal
(a) Quince marcos libres
(b) Carga del proceso A
(c) Carga del proceso B
Figura 7.9. Asignación de páginas de procesos a marcos libres.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
32
16
Arquitectura de Computadores
Memoria principal
Memoria principal
Memoria principal
(d) Carga del proceso C
(e) Descarga del proceso B
(f) Carga del proceso D
Figura 7.9. Asignación de páginas de procesos a marcos libres.
Arquitectura de Computadores y Sistemas Operativos
33
Tablas de páginas
Tabla de
páginas del
proceso A
Tabla de
páginas del
proceso B
Tabla de
páginas del
proceso C
Lista de
marcos
libres
Tabla de
páginas del
proceso D
Figura 7.10. Estructuras de datos para el ejemplo de la Figura 7.9 en el instante de
tiempo (f).
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
34
17
Arquitectura de Computadores
Segmentación
Ö No es necesario que todos los segmentos de todos los
programas tengan la misma longitud.
Ö Existe una longitud máxima de segmento.
Ö Un dirección lógica segmentada consta de dos partes, un
número de segmento y un desplazamiento.
Ö Como consecuencia del empleo de segmentos de distinto
tamaño, la segmentación resulta similar a la partición
dinámica.
Arquitectura de Computadores y Sistemas Operativos
35
Gestión de la Memoria
ÖGestión de la memoria
ÖMemoria Virtual
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
36
18
Arquitectura de Computadores
Estructuras de hardware y de control
Ö Todas las referencias a la memoria se traducirán
dinámicamente a direcciones físicas durante la ejecución:
• Un proceso puede cargarse y descargarse de la
memoria principal de tal forma que ocupe regiones
diferentes.
Ö Un proceso puede dividirse en varias partes y no es
necesario que estas partes se encuentren contiguas en la
memoria principal durante la ejecución:
• No será necesario que todas las páginas o todos los
segmentos de un proceso estén en la memoria durante
la ejecución.
Arquitectura de Computadores y Sistemas Operativos
37
Ejecución de un programa
Ö El sistema operativo comienza trayendo sólo unos
pocos fragmentos del programa.
Ö El conjunto residente es la parte de un proceso que
está realmente en la memoria principal.
Ö Si el procesador encuentra una dirección lógica que no
está en la memoria principal, genera una interrupción
que indica un fallo de acceso a la memoria.
Ö El sistema operativo pone al proceso interrumpido en
estado Bloqueado.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
38
19
Arquitectura de Computadores
Ejecución de un programa
Ö El sistema operativo necesita traer a la memoria
principal el fragmento del proceso que contiene la
dirección lógica que provocó el fallo de acceso:
• El sistema operativo emite una solicitud de Lectura
de E/S al disco.
• El sistema operativo puede expedir otro proceso
para que se ejecute mientras realiza la operación
de E/S.
• Una vez que el fragmento deseado se ha traído a
la memoria principal y se ha emitido la interrupción
de E/S, se devuelve el control al sistema operativo,
que coloca el proceso afectado en el estado de
Listo.
Arquitectura de Computadores y Sistemas Operativos
39
Ventajas de dividir un proceso
ÖSe pueden mantener más procesos en la
memoria principal:
• Se cargan sólo algunos fragmentos de un
proceso particular.
• Con tantos procesos en la memoria principal es
muy probable que uno de los procesos esté en
estado Listo en un instante determinado.
ÖEs posible que un proceso sea más grande que
toda la memoria principal.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
40
20
Arquitectura de Computadores
Tipos de memoria
ÖMemoria real:
• Memoria principal.
ÖMemoria virtual:
• Memoria situada en el disco.
• Permite una multiprogramación muy efectiva y
releva al usuario de las rígidas e innecesarias
restricciones de la memoria principal.
Arquitectura de Computadores y Sistemas Operativos
41
Hiperpaginación
ÖEl sistema operativo expulsa un fragmento de un
proceso justo antes de ser usado.
ÖEl procesador consume más tiempo
intercambiando fragmentos que ejecutando
instrucciones de usuario.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
42
21
Arquitectura de Computadores
Principio de cercanía
Ö Las referencias a los datos y al programa dentro
de un proceso tienden a agruparse.
Ö Durante cortos periodos de tiempo se
necesitarán sólo unos pocos fragmentos de un
proceso.
Ö Sería posible hacer predicciones inteligentes
sobre qué fragmentos de un proceso se
necesitarán en un futuro cercano.
Ö El principio de cercanía sugiere que los
esquemas de memoria virtual pueden funcionar
eficazmente.
Arquitectura de Computadores y Sistemas Operativos
43
Soportes de la memoria virtual
ÖTiene que existir un soporte de hardware para
la paginación y la segmentación.
ÖEl sistema operativo debe incluir un software
para gestionar el movimiento de páginas o
segmentos entre memoria secundaria y
memoria principal.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
44
22
Arquitectura de Computadores
Paginación
ÖCada proceso tiene su propia tabla de página.
ÖCada entrada de la tabla de páginas contiene el
número de marco de la página correspondiente
en la memoria principal.
ÖSe necesita un bit para indicar si la página
correspondiente está presente en la memoria
principal o no lo está.
Arquitectura de Computadores y Sistemas Operativos
45
El bit de modificación en la tabla de
páginas
ÖOtro bit de control necesario en la entrada de la
tabla de páginas es el bit de modificación para
indicar si el contenido de la página se ha
alterado desde que la página se cargó en la
memoria principal.
ÖSi no ha habido cambios, no es necesario
escribir la página cuando sea sustituida en el
marco que ocupa actualmente.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
46
23
Arquitectura de Computadores
Entradas de la tabla de páginas
Dirección virtual
Número de página
Desplazamiento
Entrada de la tabla de páginas
PP M
M Otros
Otrosbits
bitsde
decontrol
control
Número
Númerode
demarco
marco
(a) Sólo paginación
Figura 8.2. Formatos típicos de gestión de memoria.
Arquitectura de Computadores y Sistemas Operativos
47
Dirección virtual
Despla-
Despla-
N.º marco zamiento
N.º pág. zamiento
Registro
Puntero a tabla
de páginas
N.º página
Tabla de páginas
Desplazamiento
Marco
de
página
N.º marco
Programa
Mecanismo de paginación
Memoria principal
Figura 8.3. Traducción de direcciones en un sistema de paginación.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
48
24
Arquitectura de Computadores
Tablas de páginas
ÖLa tabla de páginas completa puede ocupar una
cantidad enorme de memoria principal.
ÖPara solucionar este problema, las tablas de
páginas también se almacenan en la memoria
virtual.
ÖCuando un proceso se está ejecutando, al
menos una parte de su tabla de páginas se
encuentra en la memoria principal.
Arquitectura de Computadores y Sistemas Operativos
49
Buffer de traducción adelantada
Ö Cada referencia a la memoria virtual puede generar
dos accesos a la memoria:
• Uno para obtener la entrada de la tabla de
páginas correspondiente.
• Otro para obtener el dato deseado.
Ö Para solucionar este problema, los esquemas de
memoria virtual hacen uso de un cache especial
para las entradas de la tabla de páginas:
• Se trata de la buffer de traducción adelantada
(TLB, Translation Lookaside Buffer).
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
50
25
Arquitectura de Computadores
Buffer de traducción adelantada
ÖContiene aquellas entradas de la tabla de
páginas usadas hace menos tiempo.
ÖFunciona del mismo modo que una memoria
cache.
Arquitectura de Computadores y Sistemas Operativos
51
Buffer de traducción adelantada
Ö Dada una dirección virtual, el procesador examinará
primero la TLB.
Ö Si la entrada de la tabla de páginas buscada está
presente (un “acierto en la TLB”), se obtiene el número
de marco y se forma la dirección real.
Ö Si la entrada de la tabla de páginas no se encuentra (un
“fallo en la TLB”), el procesador emplea el número de
página como índice para buscar en la tabla de páginas
del proceso y examinar la entrada correspondiente de
la tabla de páginas.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
52
26
Arquitectura de Computadores
Buffer de traducción adelantada
ÖPrimero comprueba que la página esté en la
memoria principal:
• Si no está, se produce un fallo en el acceso a la
memoria, llamado fallo de página.
ÖEl procesador actualiza la TLB para incluir esta
nueva entrada de la tabla de páginas.
Arquitectura de Computadores y Sistemas Operativos
53
Comienzo
La CPU comprueba
la TLB
Volver a la
instrucción que falló
¿Está la entrada
de la tabla de página
en la TLB?
Sí
No
Acceder a la tabla
de páginas
Rutina de gestión
de fallo de página
El SO ordena
a la CPU leer
la página del disco
No
¿Está la página en
memoria principal?
Sí
La CPU activa
el hardware de E/S
Actualizar TLB
La página se
transfiere del disco
a memoria principal
¿Memoria
llena?
No
La CPU genera
La CPU genera
la dirección
física
la dirección física
Sí
Actualizar las tablas
de páginas
Actualizar las tablas
de páginas
Figura 8.8. Funcionamiento de la paginación con buffer de traducción
adelantada (TLB) [FUTH87].
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
54
27
Arquitectura de Computadores
Memoria
secundaria
Memoria principal
Dirección virtual
DesplaDesplaN.º
Nº.pág.
Pág. zamiento
zamiento
Buffer de
traducción adelantada
Acierto de TLB
Desplazamiento
Cargar
página
Tabla de páginas
Fallo de TLB
DesplaN.º marco zamiento
Dirección real
Fallo de página
Figura 8.7. Uso de un Buffer de Traducción Adelantada.
Arquitectura de Computadores y Sistemas Operativos
55
Tamaño de página
Ö Cuanto menor sea el tamaño de página, menor será la
cantidad de fragmentación interna.
Ö Cuanto menor sea la página, mayor será el número de
páginas que se necesitan por proceso.
Ö Un número mayor de páginas por proceso significa que las
tablas de páginas serán mayores.
Ö Esto puede significar que una gran parte de las tablas de
páginas de los procesos activos deben estar en la
memoria virtual.
Ö La memoria secundaria está diseñada para transferir
eficazmente los bloques de datos de mayor tamaño, de
manera que es propicia para tamaños de página mayores.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
56
28
Arquitectura de Computadores
Tamaño de página
Ö Si el tamaño de página es muy pequeño, estarán
disponibles en la memoria principal un gran número
de páginas para cada proceso.
Ö Después de un tiempo, todas las páginas de la
memoria contendrán parte de las referencias más
recientes del proceso. La tasa de fallos de página
será menor.
Ö Cuando se incrementa el tamaño de la página, cada
página individual contendrán posiciones cada vez
más distantes de cualquier referencia reciente. La
tasa de fallos será mayor.
57
Tasa de fallos de página
Tasa de fallos de página
Arquitectura de Computadores y Sistemas Operativos
(a) Tamaño de página
(b) Número de marcos de página asignados
P = Tamaño del proceso completo
W = Tamaño del conjunto de trabajo
N = Número total de páginas del proceso
Figura 8.11. Comportamiento típico de la paginación en un programa.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
58
29
Arquitectura de Computadores
Tamaño de página
ÖMúltiples tamaños de página proporcionan la
flexibilidad necesaria para usar una TLB
eficazmente.
ÖLas páginas grandes se pueden utilizar para
traducir instrucciones de programa.
ÖLas páginas de pequeño tamaño se pueden
emplear para las pilas de los hilos.
ÖLa mayoría de los sistemas operativos favorecen
el uso de un solo tipo de página.
Arquitectura de Computadores y Sistemas Operativos
59
Ejemplos de tamaños de páginas
Tabla 8.2. Ejemplos de tamaños de páginas.
Computadora
Atlas
512 palabras de 48 bits
Honeywell-Multics
1.024 palabras de 36 bits
IBM 370/XA y 370/ESA
4 Kbytes
Familia VAX
512 bytes
IBM AS/400
512 bytes
DEC Alpha
8 Kbytes
MIPS
de 4 Kbytes a 16 Mbytes
UltraSPARC
de 8 Kbytes a 4 Mbytes
Pentium
de 4 Kbytes a 4 Mbytes
Power Pc
4 Kbytes
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
Tamaño de página
60
30
Arquitectura de Computadores
Segmentación
ÖLos segmentos pueden ser de distintos
tamaños, incluso de forma dinámica.
ÖSimplifica la gestión de estructuras de datos
crecientes.
ÖPermite modificar y recopilar los programas
independientemente.
ÖSe presta a la compartición entre procesos.
ÖSe presta a la protección.
Arquitectura de Computadores y Sistemas Operativos
61
Tablas de segmentos
Ö Segmento correspondiente de la memoria principal.
Ö Cada entrada de la tabla de segmentos contiene la
longitud del segmento.
Ö Se necesita un bit para indicar si el segmento
correspondiente está presente en la memoria
principal.
Ö Otro bit de control necesario es un bit de
modificación que indique si el contenido del
segmento correspondiente ha sido modificado desde
que se cargó por última vez en la memoria principal.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
62
31
Arquitectura de Computadores
Entradas de las tablas de segmentos
Dirección virtual
Número de segmento
Desplazamiento
Entrada del segmento de tabla
P M Otros bits de control
Longitud
Base de segmento
(b) Sólo segmentación
Figura 8.2. Formatos típicos de gestión de memoria.
Arquitectura de Computadores y Sistemas Operativos
63
Paginación y segmentación
combinadas
Ö La paginación es transparente al programador.
Ö La paginación elimina la fragmentación externa.
Ö La segmentación es visible para el programador.
Ö La segmentación permite gestionar estructuras de
datos que pueden crecer, la modularidad y el
soporte de la compartición y la protección.
Ö Cada segmento se divide en varias páginas de
tamaño fijo.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
64
32
Arquitectura de Computadores
Paginación y segmentación
combinadas
Dirección virtual
Nº. segmento
Número
Número de
de segmento
segmento
DesplaDesplazamiento
zamiento
Número
Número de
de página
página
Entrada de la tabla de segmentos
Otros
Otros bits
bits
de
de control
control
Longitud
Longitud
Base
Base de
de segmento
segmento
Entrada de la tabla de páginas
PP M
M
Otros
Otros bits
bits
de
de control
control
P = Bit de presencia
M = Bit de modificación
Número
Número de
de marco
marco
(c) Segmentación y paginación combinadas
Figura 8.2. Formatos típicos de gestión de memoria.
Arquitectura de Computadores y Sistemas Operativos
Dirección
65
Memoria principal
Distribuidor
Ningún
acceso
permitido
Proceso A
Instrucción
de salto (no
permitida)
Proceso B
Referencia a datos
(permitida)
Proceso C
Referencia a datos
(no permitida)
Figura 8.14. Relaciones de protección entre segmentos.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
66
33
Arquitectura de Computadores
Políticas de lectura
Ö Política de lectura:
• Está relacionada con la decisión de cuándo se debe
cargar una página en la memoria principal.
• Con la paginación por demanda, se trae una página
a la memoria principal sólo cuando se hace
referencia a una posición en dicha página:
# Cuando un proceso se ejecute por primera vez, se
producirán muchos fallos de página.
• Con la paginación previa, se cargan más páginas de
las necesarias:
# Es más eficiente traer a la memoria un número de
páginas contiguas.
Arquitectura de Computadores y Sistemas Operativos
67
Políticas de reemplazo
ÖPolítica de ubicación:
• Qué página se va a reemplazar.
• La página que se va a reemplazar tiene que
ser la que tenga una menor posibilidad de ser
referenciada en un futuro cercano.
• La mayoría de las políticas intentan predecir
el comportamiento futuro en función del
comportamiento pasado.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
68
34
Arquitectura de Computadores
Políticas de reemplazo
ÖBloqueo de marcos:
• Cuando un marco está bloqueado, la página
cargada en ese marco no puede ser
reemplazada.
• La mayoría del núcleo del sistema operativo está
en marcos bloqueados.
• Estructuras de control.
• Buffers de E/S.
• El bloqueo se consigue asociando un bit de
bloqueo a cada marco.
Arquitectura de Computadores y Sistemas Operativos
69
Algoritmos básicos de reemplazo
ÖPolítica óptima:
• Selecciona para reemplazar la página que
tiene que esperar una mayor cantidad de
tiempo hasta que se produzca la
referencia siguiente.
• Es imposible de implementar porque
requiere que el sistema operativo tenga un
conocimiento exacto de los sucesos
futuros.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
70
35
Arquitectura de Computadores
Algoritmos básicos de reemplazo
ÖPolítica de la usada menos recientemente
(LRU):
• Reemplaza la página de memoria que no ha
sido referenciada desde hace más tiempo.
• Debido al principio de cercanía, ésta sería la
página con menor probabilidad de ser
referenciada en un futuro cercano.
• Una solución sería etiquetar cada página
con el momento de su última referencia.
Arquitectura de Computadores y Sistemas Operativos
71
Algoritmos básicos de reemplazo
Ö Política de primera en entrar primera en salir (FIFO):
• Trata los marcos asignados a un proceso como un
buffer circular.
• Las páginas se suprimen de la memoria según la
técnica de turno rotatorio (round-robin).
• Es una de las políticas de reemplazo más sencillas
de implementar.
• Se reemplaza la página que ha estado más tiempo en
la memoria.
• Estas páginas pueden necesitarse de nuevo y en un
plazo de tiempo corto.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
72
36
Arquitectura de Computadores
Algoritmos básicos de reemplazo
Ö Política del reloj:
• Requiere asociar un bit adicional a cada marco,
denominado bit de uso.
• Cuando se carga una página por primera vez en un marco
de memoria, el bit de uso de dicho marco se pone a cero.
• Cuando se hace referencia a la página posteriormente, el
bit de uso se pone a 1.
• Cuando llega el momento de reemplazar una página, el
primer marco encontrado con el bit de uso a 0 es
reemplazado.
• Durante la búsqueda para realizar reemplazos cada bit de
uso a 1 se cambia a 0.
Arquitectura de Computadores y Sistemas Operativos
73
Primer marco en el buffer
circular de marcos que son
candidatos para el reemplazo
Página 9
uso = 1
Página 19
uso = 1
Página 1
uso = 1
Puntero al
siguiente
marco
Página 222
uso = 0
Página 45
uso = 1
Página 191
uso = 1
Página 556
uso = 0
Página 33
uso = 1
Página 67
uso = 1
Página 13
uso = 0
(a) Estado del buffer justo antes del reemplazo de página
Figura 8.16. Ejemplo de funcionamiento de la política del reloj.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
74
37
Arquitectura de Computadores
Página 9
uso = 1
Página 19
uso = 1
Página 1
uso = 0
Página 45
uso = 0
Página 191
uso = 0
Página 222
uso = 0
Página 727
uso = 0
Página 33
uso = 1
Página 67
uso = 1
Página 13
uso = 0
(b) Estado del buffer justo después del siguiente reemplazo de página
Figura 8.16. Ejemplo de funcionamiento de la política del reloj.
Arquitectura de Computadores y Sistemas Operativos
75
Algoritmos básicos de reemplazo
ÖAlmacenamiento intermedio de páginas:
• La pista de la página reemplazada se asigna a
una de las dos listas siguientes:
# La lista de páginas libres, si la página no ha sido
modificada.
# La lista de páginas modificadas, si lo ha sido.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
76
38
Arquitectura de Computadores
Tamaño del conjunto residente
ÖAsignación fija:
• Otorga a cada proceso un número fijo de
páginas en las que ejecutar.
• Cada vez que se produce un fallo de página en
la ejecución de un proceso, se debe reemplazar
una de las páginas de dicho proceso.
ÖAsignación variable:
• Permite que el número de marcos asignados a
un proceso cambie a lo largo de su vida.
Arquitectura de Computadores y Sistemas Operativos
77
Asignación variable y alcance global
Ö Es la combinación más sencilla de implementar.
Ö Ha sido adoptada por un buen número de
sistemas operativos.
Ö Normalmente el sistema operativo mantiene una
lista de marcos libres.
Ö Cuando se produce un fallo de página, se añade
un marco libre al conjunto residente del proceso.
Ö Cuando no hay marcos libres, el sistema
operativo debe elegir una página que esté en la
memoria para reemplazar.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
78
39
Arquitectura de Computadores
Asignación variable y alcance local
Ö Cuando se carga un nuevo proceso en la
memoria, se le asigna cierto número de
marcos en función del tipo de aplicación, las
necesidades del programa u otros criterios.
Ö Cuando se produce un fallo de página, se
selecciona la página a reemplazar de entre las
del conjunto residente del proceso que sufre el
fallo.
Ö Se vuelve a evaluar la asignación de vez en
cuando.
Arquitectura de Computadores y Sistemas Operativos
79
Políticas de vaciado
ÖVaciado por demanda:
• Una página se escribirá en la memoria
secundaria sólo cuando haya sido elegida para
reemplazarse.
ÖVaciado previo:
• Escribe las páginas modificadas por lotes.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
80
40
Arquitectura de Computadores
Políticas de vaciado
ÖLa mejor solución es incorporar
almacenamiento intermedio de páginas:
• Las páginas reemplazadas pueden situarse en
dos listas:
# Modificadas y no modificadas.
• Las páginas de la lista de modificadas pueden
escribirse periódicamente por lotes.
• Una página de la lista de no modificadas pueden
reclamarse, si se le hace de nuevo referencia o
perderse, cuando se asigna su marco a otra
página.
Arquitectura de Computadores y Sistemas Operativos
81
Control de carga
ÖDetermina el número de procesos que pueden
estar en la memoria principal.
ÖCuando hay pocos procesos residentes en la
memoria, habrá muchas ocasiones en las que
todos los procesos estén bloqueados y se
gastará mucho tiempo en el intercambio.
ÖSi hay demasiados procesos residentes, el
resultado será la hiperpaginación.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
82
41
Arquitectura de Computadores
Suspensión de procesos
ÖSuspender un proceso implica liberar parte de
la memoria que éste estaba ocupando. Hay
varios criterios para suspender procesos:
• Procesos con la prioridad más baja.
• Procesos con fallos de página:
# Este proceso no tiene su conjunto de trabajo en
la memoria principal, por lo que quedará
bloqueado de todas formas.
• Último proceso activado:
# Este es el proceso con menos posibilidades de
tener su conjunto de trabajo residente.
Arquitectura de Computadores y Sistemas Operativos
83
Suspensión de procesos
• Proceso con el conjunto residente más
pequeño:
# Este es el proceso que necesita el menor
esfuerzo futuro para volver a cargar el conjunto
residente.
• El proceso mayor:
# Esta alternativa obtiene la mayor cantidad de
marcos libres.
• Procesos con la mayor ventana de ejecución
restante.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
84
42
Arquitectura de Computadores
Gestión de memoria en UNIX y Solaris
ÖSistema de paginación:
•
•
•
•
Tabla de páginas.
Descriptor de bloques de disco.
Tabla de marcos de página.
Tabla de uso de intercambios.
Arquitectura de Computadores y Sistemas Operativos
85
Estructuras de datos
Copia
Modifi- Refe-
Protec-
Número
de marco
de página
Número
de marco
de página Edad
Edaden es- cación rencia Validez ción
critura
(a) Entrada de la tabla de páginas
Número de dispositivo
de intercambio
Número de bloque
de dispositivo
Tipo de almacenamiento
(b) Descriptor de bloques de disco
Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
86
43
Arquitectura de Computadores
Estructuras de datos
Estado de Contador de Dispositivo Número de Puntero a marco
Número de
marco de página
la página
referencias
lógico Edadbloque
de página
(c) Entrada de la tabla de marcos de página
Contador de
referencias
Página/número
de unidad de
almacenamiento
(d) Entrada de la tabla de utilización del intercambio
Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.
Arquitectura de Computadores y Sistemas Operativos
87
Gestión de memoria en UNIX y Solaris
ÖReemplazo de páginas:
• Es un refinamiento de la política del reloj.
ÖAsignador de memoria del núcleo:
• La mayor parte de estos bloques son
significativamente más pequeños que el
tamaño de página en las máquinas normales.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
88
44
Arquitectura de Computadores
Gestión de memoria en Linux
ÖDirectorio de páginas.
ÖDirectorio intermedio de páginas.
ÖTabla de páginas.
Arquitectura de Computadores y Sistemas Operativos
89
Gestión de memoria en Windows
2000
ÖPaginación en W2K:
• Disponible.
• Reservada.
• Confirmada.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
90
45
Arquitectura de Computadores
Región de 64 Kilobytes
para la asignación
de punteros NULL
(inaccesible)
Región de 2 Gigabytes
para el espacio de
direcciones de usuario
(no reservado, utilizable)
Región de 64 Kilobytes
para la asignación
incorrecta de punteros
(inaccesible)
Región de 2 Gigabytes
para el sistema operativo
(inaccesible)
Figura 8.25. Espacio de direcciones virtuales por defecto en Windows 2000.
Arquitectura de Computadores y Sistemas Operativos
Tema 5: Subsistema de Memoria
91
46
Descargar