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

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

Embed Size (px)

Citation preview

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

Teoría de Sistemas OperativosMemoria

Departamento de Electrónica

2º Semestre, 2003Gabriel Astudillo Muñoz

http://www.elo.utfsm.cl/~elo321

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

2

Intro

Memoria Virtual

Paginación

Modelo

Técnicas de Administración de Memoria

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

3

Intro

Memoria Virtual

Paginación

Modelo

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.

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

4

Intro

Memoria Virtual

Paginación

Modelo

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.

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

5

Intro

Memoria Virtual

Paginación

Modelo

Memoria FísicaMemoria Virtual

MMU(address_map)

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

6

Intro

Memoria Virtual

Paginación

Modelo

Memoria FísicaMemoria Virtual

MMU

Direcciones generadas por la

CPU

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

7

Intro

Memoria Virtual

Paginación

Modelo

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

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

8

Intro

Memoria Virtual

Paginación

Modelo

Espacio de direcciones de segmento único

• MV como un espacio lineal continuo (esquema tradicional de memoria) de n celdas (n=2k).

• 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.

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

9

Intro

Memoria Virtual

Paginación

Modelo

Espacio de direcciones de segmento múltipleDivide 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.

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

10

Intro

Memoria Virtual

Paginación

Modelo

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)

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

11

Intro

Memoria Virtual

Paginación

Modelo

El espacio de direcciones virtuales es dividido en una secuencia de bloques contigüos de igual tamaña PAGES.

• Páginas Pm 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)

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

12

Intro

Memoria Virtual

Paginación

Modelo

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.

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

13

Intro

Memoria Virtual

Paginación

Modelo

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

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

14

Intro

Memoria Virtual

Paginación

Modelo

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 ,ypage contiene el número de la página almacenada en dicho frame

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

15

Intro

Memoria Virtual

Paginación

Modelo

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.

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

16

Intro

Memoria Virtual

Paginación

Modelo

Tabla de frames.

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

17

Intro

Memoria Virtual

Paginación

Modelo

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.

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

18

Intro

Memoria Virtual

Paginación

Modelo

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);

}

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

19

Intro

Memoria Virtual

Paginación

Modelo

Tablas de páginas

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

20

Intro

Memoria Virtual

Paginación

Modelo

Tablas de páginas.Si las direcciones son de m bits y el tamaño de página es 2n, la tabla de páginas puede llegar a contener 2m-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)

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

21

Intro

Memoria Virtual

Paginación

Modelo

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).

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

22

Intro

Memoria Virtual

Paginación

Modelo

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.

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

23

Intro

Memoria Virtual

Paginación

Modelo

Tablas de páginas /TLB

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

24

Intro

Memoria Virtual

Paginación

Modelo