La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructura y Tecnolología de Ordenadores

Presentaciones similares


Presentación del tema: "Estructura y Tecnolología de Ordenadores"— Transcripción de la presentación:

1 Estructura y Tecnolología de Ordenadores
Memoria Virtual Estructura y Tecnolología de Ordenadores

2 Memoria virtual 8. Similitud entre las distintas Jerarquías
1. Introducción 2. Paginación 3. Segmentación 4. Segmentación paginada 5. Paginación por demanda y anticipada 6. Políticas de reemplazo 7. Política de asignación de marcos de página 8. Similitud entre las distintas Jerarquías Estructura y Tecnología de Ordenadores ETSII- ULL 2004

3 1. Introducción Concepto de Memoria Virtual: Método para conseguir que la suma de los espacios de pila, datos y texto de un programa pueda ser mayor que el tamaño físico de la memoria disponible para él. (Fotheringham, 1961) Cada proceso se asigna un área de direcciones contiguo. El SO mantiene en memoria solamente las partes del programa que se están utilizando y mantiene en disco (intercambiadas) el resto. Sirve para sistemas mono y multiprogramados Permite optimizar el uso de la memoria, al mantener 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

4 1. Introducción Ventajas:
Aumento del grado de multiprogramación. Por tanto, aumento en el rendimiento del sistema Posibilidad de ejecutar programas más grandes que la MV disponible El uso de la MV no implica que se acelere la ejecución del programa (más bien al contrario, debido a la sobrecarga asociada a los movimientos de información entre niveles de la jerarquía). Este mecanismo no es apropiado para sistemas de tiempo real.

5 2. Paginación La memoria física se divide en bloques de tamaño fijo que llamamos marcos. La memoria virtual se divide en bloques del mismo tamaño llamados páginas. Al ejecutar un proceso se cargan sus páginas en los marcos disponibles. La vinculación de direcciones requiere soporte por hardware- MMU (Manejador de Memoria)

6 2. 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): TP del usuario: Por ejemplo, direcciones lógicas que empiezan por 0 TP del sistema: Por ejemplo, direcciones lógicas que empiezan por 1. Estas sólo se podrán usar en modo sistema

7 2. Paginación Dirección física dirección lógica Memoria CPU p d f d p
Página (virtual) f Página (física) -marco- desplazamiento Tabla de páginas

8

9 2. Paginación

10 2. Paginación La paginación remedia la fragmentación externa, pero no la fragmentación interna. Un intento de acceso a una página virtual que no esté asociada a un marco produce un señalamiento al SO (trap), llamado fallo de página. Como respuesta al fallo de página, el SO: 1. selecciona una página poco usada del proceso 2. Intercambia la página a disco 3. Asigna el marco de la página liberada a la página virtual que se intenta acceder Esto supone una forma de reasignación dinámica por bloques de las direcciones de memoria del proceso

11 2. Paginación S. O. Memoria secundaria Memoria principal Tabla de
La página está en memoria auxiliar S. O. 3 Programa Memoria secundaria Referencia 2 1 Excepción LOAD M 6 Memoria principal Reiniciar la instr. Tabla de páginas 5 Cargar la página que falla Actualizar la tabla de páginas Marco libre 4

12 Estructura de una entrada de la Tabla de Procesos
2. Paginación Tabla de Páginas: Son tablas que contienen (para cada proceso) el número de marco que corresponde a cada página virtual del proceso Estructura de una entrada de la Tabla de Procesos Número de marco bit presente (1) ausente (0) protección (permisos) del marco (RWX) bit Modificado (1) o no (0) -lo usa el intercambiador para saber si debe copiar el marco a disco o no- Caching Desactivado/Activado No usado

13 Tamaño de página: La elección de tamaño de página está condicionada por diversos factores, entre los que hay que conseguir equilibrio: Potencia de 2 y múltiplo del tamaño del bloque de disco mejor pequeño por: Menor fragmentación Se ajusta mejor al conjunto de trabajo mejor grande por: Tablas más pequeñas Mejor rendimiento de dispositivos de E/S Compromiso (entre 2K y 16K)

