ARQUITECTURA DE SISTEMAS PARALELOS. 3º ITIS. PROBLEMA DE MEMORIA VIRTUAL.

Documentos relacionados
ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. Problemas de Gestión de Memoria.

Memoria virtual Ubicación de bloque en paginación

Trabajo Práctico Número 6 Arquitectura de Computadoras

Memoria Virtual. Ing. Jorge Castro-Godínez

Memoria Virtual. Memoria Virtual

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Trabajo Práctico Número 6

GESTION DE LA MEMORIA

Memoria Virtual. Departamento de Arquitectura de Computadores

Tutorías con Grupos Reducidos (TGR) Parte 5: Memoria Virtual

MEMORIA EJERCICIO 1 EJERCICIO 2

Memoria. Organización de memorias estáticas.

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Organización lógica Identificación de bloque

Ejercicios del tema 5. Jerarquía de de Memoria

Ejercicios Jerarquía de Memoria

Arquitectura de Computadores II Clase #7

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Ejercicios de Arquitectura de Computadoras

Memoria Cache. Departamento de Arquitectura de Computadores

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

PRINCIPIOS GENERALES DE JERARQUÍA DE MEMORIA

Capítulo 2. Sistemas de Asignación Dispersa de

Arquitectura de Computadores II Clase #7

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

SOLUCIONES. DURACIÓN: Dispone de 120 minutos para realizar el examen.

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

ÓRDENES BÁSICAS DEL MS-DOS. MANEJO DE DIRECTORIOS

Suscripción DreamSpark

Arquitectura de Computadoras para Ingeniería

Tema 6. Administración de memoria

Cuestionario almacenamiento en disco y gestión de memoria.

Ingeniería de Computadores I Primera Actividad Calificable

Administración de memoria

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

Estructura de Computadores. 1. Ejercicios Resueltos 1.1.

Administración de Memoria.

ESTRUCTURA DE COMPUTADORES PROBLEMAS DEL TEMA 1

Examen de Estructura de Computadores ( ) Solución teoría

Jerarquía de memoria - Motivación

Resolución de los Ejercicios de la Hoja 4

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

MEMORIA CACHÉ PRINCIPIOS BASICOS

Clase Práctica Memoria Caché

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

Tema 5: Memorias. Espacio reservado para notas del alumno

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Respuestas al Problemario Memoria Cache

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

07 Variables. 7.1 Variables globales Definición

Bibliografía básica de referencia: Fundamentos de Informática para Ingeniería Industrial, Fernando Díaz del Río et al.

Guía resumida para configurar un sistema Linux virtualizado y ejecutar Simusol

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

PROCESADOR DE TEXTOS: WRITER

Microsoft DOS. Manual de Usuario Básico. Luís Luzardo Marcos Patrón 1º SK Reparación PC. Microsoft DOS (Manual de Usuario Básico)

TEMA III: OPERACIONES CON LOS DATOS

Proceso para el control de cargas diarias

Procedimiento Funcionamiento Disco Colaborativo

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

4. Cuánta memoria puede direccionar con registros de 16 bits si la palabra es de 20 bits? Respuesta: Se puede direccionar 2 20 = 1Mb.

INSTALACIÓN FACTEL 5 DESDE MI MOVISTAR FIJO

CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número , B 635,15 O 6 3 5, 1 5 O

Introducción. Aparición en los 50, se facilita la comunicación entre el usuario y el ordenador Cualquier persona puede utilizar un ordenador.

Simulación de sistemas de memoria con Xcache32

TEMA 2: Sistemas Operativos

Tema 6 (II) Jerarquía de Memoria

TEMA 3: El proceso de compilación, del código fuente al código máquina

Tema 7. Memoria virtual

Registro Electrónico Común (REC) Guía de usuario Presentación de una solicitud con certificado. Versión 1.0

Ejercicios de jerarquía de memoria

