La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz

Presentaciones similares


Presentación del tema: "Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz"— Transcripción de la presentación:

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

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

3 Intro Memoria Virtual Paginación Modelo 3 Al administrar la memoria física, ocurren ciertos problemas que son inherentes a los esquemas y algoritmos vistos.  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.

4 Intro Memoria Virtual Paginación Modelo 4 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.

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

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

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

8 Intro Memoria Virtual Paginación Modelo 8 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.

9 Intro Memoria Virtual Paginación Modelo 9 Espacio de direcciones de segmento múltiple Divide el espacio de direcciones virtuales en un conjunto de segmentos, donde cada segmento es un espacio lineal y puede variar de tamaño. Un segmento puede ser tratado como una unidad lógica independiente, por ejemplo, una función. 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.

10 Intro Memoria Virtual Paginación Modelo 10 Ambas técnicas deben poseer como mínimo las siguientes funciones: Mecanismos de mapeo de direcciones. Implementación address_map(). Estrategias de asignación de memoria: Determina donde cargar los trozos necesarios de MV. 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)

11 Intro Memoria Virtual Paginación Modelo 11 El espacio de direcciones virtuales es dividido en una secuencia de bloques contigüos de igual tamaña  PAGES. Páginas P m son de 1Kb -> 16Kb 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)

12 Intro Memoria Virtual Paginación Modelo 12 Cada dirección física (pa) también es dividida en 2 partes: numero de frame (f) y offset dentro del frame (w). ¿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.

13 Intro Memoria Virtual Paginación Modelo 13 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

14 Intro Memoria Virtual Paginación Modelo 14 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

15 Intro Memoria Virtual Paginación Modelo 15 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.

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

17 Intro Memoria Virtual Paginación Modelo 17 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.

18 Intro Memoria Virtual Paginación Modelo 18 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); }

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

20 Intro Memoria Virtual Paginación Modelo 20 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)

21 Intro Memoria Virtual Paginación Modelo 21 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).

22 Intro Memoria Virtual Paginación Modelo 22 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.

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

24 Intro Memoria Virtual Paginación Modelo 24


Descargar ppt "Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz"

Presentaciones similares


Anuncios Google