14 1 1 bit presente/ausente página virtual Desplazamiento (12 bits)
Tamaño de página 1 1 010 1 bit presente/ausente 1 001 1 página virtual 2 110 1 3 000 1 4 100 1 5 011 1 Desplazamiento (12 bits) 6 000 7 000 8 000 página física 9 101 1 10 000 11 111 1 12 000 13 000 14 000 15 000 1 1 1

15 Tamaño de página Comportamiento típico de la paginación en un programa
Tasa de fallos de página Tasa de fallos de página (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 Comportamiento típico de la paginación en un programa

16 Ejemplos de tamaños de páginas
Tamaño de página Ejemplos de tamaños de páginas Computadora Tamaño de página Atlas palabras de 48 bits Honeywell-Multics palabras de 36 bits IBM 370/XA y 370/ESA 4 Kbytes Familia VAX bytes IBM AS/ 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

17 Dirección:Una dirección lógica se obtiene a partir de:
nº página + desplazamiento Problema: La paginación no ofrece una solución óptima. Lo ideal sería que cada palabra del mapa de memoria de un proceso pudiera ubicarse en cualquier dirección. Esta solución es inviable debido al coste de traducción Al no ser así, con la paginación se asigna a cada proceso un número entero de marcos de página, aunque el espacio de su mapa de memoria no sea un múltiplo entero del tamaño de página. Por tanto, se irán generando huecos (memoria no aprovechada, en la última de las páginas que no se llena de forma completa). Este proceso se denomina fragmentación interna (implica que, en término medio, cada proceso desperdicia la mitad de una página)

18 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 T. Páginas Proceso 2 Marco 3 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 Problema: Fragmentación, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio

19 Otras cuestiones: En este esquema, el S.O. mantiene una tabla de páginas por cada proceso. Cuando se produce un cambio de contexto se indica a la MMU qué tabla de páginas usar El S.O. mantiene una única tabla de páginas para sí mismo. Así, todos los procesos comparten el SO. Cuando un proceso se ejecuta en modo sistema accede directamente a su mapa y al del SO S.O. mantiene tabla de marcos, como forma de mantener información de estado de la memoria principal. De cada marco se conoce su estado (libre, ocupado, etc) S.O. mantiene tabla de regiones por cada proceso, indicando las características de cada región y qué rango de páginas pertenecen a cada región Desperdicio de espacio: Mucho mayor gasto en tablas que con asignación contigua: es el precio de mucha mayor funcionalidad

20 Estrategias de búsqueda
Paginación por demanda Las páginas son traídas desde memoria secundaria hasta memoria principal cuando son referidas por el proceso en ejecución. Paginación anticipada El sistema predice que páginas deben ser traídas desde el almacenamiento secundario al primario, sin que éstas tengan que ser referenciadas explícitamente por el proceso (por ej: la página siguiente). Estrategias de colocación First FIT Se van colocando las páginas consecutivamente desde la posición de memoria más baja.

21 2. Paginación Políticas de sustitución/reemplazo (FIFO, LRU, etc.) Cómo se sabe dónde está la página que buscamos. La dirección virtual por sí sola no es suficiente. Necesidad de una estructura de datos adicional. Tabla de páginas que incluya la posición de todos. Presentes: dirección física. No presentes: posición en el disco.

22 ¿Qué ocurre con las escrituras?
2. Paginación ¿Qué ocurre con las escrituras? Gran coste de acceso a la memoria secundaria. No es útil usar un buffer de escritura como la caché. Postescritura (write back). Cuándo se reemplaza la página. Existencia de un bit de cambio No devolver si no se ha cambiado

23 TLB (Translation Look-aside Buffer)
Consta de una memoria asociativa con información sobre últimas páginas accedidas. Para el multiproceso, existen varias posibilidades: La TLB no incluye información del proceso. En este caso, habrá que invalidar la TLB en los cambios de contexto Entradas en TLB incluyen información sobre proceso: en este caso, debe existir un registro de UCP para mantener la identificación del proceso actual

24 TLB (Translation Look-aside Buffer)
Estructura

25 TLB (Translation Look-aside Buffer)
Implementación HW: La MMU consulta la TLB y si falla, se usa la TP en memoria. Ventajas: Es un proceso muy rápido Inconvenientes: Actualizar la TP en cambios de contexto y hay que invalidar la TLB cuando se produce un cambio de contexto (si no tiene información del Proceso) SW: La MMU no usa la TP, sino que sólo consulta TLB. En caso de fallo, se activa el SO, que ha de buscar la entrada en la tabla de páginas (mediante programa), e insertar en la TLB la traducción hecha, de forma que se pueda reutilizar. Ventajas: flexibilidad, ya que la tabla de páginas puede ser definida a conveniencia, sin restricciones impuestas por el hardware Inconvenientes: Es menos eficiente, ya que parte del proceso de traducción se realiza mediante programa.

26 TLB (Translation Look-aside Buffer)
Hacer rápida la traducción de direcciones (el TLB) TLB = Translation Lookaside Buffer Las tablas de página están en M.P. (son grandes) Su acceso es costoso  Pérdida de la eficiencia de la caché Aplicación del mismo criterio de localidad de la caché Una caché especial (TLB) Con las traducciones últimamente usadas Una caché que contiene solamente correspondencias de tablas de páginas Etiqueta: Nº de página virtual Dato: Nº de página física Bit adicionales de: Presencia; Referencia; Modificación

27 TLB (Translation Look-aside Buffer)

28 Aplicación del TLB en las referencias a memoria
1. Se busca el Nº de página virtual en el TLB a) Si está  acierto  se forma la dirección física * Se activa el bit de referencia * Se activa el bit de modificación si es escritura

