EXAMEN PRIMER PARCIAL 2o Ingenierías 23 de junio de 2010 Datos personales Apellidos Nombre DNI Titulación Todas las respuestas deben escribirse con bolígrafo. La duración del examen es de 1.5 horas. Se debe adjuntar la resolución en folios aparte para tener el desarrollo durante una posible revisión, pero LA SOLUCIÓN VÁLIDA SERÁ LA QUE SE INDIQUE EN EL ESPACIO DEDICADO A LA RESPUESTA, ASÍ QUE REPASAD EL EJERCICIO ANTES DE RESPONDER. 1. (2.5 puntos) En un sistema se ejecutan los siguientes procesos con los tiempos indicados en unidades de tiempo. Proceso P1 P2 P3 T P1 P2 P3 T P1 P2 P3 CPU 2 1 7 E/S 4 3 3 CPU 2 1 1 E/S 2 3 2 CPU 4 1 1 0 0 a) (1 punto) Se pide rellenar el cronograma que se muestra, marcando lo que está ocurriendo a cada proceso, para ello utiliza las letras: E (en ejecución), B (bloqueado), L (en la cola de listos). El tiempo muestra el instante en el que comienza el tic representado. En caso de entrar dos procesos en el mismo instante en la cola de listos, entrarán en orden numérico, primero el menor. El algoritmo de planificación que estamos utilizando es “el menor tiempo restante primero”, con una estimación inicial de 4 u.t. igual para todos los procesos y con un alfa de 0.5. 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 0 0 b) (0.5 puntos) Indica el tiempo medio de espera y de retorno de los procesos anteriores. c) (1 punto) Cambiamos el algoritmo de planificación por uno de dos colas con realimentación, donde la primera cola (cola 0), que tiene la mayor prioridad, usa un Round-Robin de quantum 2 u.t. y la segunda cola (cola 1) otro RR de q=3 u.t. Un proceso sube a la cola 0 si se bloquea SIN CONSUMIR su quantum, y baja a la cola 1 si CONSUME SU QUANTUM totalmente. Se pide rellenar el cronograma que se muestra, marcando lo que está ocurriendo a cada proceso, para ello utiliza las letras: E (en ejecución), B (bloqueado), L (en la cola de listos) usando en ejecución y listos un subíndice para indicar la cola en la que se encuentra el proceso (E0 , L1 , etc.). El tiempo muestra el instante en el que comienza el tic representado. En caso de entrar dos procesos en el mismo instante en la cola de listos, entrarán en orden numérico, primero el menor. Todos los procesos entran inicialmente en la cola 0. 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 1 2. (2.5 puntos) Tenemos un sistema con direcciones virtuales de 29 bits, y direcciones físicas de 27 bits. El tamaño de la página es de 2048 bytes. Cada entrada de la TTP de dos niveles tiene 4 bytes. a) (0.25 puntos) Dibuja en el hueco siguiente la estructura de la dirección virtual (incluyendo los campos índice en los que se divide) indicando los bits de cada campo. b) (0.25 puntos) Calcula el tamaño en KB que tendría una TTP lineal. c) (0.25 puntos) Calcula el tamaño en KB de una TTP invertida si cada entrada ocupa 8 bytes y tenemos una memoria física de 64 MB. d ) (0.25 puntos) Realizamos los siguientes accesos a memoria (EN HEXADECIMAL): 00001832, 00403857, 00002820, 0040387A, 00301024, 00001882, 000008B0, 003010F0, 00001856, 00002832, 00403888, 003010DD. Extrae la página virtual, su descomposición los dos campos índice en que se divide, y el desplazamiento de cada dirección. No Dirección en binario Campos separados 0 1 2 3 4 5 6 7 8 9 10 11 e) (0.5 puntos) Tenemos asignados 4 marcos (0-3). Aplica el algoritmo de reemplazo de páginas denominado “del reloj” e indica qué página virtual acaba en cada marco tras los accesos. f ) (0.5 puntos) Dibuja cómo quedaría la TTP tras los accesos. g) (0.5 puntos) Queremos usar una versión de la segmentación paginada de Intel basada en el modelo descrito con direcciones virtuales de 29 bits, y sabemos que los accesos en una entrada par de la tabla (empezando por 0) pertenecen al segmento 0 y los que están en una entrada impar, al segmento 1. Usamos LRU como algoritmo de reemplazo. La base del segmento 0 es 0x10000000 y la del segmento 1 es 0x00010000. Los límites de los dos segmentos son 0x00800000. Indica cómo quedan ahora las estructuras de datos de la memoria virtual. 2