ANEXO # 2 MANUAL DE USUARIO PARA HERRAMIENTA INFORMÁTICA # 1: APROXIMACIÓN AL DESPACHO IDEAL EN COLOMBIA

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Modos de Direccionamiento

Arquitectura de Computadores. Apellidos, Nombre:

Instalación Componente Cliente

Ejercicios de GESTION DE MEMORIA

Práctica 3: Presentaciones con OpenOffice I

Administración de sistemas UNIX/Linux Ejercicios prácticos V

Manual de OpenOffice Impress

Entorno Virtual de Aprendizaje Administración de cursos: Participantes, Calificaciones, Informes Guía de usuario

ESCUELA POLITÉCNICA NACIONAL

Gestión de formularios: Manual de usuario

Orden y lugar de ejecución de los eventos de Web Panels

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

Organización de Computadoras

Sistema de memoria. Miquel Albert Orenga Gerard Enrique Manonellas PID_

LECTURA Y ESCRITURA (fwrite) DE ARCHIVOS DE TEXTO CON PHP. MODOS DE ACCESO. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00837B)

REQUISITOS NECESARIOS PARA LA INSTALACIÓN Y FUNCIONAMIENTO DE LA APLICACIÓN

1) Se dispone de un computador de 32 bits con la siguiente estructura:

MICROSOFT EXCEL 2007

Lenguaje binario. Código ASCII. Medidas de la información

Creación y manejo de la base de datos y tablas

Otros elementos comunes

Concepto Definición Ejemplo. registros que tienen aspectos en común organizados, se guarda en. almacenamiento. secundario y se manipula en

MÓDULO 6 I.V.A. / I.G.I.C.

Sistemas de memoria. Estructura de computadores 2

Java Actualizado, de no ser así descargar versión más reciente

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

PROBLEMAS TEMA 2: Unidad de memoria Problemas propuestos en examen ORGANIZACIÓN DE MEMORIA

Transcripción:

Enunciado ARQUITECTURA DE SISTEMAS PARALELOS 3º ITIS PROBLEMA DE MEMORIA VIRTUAL Se supone un sistema basado en microprocesador cuya jerarquía de memoria tiene los siguientes parámetros: Memoria Virtual: 16Mbytes en páginas de 512 bytes TLB: 64 líneas en total y asociativa 32 vías Caché: 64 Kbytes para datos Asociativo 4 vías Bloques de dos palabras Memoria física o principal: 4 Mbytes Palabras de 2 bytes Disco: memoria secundaria o archivo de intercambio de 64 Mbytes Especificar la tabla de páginas (TP), la TLB, la caché, la memoria principal y el fichero de intercambio Especificar los campos de la dirección virtual, la dirección de memoria principal, la dirección en disco, y los campos de la dirección de caché De dónde se saca la dirección que sirve de entrada a la caché? Suponed un proceso de 4 páginas, y que el sistema operativo asignan los marcos 4A, 4B, 4C y 4D a las páginas virtuales de este proceso cuando se inicia el mismo Cómo se rellenan los campos de la tabla de páginas? Cambiaría la TLB? Y cuando el sistema operativo empezase a ejecutar ese proceso? Cómo cambiarían la TP y la TLB si queremos acceder a la dirección 00023C hex? Acertaría en la caché si este es el primer acceso que ejecuta este proceso? Dónde tendría que estar este dato en la caché? Suponed que el sistema operativo asignará los marcos de memoria A0, A1, A2 y A3 a este proceso Qué pasaría si acto seguido se accede a la dirección 00023E hex? Acertaría en la TLB? Y estaría la página en memoria principal? Estaría el dato en la caché? Qué pasaría si acto seguido se accede a la dirección 000240 hex? Acertaría en la TLB? Y estaría la página en memoria principal? Estaría el dato en la caché? 1