29 Aplicación del TLB en las referencias a memoria
b) Si no está  ver tipo de fallo posible * Fallo de TLB (miss) - Se carga desde la tabla de páginas - Se intenta de nuevo la traducción * Fallo de página (fault) - Una excepción - El S.O. producirá el cambio de página

30 Aplicación del TLB en las referencias a memoria
Valores típicos de una TLB

31 Aplicación del TLB en las referencias a memoria
2. Cuando se ha recuperado la traducción del fallo: a) Seleccionar una entrada de la TLB a sustituir (Aleatorio, FIFO, LRU, ...) b) Transferir sólo los bits (modif y uso) a la tabla de páginas. * Política de postescritura

32 TLB de una DECStation 3100 (procesador R2000)
El TLB está incluido en el chip procesador Tamaño de página = 4 Kbytes = 220 páginas virtuales Nº bits. Dirección física = Nº bits Dirección virtual (32) TLB con 64 entradas

33 TLB de una DECStation 3100 (procesador R2000)
Totalmente asociativa Cada entrada: Etiqueta 20 bits Bloque físico 20 bits Bits de validez, modificación Otros bits de organización

34 TLB de una DECStation 3100 (procesador R2000)
Cuando hay fallo: El hardware genera el Nº de página de referencia El hardware suele guardar un índice que indica la entrada a sustituir

35 TLB y Caché de un R2000

36

37 Fallos de página Se produce cuando el bit de presencia está en off (0)
Quiere decir que la página no está en M.P. Acudir al nivel superior de memoria (disco) Transferirla a M.P.

38 Veamos cómo se gestiona la ocurrencia de un fallo de página:
La MMU genera una excepción. Normalmente deja en un registro especial la dirección que causó el fallo Se activa el SO, que comprueba: Si la página es inválida, se aborta el proceso (solución normal, aunque también podría bastar con el envío de una señal). Si la página es ausente se siguen los pasos siguientes: Se consulta la tabla de marcos para ver si hay algún hueco libre: Si no hay ningún marco libre se aplica el algoritmo de reemplazo, que decidirá el marco a desalojar. La página almacenada hasta entonces se marca como inválida. Si ha sido modificada, antes hay que salvar su contenido en memoria secundaria Si hay marco libre: se inicia la lectura desde memoria secundaria y se vuelca al marco, marcándose como válida dicha entrada en la TP y apuntando el marco en que está almacenada

