SIJEM
SIJEM es un simulador de jerarquías de memoria. SIJEM es un simulador de jerarquías de memoria. Ilustra los siguientes conceptos: - Direcciones virtuales y direcciones reales.
- Paginación
- Mecanismos de traducción de direcciones.
- Uso de TLBs.
- Estrategias de búsqueda, colocación y reemplazamiento.
- Jerarquías de memoria
- Memoria secundaria y principal
- Memoria caché multinivel
- Estrategias de colocación, reemplazamiento y coherencia.
Su objetivo es servir de apoyo al aprendizaje de los conceptos de memoria virtual y jerarquías de memoria, fundamentales en materias como Sistemas Operativos y Arquitectura de Computadores. Su objetivo es servir de apoyo al aprendizaje de los conceptos de memoria virtual y jerarquías de memoria, fundamentales en materias como Sistemas Operativos y Arquitectura de Computadores.
A continuación vamos a repasar algunos conceptos básicos. A continuación vamos a repasar algunos conceptos básicos.
El término memoria virtual se refiere a la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en la memoria principal de un determinado sistema. El término memoria virtual se refiere a la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en la memoria principal de un determinado sistema. De esta manera es posible ejecutar uno o varios programas cuyo tamaño sea mayor que el de la memoria principal.
La clave de un sistema de memoria virtual está en discernir entre las direcciones virtuales y las direcciones reales. La clave de un sistema de memoria virtual está en discernir entre las direcciones virtuales y las direcciones reales. - Direcciones virtuales: Son generadas por el proceso en ejecución.
- Direcciones reales: Son las disponibles en memoria principal.
El sistema de memoria virtual debe encargarse de traducir las direcciones virtuales a direcciones reales mientras el proceso está en ejecución.
Transformación en bloques Transformación en bloques - La información (datos e instrucciones) se agrupa en bloques que contienen elementos de información de los cuales el sistema conoce exactamente donde han sido colocados en el almacenamiento real.
- El tamaño de estos bloques determina la técnica utilizada:
- Paginación: bloques de tamaño fijo (Páginas).
- Segmentación: bloques de tamaño variable (Segmentos).
SIJEM únicamente implementa la paginación.
SIJEM implementa tres tipos de mecanismos de traducción de direcciones: SIJEM implementa tres tipos de mecanismos de traducción de direcciones: - Transformación directa
- La tabla de páginas contiene una entrada para cada una de las páginas de la memoria virtual de este proceso.
- Transformación asociativa-directa con TLB conjunta
- Añade un pequeño almacenamiento asociativo capaz de mantener un pequeño porcentaje de la tabla de páginas (TLB).
- Transformación asociativa-directa con TLB dividida
- Divide la TLB en dos: instrucciones y datos para aprovechar el principio de localidad.
Para decidir que páginas deben estar en memoria principal y cuáles en memoria secundaria se utilizan un conjunto de estrategias: Para decidir que páginas deben estar en memoria principal y cuáles en memoria secundaria se utilizan un conjunto de estrategias: - Estrategias de búsqueda
- Tratan los casos en que una página debe ser traída desde memoria secundaria a memoria principal.
- Estrategias de colocación
- Tratan del lugar dentro de memoria principal donde se colocará una nueva página.
- Estrategias de reemplazamiento
- Deciden que página se debe trasladar desde el memoria principal a memoria secundaria cuando la memoria principal está llena.
Estrategias de búsqueda 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.
Estrategias de reemplazamiento - FIFO (First In-First Out):
- Se reemplaza aquella página que ha estado durante más tiempo en memoria.
La memoria principal es un recurso de acceso bastante lento, así que para paliar esta espera se utiliza una memoria de acceso muy rápido que se intercala entre el procesador y la memoria principal, la memoria caché. La memoria principal es un recurso de acceso bastante lento, así que para paliar esta espera se utiliza una memoria de acceso muy rápido que se intercala entre el procesador y la memoria principal, la memoria caché. Su función es almacenar la información usada en el pasado, pues es muy posible que se necesite usarla en un futuro próximo.
A la hora de decidir que páginas entrarán en memoria caché se plantean el siguiente conjunto de estrategias: A la hora de decidir que páginas entrarán en memoria caché se plantean el siguiente conjunto de estrategias: - Estrategias de colocación:
- Tratan la posición donde debe ser colocada la página dentro de la memoria caché.
- Estrategias de reemplazamiento:
- Deciden que página se debe reemplazar cuando la posición de memoria caché es solicitada por una nueva página.
- Estrategias de coherencia:
- Tratan la coherencia entre los datos que han sido modificados cuando la página se encontraba en caché y los datos contenidos en la memoria principal.
Estrategias de colocación Estrategias de colocación - Mapeado directo
- Cada bloque de memoria principal tiene un sólo lugar donde ser colocado en memoria caché según la fórmula
- (Bloque de memoria principal) MOD (Número de bloques en caché)
- Memoria completamente asociativa
- Un bloque de memoria principal puede ser colocado en cualquier lugar de la memoria caché.
- Memoria asociativa por conjuntos
- A un bloque de memoria principal le corresponde un conjunto de bloques en memoria caché, de manera que puede ser colocado en cualquier bloque dentro del conjunto.
- (Bloque de memoria principal) MOD (Número de conjuntos en caché)
- Si un conjunto tiene n bloques se denomina Memoria Asociativa por Conjuntos de N-Vias.
Estrategias de reemplazamiento Estrategias de reemplazamiento - Azar: Se reemplaza una página seleccionada al azar.
- FIFO (First In-First Out): Se reemplaza aquella página que ha estado durante más tiempo en memoria.
- LRU (Least Recently Used): Se reemplaza aquella página que lleva más tiempo en memoria sin ser usada.
- Clock: Se reemplaza aquella página que ha estado durante más tiempo en memoria.
- LFU (Least Frecuently Used): Se reemplaza aquella página de memoria que haya sido usada el menor número de veces.
- NUR (Not Used Recently): Se reemplaza aquella página de memoria que no haya sido usada recientemente, usando dos factores: referencia y modificación.
Estrategias de coherencia: Estrategias de coherencia: - Write-Through (Escritura Directa): Una escritura actualiza tanto la copia en memoria principal como la copia en caché.
- Write-Back (Escritura retardada): Sólo se actualiza la copia en caché. La memoria principal será actualizada cuando el bloque (línea) sea reemplazado en caché.
SIJEM implementa hasta 3 niveles de caché: SIJEM implementa hasta 3 niveles de caché: - Nivel 1: Separada en datos e instrucciones.
- Nivel 2
- Nivel 3
A continuación vamos a mostrar las opciones que nos ofrece el programa. A continuación vamos a mostrar las opciones que nos ofrece el programa.
La interfaz de usuario es similar a la de cualquier programa Windows. La interfaz de usuario es similar a la de cualquier programa Windows. Todas las operaciones se realizan a través de un asistente que nos guía en el proceso de configurar y ejecutar la simulación. En todo momento tenemos disponible un botón de ayuda.
La herramienta básica del programa es el asistente, que se compone de tres pasos: - Configurar: Inicia el asistente de configuración para elegir todos los parámetros de la simulación.
- Cargar programa: Permite elegir el fichero de traza sobre el que realizaremos la simulación.
- Simular: Permite elegir el tipo de simulación que vamos a realizar.
Se compone de una serie de ventanas a través de las cuales podremos configurar: Se compone de una serie de ventanas a través de las cuales podremos configurar: - Parámetros de memoria principal y secundaria.
- Mecanismo de traducción de direcciones y paginación.
- Niveles 1, 2 y 3 de memoria caché.
Todos los parámetros pueden ser introducidos a mano o utilizando un fichero creado anteriormente.
A través de esta ventana elegimos la traza del programa a simular. A través de esta ventana elegimos la traza del programa a simular. Existen dos tipos de ficheros de traza: - Fichero de direcciones (extensión .trd)
- Contiene las direcciones virtuales referenciadas por el programa.
- Fichero de páginas (extensión .trp)
- Contiene las páginas referenciadas por el programa.
A través de esta ventana elegimos el tipo de simulación que deseamos realizar. A través de esta ventana elegimos el tipo de simulación que deseamos realizar. Hay dos tipos: - Traducción de direcciones
- Muestra el proceso de traducción de direcciones virtuales a direcciones reales según el método elegido durante la configuración.
- Búsqueda de páginas
- Muestra el proceso de búsqueda de páginas dentro de la jerarquía de memoria.
Están implementados 3 tipos de mecanismos de traducción de direcciones virtuales a direcciones reales: Están implementados 3 tipos de mecanismos de traducción de direcciones virtuales a direcciones reales: - Transformación directa
- Transformación asociativa-directa con TLB conjunta
- Transformación asociativa-directa con TLB dividida
Simula la búsqueda de una dirección generada por la CPU en la jerarquía de memoria Simula la búsqueda de una dirección generada por la CPU en la jerarquía de memoria En esta ventana se muestran: - Dirección generada por la CPU
- Memoria principal
- Diferentes niveles de caché
A continuación vamos a pasar a realizar una serie de ejercicios de ejemplo para conocer el simulador. A continuación vamos a pasar a realizar una serie de ejercicios de ejemplo para conocer el simulador.
Proceden de trazas del benchmark SPEC2000 Proceden de trazas del benchmark SPEC2000
Do'stlaringiz bilan baham: |