Solución: Comenzaremos por dimensionar la tabla de páginas, con todos sus campos Cuántas entradas tendremos en la tabla de páginas? Tendremos tantas como páginas virtuales Podemos averiguar el número de páginas virtuales si sabemos cuantas páginas virtuales puede ver cada proceso: Tenemos un sistema de memoria virtual con 16 Mbytes, y páginas de 512 bytes 24 9 16 Mbytes / 512 bytes = 2 bytes / 2 bytes = 32768 páginas virtuales Por lo tanto la dirección virtual será: 23 9 8 0 número de página virtual (15 bits) desplazamiento La tabla de páginas devolverá una dirección en memoria principal o una dirección de disco (marco en disco o en memoria principal) Qué ancho tienen estas dos direcciones? Sabemos que tenemos 4Mbytes de memoria principal y 64Mbytes de disco, ambos divididos en páginas de 512 bytes 22 4 Mbytes / 512 bytes = 2 64 Mbytes / 512 bytes = 2 9 bytes / 2 bytes = 8192 marcos en memoria principal 26 9 bytes / 2 bytes = 131072 marcos en disco Por lo tanto la dirección en memoria principal será: 21 9 8 0 número de marco en memoria principal (13 bits) desplazamiento y la dirección en disco 25 9 8 0 número de marco en disco (17 bits) desplazamiento Y tendremos una tabla de páginas con la siguiente estructura Se escoge la implementación más usual con bit de validez (V) para indicar si la página está en disco o en memoria principal y el bit de página sucia (D) La tabla de páginas la direccionaremos con el campo número de página virtual de la dirección virtual 0 32767 V D Dirección página en memoria (principal ó disco) (17 bits) 2

Vamos a dimensionar la TLB Sabemos que tiene 64 líneas y es asociativa por conjuntos de 32 vías Esto quiere decir que la TLB va a tener dos entradas de 32 líneas cada una Cuál es la dirección que se le da como entrada a la TLB? La misma que se le da como entrada a la tabla de páginas, es decir el campo número de página virtual de la dirección virtual, pero la TLB va a tener un modo distinto de interpretar esta dirección para saber si una entrada en la tabla de páginas está o no en la TLB Si la TLB tiene 2 entradas/conjuntos (64 líneas y 32 líneas por conjunto), parte de la dirección de la TLB va a destinarse a seleccionar el conjunto (en concreto el bit menos significativo), y el resto se destinará a etiqueta Por lo tanto, la dirección entrada a la TLB nos queda así: número de página virtual 14 1 0 ETIQUETA E Y la TLB (en esta ocasión, en el dibujo cada columna es un conjunto) Conjunto/Vía cero Conjunto/Vía uno ETIQ V Dir Memoria ETIQ V Dir Memoria 0 -- 0 -- -- 0 -- 31 -- 0 -- -- 0 -- Ahora dimensionaremos la caché: tiene 64KB para datos, y bloques de 2 palabras, de 2 bytes cada una, y es asociativa de cuatro vías Cuántas líneas va a tener la caché? ((64Kbytes / 4 vias ) / 4 bytes por bloque) = 4096 líneas = 2 12 líneas Qué dirección se le suministrará a la caché? la dirección completa de memoria principal Cómo la interpretará? La estructura de direcciones de la caché sabiendo que es asociativa por conjuntos de 4 vías, bloques de 2 palabras de dos bytes cada una y con una memoria principal de 4 Mbytes será la siguiente: 21 14 13 2 1 0 ETIQUETA CONJUNTO/ENTRADA W B Cómo estará organizada la caché? Tendremos cuatro vías, y cada una de ellas tendrá 4096 líneas En cada línea se guarda información de línea válida, etiqueta y bloque de dos palabras de dos bytes cada una (un bloque en cada línea de la vía) 3