39 En el peor de los casos un fallo de página puede suponer dos operaciones de E/S:
Salvaguarda de la página expulsada Lectura de la página nueva Dos políticas definen el funcionamiento del sistema de memoria 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 Política de asignación de espacio a los procesos: Asignación fija: El número de marcos de página para cada proceso es fijo. Asignación dinámica: El número de marcos de página para cada proceso es dinámico

40 Procesamiento de fallos

41 Tratamientos de los fallos de página y el TLB
Un fallo en TLB puede indicar 2 posibilidades: La página está en M.P.  sólo crear la entrada en la TLB La página no está en M.P.  control al S.O. No está en M.P. si el bit de validez en la T.P. es 0 El fallo de TLB puede ser tratado por hardware o software

42 Estructuras de información de las TP
Tabla directa (ordenada por página vitual) – Tabla de página de un nivel Tabla multinivel Tabla invertida (ordenada por marco de página) Tabla Hash

43 1 campo por nivel + desplazamiento
Una de las opciones disponibles para disminuir el tamaño requerido por las tablas de páginas es la tabla de páginas multinivel Organización:Se trata de una tabla de páginas organizadas en M niveles: Entrada de TP de nivel K apunta a TP de nivel K+1 Entrada de último nivel apunta a marco de página Dirección: La dirección lógica especifica la entrada a usar en cada nivel 1 campo por nivel + desplazamiento Accesos:Un acceso lógico supone M + 1 accesos a memoria. Solución: uso de TLB Invalidación:Si todas las entradas de una TP son inválidas, no se almacena esa TP y se pone inválida la entrada correspondiente de la TP superior Ahorro de espacio:Si el proceso usa una parte pequeña de su espacio lógico, se consigue ahorro en espacio para almacenar TPs

44 MP: direcciones físicas
Página Dirección lógica MP: direcciones físicas Marcos de página 1er nivel º nivel Byte 1 2 3 n 1 2 3 n Registro base de la TP (RIED) 1 2 3 n

45 Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores
2 niveles, páginas de 4K, dir. lógica 32 bits (10 bits por nivel) y 4 bytes por entrada Tamaño: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB) Ventajas adicionales: permite compartir TPs intermedias y sólo se requiere que esté en memoria la TP de nivel superior. Las restantes pueden estar en disco y traerse por demanda

46

47 Otra alternativa para disminuir el espacio necesario por la tabla de páginas es la tabla de páginas invertida Organización: La tabla contendrá tantas entradas como marcos de página haya. Cada entrada almacena la página cargada en dicho marco junto con sus características: Número de página, Proceso dueño de la página El tamaño de la tabla de páginas es proporcional a la memoria disponible. Accesos:La MMU usa una TLB convencional, pero si falla la traducción se accede a la tabla de páginas invertida. Al estar la tabla organizada por marcos no se puede hacer una búsqueda directa. Debería accederse a todas las entradas en busca de la página correspondiente. Por esta razón se suele organizar como una tabla hash Ahorro de espacio: Se reduce el espacio de almacenamiento necesario, ya que sólo se guarda información sobre las páginas válidas

48 Dirección lógica pid Página Byte i pid página i Byte Dirección física

49 6. Políticas de reemplazo
Objetivo: Minimizar la tasa de fallos de página. Cada algoritmo descrito tiene versión local y global: Local: criterio se aplica a las páginas residentes del proceso Global: criterio se aplica a todas las páginas residentes Algoritmos a estudiar FIFO Reloj (o segunda oportunidad) NRU LRU NFU

50 6. Políticas de reemplazo
Al intentar minimizar los fallos tratarán de eliminar la páginas con menor probabilidad de uso. Ejemplo. Secuencia de accesos: T= A B C D E F Página=

