Teora de Sistemas Operativos Memoria Departamento de Electrnica

  • Slides: 24
Download presentation
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz

Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz http: //www. elo. utfsm. cl/~elo 321

Memoria Virtual Intro Técnicas de Administración de Memoria Modelo Paginación 2

Memoria Virtual Intro Técnicas de Administración de Memoria Modelo Paginación 2

Memoria Virtual Intro Modelo Al administrar la memoria física, ocurren ciertos problemas que son

Memoria Virtual Intro Modelo Al administrar la memoria física, ocurren ciertos problemas que son inherentes a los esquemas y algoritmos vistos. Paginación No se pueden ejecutar programas que necesitan más memoria que la disponible físicamente. Puede existir la posibilidad que no se pueda dejar segmentos de memoria contiguos. 3

Memoria Virtual Intro Modelo Paginación Idea básica: • Ocultar los detalles de la memoria

Memoria Virtual Intro Modelo Paginación Idea básica: • Ocultar los detalles de la memoria física. Esto es: • MV disfraza el hecho que la memoria real no está asignada a un programa como una región continua, y • MV oculta el tamaño actual de la memoria física disponible. Cada programa tiene un bloque de memoria (espacio de direcciones) continuo y que comienza por la dirección 0. El tamaño puede ser considerado como infinito. 4

Memoria Virtual Intro Memoria Virtual Memoria Física Modelo Paginación MMU (address_map) 5

Memoria Virtual Intro Memoria Virtual Memoria Física Modelo Paginación MMU (address_map) 5

Memoria Virtual Intro Memoria Virtual Memoria Física Modelo Paginación MMU Direcciones generadas por la

Memoria Virtual Intro Memoria Virtual Memoria Física Modelo Paginación MMU Direcciones generadas por la CPU 6

Memoria Virtual Intro Modelo Existen al menos dos formas de implementación de MV, según

Memoria Virtual Intro Modelo Existen al menos dos formas de implementación de MV, según el punto de vista del usuario Paginación l. Espacio de direcciones de segmento único l. Espacio de direcciones de segmento múltiple 7

Memoria Virtual Intro Modelo Paginación Espacio de direcciones de segmento único • MV como

Memoria Virtual Intro Modelo Paginación Espacio de direcciones de segmento único • MV como un espacio lineal continuo • (esquema tradicional de memoria) de n celdas (n=2 k). MV es dividida en trozos de igual tamaños pages, las que pueden ser cargadas en memoria en trozos no contigüos de memoria física, denominados pages frames. 8

Memoria Virtual Intro Modelo Paginación Espacio de direcciones de segmento múltiple l. Divide el

Memoria Virtual Intro Modelo Paginación Espacio de direcciones de segmento múltiple l. Divide el espacio de direcciones virtuales en un conjunto de segmentos, donde cada segmento es un espacio lineal y puede variar de tamaño. l. Un segmento puede ser tratado como una unidad lógica independiente, por ejemplo, una función. l. Cada segmento puede ser cargado como una unidad dentro de un trozo contigüo de memoria o ser dividido en páginas de igual tamaño. 9

Memoria Virtual Intro Modelo Paginación Ambas técnicas deben poseer como mínimo las siguientes funciones:

Memoria Virtual Intro Modelo Paginación Ambas técnicas deben poseer como mínimo las siguientes funciones: l. Mecanismos de mapeo de direcciones. • Implementación address_map(). l. Estrategias de asignación de memoria: • Determina donde cargar los trozos necesarios de MV. l. Estrategias de reemplazo: • Cuando una porción de MV necesita ser cargado en Mem. Real y no hay espacio disponible, el sistema debe crear un espacio (Swaping, pages o frames) 10

Memoria Virtual Intro Modelo Paginación El espacio de direcciones virtuales es dividido en una

Memoria Virtual Intro Modelo Paginación El espacio de direcciones virtuales es dividido en una secuencia de bloques contigüos de igual tamaña PAGES. • Páginas Pm son de 1 Kb -> 16 Kb Análogamente, la memoria física es dividida en bloques denominados PAGES FRAMES, cuyo tamaño es idéntico al tamaño de las páginas. Cada dirección generada (va) por la CPU es dividida en 2 partes: numero de página (p) y offset dentro de la página (w) 11