0 ETI V BLOQUE ETI V BLOQUE ETI V BLOQUE ETI V BLOQUE LRU 4095 (NOTA: en el anterior esquema el campo LRU presente en cada conjunto de 4 líneas es debido a que para implementar la política pseudo-lru con cuatro elementos hacen falta tres bits) Ya tenemos totalmente dimensionado el sistema Ahora suponemos que se crea un proceso en nuestra máquina, y que el sistema operativo le guarda espacio en disco en los marcos 4A hex 4D hex Lo primero que haría el sistema operativo sería crear una tabla de páginas para ese proceso, y rellenarla de la siguiente manera: V D Dirección página en memoria (principal ó disco) (17 bits) 0 0 0 4A hex 1 0 0 4B hex 2 0 0 4C hex 3 0 0 4D hex 32767 0 (NOTA: en la figura anterior los campos con las direcciones de página se supone que ocupan 17 bits pero se omite escribir todos los ceros a la izquierda por motivos de claridad Así por ejemplo 4A hex = 0 0000 0000 0100 1010 bin ) Esto no supondría cambio alguno en la TLB, puesto que todavía no hemos accedido a las páginas de este proceso y todavía no hemos llevado ninguna de estas a memoria Hay que recordar que en la TLB tenemos entradas pertenecientes a páginas virtuales que han sido llevadas a memoria principal Cuando el sistema operativo cambie de proceso y empiece a ejecutarlo, lo que hará será borrar la TLB Al acceder a la dirección virtual 00023C hex, habría que traducir esta dirección virtual a una dirección en disco o memoria principal Primero se mira en la TLB, que al haberse borrado no contiene ninguna línea válida Hay que buscar en la tabla de páginas En qué entrada? La dirección virtual en binario es: 0000 0000 0000 0010 0011 1100 bin Que se interpreta como: página: 0000 0000 0000 001 bin = página 1 desplazamiento: 0 0011 1100 bin = 03C hex 4

El dato que buscamos está en la página virtual nº1 Al mirar en la TP se ve que la página está en el marco 4B hex de disco Se trae a memoria principal, al marco A1, y se modifica la entrada de la página 1 en la TP V D Dirección página en memoria (principal ó disco) (17 bits) 0 0 0 4A hex 1 1 0 A1 hex 2 0 0 4C hex 3 0 0 4D hex 32767 0 Ahora actualizaremos la TLB Qué se guarda en la TLB? El mismo valor que se ha almacenado en la tabla de páginas, es decir, la dirección del marco de memoria principal que contiene la página virtual nº1 del proceso que se va a ejecutar 0000 0000 0000 001 dirección de la entrada/conjunto 1 en TP (La etiqueta es 0000 0000 0000 00 y el último bit sirve para indicar el conjunto/entrada 1 en la TLB) Como la TLB es una caché asociativa por conjuntos de 32 vías, el bloque se podrá guardar en cualquiera de las 32 líneas de la TLB del conjunto 1 Por comodidad se guarda el bloque en la primera línea (línea cero) del conjunto 1, puesto que está libre (hay que recordar que se vació la TLB al comenzar la ejecución del proceso) Conjunto/Vía cero Conjunto/Vía uno ETIQ V Dir Memoria ETIQ V Dir Memoria 0 -- 0 -- 0000 0000 0000 00 1 A1 hex 31 -- 0 -- -- 0 -- Una vez actualizada la TP y la TLB, la dirección virtual 00023C hex pasaría a ser la dirección de memoria principal 01423C hex (marco en MP + desplazamiento) Marco en memoria principal: 00A1 hex ( 0 0000 1010 0001 bin ) Desplazamiento: 03C hex ( 0 0011 1100 bin ) Con esta dirección de memoria principal (01423C hex ) se accede al caché para ver si está el dato Este dato no estará, porque es la primera vez que se accede a los datos de esa página, que han sido traídos desde disco, de manera que si el caché tenía un dato de esa dirección de memoria cuando sus datos pertenecían a otra página virtual, estos datos han sido invalidados Dónde buscará el dato en la caché? Veamos cómo ve la dirección de memoria nuestra caché: ETIQUETA INDICE W B 0000 0101 0000 1000 1111 0 0 5