51 FIFO (Primero en llegar)
- (a) Cada entrada de la tabla tiene un registro asociado con el instante de carga de la página, o (b) el SO mantiene la tabla de páginas en orden de antigüedad (FIFO) Cuando se produce un fallo de página y no hay marcos libres, se intercambia a disco la página que lleve más tiempo en la tabla. Ej.: Nº de página 7,0 instante de entrada en tabla T= A B C D E F Página= 7,0 7,0 7,0 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A Tablas a) b) 0,1 0,1 0,1 3,5 3,5 3,5 2,8 2,8 2,8 1,D 1,D 1,2 1,2 1,2 0,6 0,6 0,6 3,9 3,9 3,9 2,F + antiguo 7 7 7 1 2 3 4 2 3 1 2 3 4 2 3 1 + nuevo 1 2 3 4 2 3 1 2

52 Algoritmo de páginas del reloj
-Las páginas se mantienen en una cola circular, con un apuntador a la páginas más antigua. -Si hay un fallo y R=0, la página se retira y se avanza el apuntador. Si R=1 se limpia R se avanza hasta encontrar una página con R=0. -Son los punteros los que se desplazan, no las entradas de la tabla.

53 (a) Estado del buffer justo antes del reemplazo de página
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 45 uso = 1 Página 222 uso = 0 Página 191 uso = 1 Página 33 uso = 1 Página 556 uso = 0 Página 67 uso = 1 Página 13 uso = 0 (a) Estado del buffer justo antes del reemplazo de página Figura Ejemplo de funcionamiento de la política del reloj.

54 Algoritmo NRU (de uso no reciente)
- Utiliza los bits de Referencia (R) y Modificado (M) de las entradas de la tabla de páginas. Se definen cuatro clases de páginas. Clase 0: Páginas no referenciadas ni modificadas (R=0,M=0) Clase 1: Páginas no referenciadas, modificadas (R=0,M=1) Clase 2: Páginas referenciadas no modificadas (R=1,M=0) Clase 3: Páginas referenciadas, modificadas (R=1,M=1) La asignación de página a desalojar se realiza aleatoriamente entre las páginas de menor clase de la tabla. Bit de Referencia Nº de página 7,x,y Bit Modificado

55 Algoritmo NRU (de uso no reciente), ejemplo
Modif. (M)= Reset R= T= A B C D E Página= 7,1,0 7,1,0 7,1,0 2,1,1 2,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,0,1 3,0,1 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 1,1,1 1,1,1 1,0,1 1,0,1 1,0,1 4,1,1 4,0,1 4,0,1 0,1,0 0,1,0 0,0,0 1,1,0 1,1,0 2,0,1 3,0,1 3,0,1 0,0,0 0,0,0 2,0,1 1,0,1 4,0,1 0,0,0

56 Algoritmo LRU (página usada hace más tiempo)
- Implementa un algoritmo basado en mirar al pasado y a partir de él estimar cuál podría ser el uso de la página. - Cuando sea necesario, el planificador saca de la tabla que lleva más tiempo sin acceso, de entre las entradas de la tabla.

57 Algoritmo LRU (página usada hace más tiempo), implementaciones
A) La tabla se implementa como Pila de números de página que conserva en la salida la página más recientemente usada y en la base la menos recientemente usada. La actualización de la tabla es muy lenta, aún usando HW especial 1 2 3 4 2 3 3 2 1 2 1 7 1 1 2 3 4 2 3 3 2 1 2 1 7 LRU 7 7 7 1 2 2 3 4 2 2 3 3 1 2 1 7

58 Algoritmo LRU (página usada hace más tiempo), implementaciones
B) Uso de contadores. Las entradas de la tabla de páginas tienen un campo de ‘tiempo de uso’ en el que el Manejador de Memoria escribe el tiempo de cada referencia. Cada acceso a memoria requiere una búsqueda en la Tabla de Páginas y una escritura en memoria por cada acceso a memoria.Requiere HW especial.

59 Algoritmo NFU (página no frecuentemente usada)
- Implementa una aproximación del algoritmo LRU, utilizando exclusivamente Software: Se activa un contador software por cada página En cada interrupción de reloj, el SO suma el bit R (0 ó 1) al contador Cuándo existe un fallo de página se selecciona la página con el contador más bajo y se envía a disco Problema: Tiene memoria