Memoria Virtual Intro Modelo Cada dirección física (pa) también es dividida en 2 partes:

Memoria Virtual Intro Modelo Cada dirección física (pa) también es dividida en 2 partes: numero de frame (f) y offset dentro del frame (w). Paginación ¿Cómo la MMU (address_map) convierte direcciones (p, w) en (f, w) y mantiene un historial de esta conversión? Tablas de frames. Tablas de páginas. 12

Memoria Virtual Intro Modelo Paginación Tabla de frames. Implementa un tabla de tamaño F,

Memoria Virtual Intro Modelo Paginación Tabla de frames. Implementa un tabla de tamaño F, donde cada entrada corresponde a un frame y contiene el número de la página que se encuentra en él. Situación complicada en multiprogramación: Muchos procesos pueden utilizar el mismo número de página, cada uno apuntando a un diferente frame. Se necesita almacenar el ID del proceso como parte de cada entrada 13

Memoria Virtual Intro Modelo Paginación Tablas de frames. Sea un arreglo FT[F] de punteros

Memoria Virtual Intro Modelo Paginación Tablas de frames. Sea un arreglo FT[F] de punteros a la siguiente estructura: Struct { int pid; int page; } donde: pid almacena el ID del proceso dueño de la página almacenada en el frame f , y page contiene el número de la página almacenada en dicho frame 14

Memoria Virtual Intro Modelo Paginación Tablas de frames. La función address_map puede ser escrita

Memoria Virtual Intro Modelo Paginación Tablas de frames. La función address_map puede ser escrita como: Address_map(id, p, w){ pa = NULL; for(f=0; f < F; f++) if(FT[f]. pid == id && FT[f]. page == p) pa = f+w; return(pa); } Este algoritmo se puede implementar en Memorias Asociativas. 15

Memoria Virtual Intro Tabla de frames. Modelo Paginación 16

Memoria Virtual Intro Tabla de frames. Modelo Paginación 16

Memoria Virtual Intro Modelo Paginación Tablas de frames. Ventajas: • Sólo una tabla debe

Memoria Virtual Intro Modelo Paginación Tablas de frames. Ventajas: • Sólo una tabla debe ser mantenida para todos los procesos. Desventajas: • Mayor tamaño de memoria, la tabla no se puede almacenar en memorias asociativas. 17

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Mantiene un historial de las páginas

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Mantiene un historial de las páginas que está utilizando un proceso. La n-ésima entrada identifica el frame que contiene dicha página. La función address_map queda como: Address_map(p, w){ pa = *(PTR+p)+w; return(pa); } 18

Memoria Virtual Intro Tablas de páginas Modelo Paginación 19

Memoria Virtual Intro Tablas de páginas Modelo Paginación 19

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Si las direcciones son de m

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Si las direcciones son de m bits y el tamaño de página es 2 n, la tabla de páginas puede llegar a contener 2 m-n entradas. Para m=32 y n=12 No se puede ocupar memorias asociativas ni registros de CPU. Solución: manejar la tabla de páginas de cada proceso completamente en memoria, y usar sólo un registro que apunte a la ubicación de la tabla. (PTR) 20

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Desventaja: costo de cada acceso a

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Desventaja: costo de cada acceso a memoria se duplica, porque primero hay que accesar la tabla (indexada por el número de página). Solución: usar un pequeño y rápido caché especial de memoria asociativa, llamado translation look-aside buffer (TLB). 21

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Translation look-aside buffer (TLB). El TLB

Memoria Virtual Intro Modelo Paginación Tablas de páginas. Translation look-aside buffer (TLB). El TLB forma parte de la MMU, y contiene los pares (página, marco) de las páginas más recientemente accesadas. Aunque el TLB sea pequeño, la probabilidad de que la página esté en el TLB (tasa de aciertos) es alta, porque los programas suelen hacer muchas referencias a unas pocas páginas. 22

Memoria Virtual Intro Tablas de páginas /TLB Modelo Paginación 23

Memoria Virtual Intro Tablas de páginas /TLB Modelo Paginación 23

Memoria Virtual Intro Modelo Paginación 24

Memoria Virtual Intro Modelo Paginación 24