Buscará el dato en alguna de las vías de la línea 143 (índice = 0000 1000 1111 bin = 08F hex ) y buscará la palabra 0 del bloque Al tener un fallo de caché, se traerá a la caché un bloque entero de memoria, y lo guardará en uno de los cuatro bloques de la línea 143 de la caché Qué direcciones se traerán a la caché?: 0000 0101 0000 1000 1111 0 0 bin = 01423C hex 0000 0101 0000 1000 1111 0 1 bin = 01423D hex 0000 0101 0000 1000 1111 1 0 bin = 01423E hex 0000 0101 0000 1000 1111 1 1 bin = 01423F hex Realmente se traerán dos palabras de dos bytes cada una Después de traer el bloque de memoria principal, el procesador podrá acceder al dato de la posición 01423C hex Si la siguiente dirección virtual a la que accede el procesador es la 00023E hex, volvería a consultar la TLB Primero vamos a descomponer los campos de esta dirección virtual La dirección virtual en binario es: 0000 0000 0000 0010 0011 1110 Que se interpreta como: página: 0000 0000 0000 001 bin = página 1 desplazamiento: 0 0011 1110 bin = 03E hex = desplazamiento 62 Buscará en la TLB el conjunto/entrada 1 de un bloque válido cuya etiqueta sea: 0000 0000 0000 000 Se produce un acierto (hit) en la TLB, pues es la misma página que consultamos anteriormente De este modo, se encontrará el bloque, y se dará como resultado que el dato está en el marco A1 hex de la memoria principal No habrá que consultar la tabla de páginas Ahora se consulta en la caché La dirección en memoria principal será: Número de marco en memoria principal: A1 hex Desplazamiento dentro de ese marco: 3E hex Por lo tanto la dirección en memoria principal queda como: 0000 0101 0000 1000 1111 1 0 bin De nuevo, consultaremos la caché El caché ve la dirección de la siguiente forma: ETIQUETA INDICE W B 0000 0101 0000 1000 1111 1 0 6

Es decir, busca dentro de la línea 143 (0000 1000 1111 bin = 8F hex ) un bloque válido con la etiqueta 0000 0101, y dentro de ese bloque buscará la palabra 1 El dato estará en memoria, pues el bloque asociado a esta dirección de memoria lo cargamos anteriormente en la caché cuando tuvimos el primer fallo de caché ( es la dirección 01423E hex ) Si después accedemos a la dirección virtual 000240 hex estaremos accediendo a la misma página virtual (marco en MP), que estará ya en la memoria principal, y por lo tanto volveremos a tener un acierto en la TLB, que volverá a convertir nuestra dirección virtual en: Número de marco en memoria principal: A1 hex Desplazamiento dentro de ese marco: 40 hex Esta vez buscaremos en la caché la siguiente dirección: 0000 0101 0000 1001 0000 0 0 ETIQUETA INDICE W B 0000 0101 0000 1001 0000 0 0 Buscará por primera vez un bloque válido en alguna de las cuatro vías de la línea 144 (0000 1001 0000 bin) de la caché que tenga la etiqueta 0000 0101, y buscará dentro de ese bloque la palabra 0 Este dato no está en la caché, y se producirá un fallo en caché (recordemos que todos los datos de la caché que pertenecían al marco A1 hex de memoria quedaron invalidados cuando cargamos la página virtual 1 de nuestro proceso) que hará que se traiga a caché otro bloque de la memoria principal (de la misma página virtual o marco que cargamos al principio en MP) con las siguientes direcciones de memoria: 0000 0101 0000 1001 0000 0 0 = 014240 hex 0000 0101 0000 1001 0000 0 1 = 014241 hex 0000 0101 0000 1001 0000 1 0 = 014242 hex 0000 0101 0000 1001 0000 1 1 = 014243 hex 7