60 Algoritmo NFU (página no frecuentemente usada), ejemplo simple
Bits R de las páginas 1-6 en t=1,2,3 y 4 1 1 1 1 1 1 1 1 1 1 1 1 1 Contadores de las páginas 1-6 en t=1,2,3 y 4 1 10 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

61 Algoritmo NFU (página no frecuentemente usada)
Solución al problema de memoria: Maduración: Se activa un contador software por cada página En cada interrupción de reloj se desplaza el contador un bit a la derecha y luego se suma el bit R al bit más significativo del contador.

62 Algoritmo NFU con maduración (página no frecuentemente usada)
Bits R de las páginas 1-6 en t=1,2,3 y 4 1 1 1 1 1 1 1 1 1 1 1 1 1 Contadores de las páginas 1-6 en t=1,2,3 y 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

63 3. Segmentación 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

64 3. Segmentación Dirección:Una dirección lógica estará compuesta por un número de segmento y un desplazamiento en el mismo. Traducción: La forma de realizar la traducción puede apreciarse en la imagen siguiente:

65 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 Problema: Fragmentación Externa En este esquema se produce fragmentación externa, ya que el almacenamiento de los segmentos se realiza de forma contigua. El SO debe mantener una lista que le permita conocer qué zonas de memoria están libres y cuáles ocupadas: es decir, estructuras de datos que identifiquen huecos y zonas asignadas

66 Valoración: Espacios independientes para procesos: mediante su propia TS, que crea un espacio lógico independiente Protección: mediante TS, ofreciendo espacios disjuntos de memoria Compartir memoria: bajo control del SO es posible que dos o más procesos tengan un segmento asociado a la misma zona de memoria Soporte de regiones: bits de protección Maximizar rendimiento : No lo maximiza, por la fragmentación externa Mapas de tamaño adecuado: No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual

67 4. Segmentación paginada
Se intenta aunar las ventajas de ambos esquemas: segmentación y paginación: Segmentación: soporte para regiones. Paginación: mejor uso del espacio de memoria. 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.

68 Traducción:La traducción se lleva a cabo según se indica.

69 Valoración: Espacios independientes para procesos: mediante TS Protección: mediante TS Compartir memoria: bajo control del SO, podemos hacer que una misma entrada aparezca en diferentes TS (es decir, pueda ser usado por varios procesos) Soporte de regiones: bits de protección Maximizar rendimiento: la paginación aprovecha eficientemente el espacio de memoria. Mapas de tamaño adecuado: permite esquemas de memoria virtual Ventajas: Frente a paginación sin segmentos facilita al SO la gestión de las regiones, pero requiere HW más complejo

70 5. Paginación por demanda
Una vez analizados los diferentes esquemas hardware vamos a ver cómo se articulan para construir un esquema de memoria virtual (estos esquemas también pueden usarse sin memoria virtual, pero en la actualidad su uso está siempre vinculado a la memoria virtual) Normalmente la memoria virtual se construye sobre esquemas de paginación pura o segmentada. De esta forma, la unidad de información intercambiada entre memoria principal y secundaria es la página. Normalmente la transferencia de información se lleva a cabo bajo demanda (paginación por demanda). De esta forma, cuando un proceso necesita acceder a una página que no está en memoria principal, se genera un fallo de página y el SO se encarga de transferirla desde la memoria secundaria. Si al traerla no hay espacio suficiente en MP, será necesario desalojar alguna de las páginas actuales (ello se hace mediante un algoritmo de reemplazo)

71 La construcción de un sistema de memoria virtual sobre un procesador con paginación implica usar un bit de validez en las entradas de la tabla de páginas, que indica si la página es válida. Estarán marcadas como inválidas todas las páginas que no residen en MP, así como las que constituyen huecos en el mapa de memoria. Para las entradas correspondientes a páginas no residentes en MP, la entrada principal, en lugar de almacenar el marco donde reside contendrá la dirección del dispositivo de memoria en que se encuentra almacenada. De forma que cuando se produce un acceso a una de estas páginas, se produce una excepción y se activa el SO, responsable de hacer la transferencia desde memoria secundaria. Algunos sistemas también usan la técnica de prepaginación. Al ocurrir un fallo de página no sólo traen la página en cuestión, sino también las cercanas, al suponerse que se usarán en un corto plazo de tiempo. La efectividad de esta técnica dependerá del acierto de la predicción.

