Teora de Sistemas Operativos Memoria Departamento de Electrnica
- Slides: 24
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 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 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 Direcciones generadas por la CPU 6
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 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 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: 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 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: 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, 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 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 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 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 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 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 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 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 Modelo Paginación 24
- Memoria compartida sistemas operativos
- La teora
- Modelo de procesos sistemas operativos
- Buddy system allocation
- Sistemas operativos
- Tipos de sistemas operativos distribuidos
- Buses del sistema
- Excel ventajas y desventajas
- Fundamentos de los sistemas operativos
- Sistemas operativos
- Historia de unix
- Control de procesos sistemas operativos
- Gestión de entrada y salida sistemas operativos
- Funciones sistema operativo
- Que es un sistema fisico en fisica
- Sistemas operativos
- Sistemas operativos
- Procesos y comunicación sistemas operativos 2
- Tabla comparativa de sistemas operativos moviles
- No irq handler for vector
- Teoria de sistemas operativos
- Ventajas de los sistemas operativos
- Sistemas operativos
- Buddy system sistemas operativos
- Introduccion a la seguridad de los sistemas operativos