72 7. Política de asignación de marcos de página
El SO deberá decidir cuántos marcos de página asigna a cada proceso: Asignación Fija Asignación Dinámica A) Asignación fija Número constante de marcos asignados al proceso. Puede depender de las características del proceso: tamaño, prioridad,... No se adapta a las distintas fases de ejecución. Como positivo, el comportamiento del proceso es relativamente predecible Sólo tiene sentido usar estrategia de reemplazo local La arquitectura impone el Nº mínimo de marcos de página: mínimo número de marcos a asignar igual al número de referencias que aparezca en la instrucción que más fallos de página pueda generar

73 B) Asignación dinámica
El número de marcos asignados a un proceso es variable dependiendo del comportamiento del proceso (y posiblemente de los demás procesos). Se adapta a las diferentes fases por las que puede pasar un proceso Se pueden usar tanto estrategias de reemplazo global como local. Asignación dinámica + reemplazo local: el proceso va aumentando o disminuyendo su conjunto residente dependiendo de su comportamiento (comportamiento relativamente predecible) Asignación dinámica + reemplazo global: los procesos compiten por el uso de las páginas entre ellos (comportamiento difícilmente predecible)

74 Un marco común para las jerarquías de memoria
8. Similitud entre las distintas Jerarquías Un marco común para las jerarquías de memoria Estructura y Tecnología de Ordenadores ETSII- ULL 2004

75 Similitud entre las distintas Jerarquías
¿Dónde ubicar un bloque? Para la Cache Exactamente en una posición (Correspondencia Directa) Posición del bloque = Nº de Bloque mod bloques de la Caché Un número fijo de posiciones (>= 2) donde colocar un bloque (Asociativa por Conjunto) Conjunto que contiene un bloque = Nº bloque mod número de conj. de la Caché En cualquier Posición (Totalmente Asociativo) Corresp. Directa y Totalmente Asocit., casos particulares Estructura y Tecnología de Ordenadores ETSII- ULL 2004

76 Similitud entre las distintas Jerarquías
¿Cómo se encuentra un bloque? Sistema M. Virtual  Indexación de páginas Caché Asociativa por Conjuntos Descomposición de la dirección virtual Etiqueta | Índice | Desplazamiento en el bloque Índice: selecciona el conjunto Etiqueta: compara todas para ver si está Estructura y Tecnología de Ordenadores ETSII- ULL 2004

77 Estructura y Tecnología de Ordenadores
ETSII- ULL 2004

78 Similitud entre las distintas Jerarquías
Elección del tipo de Organización M. Virtual: Totalmente Asociativa M. Caché y TLB: Asociativa por conjuntos Política de escritura: Ventaja en tiempo de la directa Estructura y Tecnología de Ordenadores ETSII- ULL 2004

79 Similitud entre las distintas Jerarquías
¿Que bloques se deben de reemplazar en un fallo de Caché? Para Correspondencia directa: Un solo candidato Para Totalmente Asociativa: Todos son candidatos Aleatoria (facilidad Hardware) LRU (costosa) Aproximación LRU Estructura y Tecnología de Ordenadores ETSII- ULL 2004

80 Similitud entre las distintas Jerarquías
¿Qué ocurre en la escritura? Escritura Directa (Write Trhough) Fallos de lectura baratos Implementación facil (buffer de escritura) Post-escritura (Write Back) Escritura a velocidad de la Caché Múltiples escritura se reduce a una Uso del ancho de band del nivel mas bajo Para Memoria Virtual Política de Post-escritura (gran latencia) Tendencias de Caches a Post-escritura Aumento del gap CPU-Memoria Estructura y Tecnología de Ordenadores ETSII- ULL 2004


Descargar ppt "Estructura y Tecnolología de Ordenadores"

Presentaciones similares


Anuncios Google