Teoría de Sistemas Operativos, 2013 Certamen 2 Alumno: • • • • • • RUN: NOTA: Cada pregunta debe ser respondida en la hoja respectiva. Coloque su Nombre y RUN en donde corresponda. Debe responder en forma clara y ordenada, no mezclando respuestas. Si no responde una pregunta, deje un espacio en blanco. Si sus respuestas no cumplen con estos requisitos, no se corregirán y no tendrán derecho a recorrección. Las respuestas escritas con lápiz grafito NO tienen derecho a recorrección. Tiene 90 minutos para responder. Estas instrucciones rigen para todas las preguntas del certamen Pregunta 1 Se tiene un sistema con memoria virtual paginada, con 128 [MiB] de memoria principal, con frames de 2n[KiB]. La arquitectura es de 16[bits]. Se sabe que cada proceso tiene un espacio de direcciones virtuales de 16[MiB]. La dirección virtual de memoria es de la forma (p,d), mientras que dirección física de memoria es de la forma (f,d), donde p representa los bits para las páginas, f los bits para los frames y d los bits para el desplazamiento respectivo. Determine la función S(n), que permite calcular el tamaño de la tabla de páginas del sistema Solución Para determinar el tamaño de la tabla de páginas, es necesario determinar la cantidad de registros de ella y el tamaño de cada registro. La primera cantidad tiene relación con la cantidad de páginas virtuales que tiene el proceso (2p), mientras que la segunda, con la cantidad de frames en memoria principal (2f). El tamaño de la tabla de página está dada por la relación: 𝑆 = 2! ∙ 𝑓 Cantidad de páginas virtuales Según los datos del problema, la cantidad de páginas virtuales son 2p. 2! = 𝐸𝑠𝑝𝑎𝑐𝑖𝑜𝐷𝑖𝑟𝑉𝑖𝑟𝑡𝑢𝑎𝑙𝑒𝑠 2! ∙ 2!" [𝐵] = ! !" = 2!"!! 𝑇𝑎𝑚𝑎ñ𝑜𝑃á𝑔𝑖𝑛𝑎 2 ∙ 2 [𝐵] Cantidad de frames en memoria principal Según los datos del problema, la cantidad de páginas virtuales son 2f. 2! = 𝐸𝑠𝑝𝑎𝑐𝑖𝑜𝐷𝑖𝑟𝐹í𝑠𝑖𝑐𝑎𝑠 2! ∙ 2!" [𝐵] = ! !" = 2!"!! 𝑇𝑎𝑚𝑎ñ𝑜𝐹𝑟𝑎𝑚𝑒 2 ∙ 2 [𝐵] Luego, 𝑓 = 17 − 𝑛 [𝑏𝑖𝑡𝑠] Por lo tanto, la tabla de página tiene un tamaño de: 𝑆 = 𝑆 𝑛 = 2!"!! ∙ 17 − 𝑛 [𝑏𝑖𝑡𝑠] 1 Pregunta 2 El equipo de innovación de negocios de la empresa ZFC (por la siglas de su dueño, Zacarías Flores del Campo) está diseñando un estacionamiento como el de la Figura 1, cuyas características son: • • • El estacionamiento se compone de 50 sectores. Un automóvil cabe dentro de un sector del estacionamiento. Sólo se permite un auto en movimiento dentro del estacionamiento Se necesita modelar este sistema y para eso se contrató a un asesor, el que después de pensar y luego cobrar 50UF, dijo que el problema se resuelve utilizando el concepto de semáforos de los Sistemas Operativos y que cada auto se puede modelar por el siguiente algoritmo: automóvil(){ llega_a_la_entrada(); entra_al_estacionamiento(); estaciona(); llega_a_la_salida(); sale(); } Todo iba bien hasta que el asesor desapareció con el dinero. El jefe del equipo, indignado por la situación, toma cartas en el asunto y lo contacta a usted, debido a que tiene muy buenas referencias de los alumnos de la carrera de Ingeniería Civil Informática, en lo que respecta a conceptos de Sistemas Operativos. Su misión es completar el algoritmo que simula el funcionamiento de cada automóvil. Como recompensa, y si hace bien su trabajo, éste equivaldrá al 35% de la nota final del Certamen 2 de la asignatura de Sistemas Operativos. Para optar a la totalidad del puntaje, usted deberá explicar muy bien su solución. Salida Entrada Figura 1 Solución Una solución posible es utilizando dos semáforos: uno para exclusión mutua del estacionamiento y otro para monitorear los sectores disponibles. llega_entrada(){ //primero verifica si hay sectores disponibles wait(disponibles); //Luego verifica si puede transitar por el estacionamiento wait(mutex); } estaciona(){ //Al llegar a su sector, debe permitir que otro //automóvil pueda transitar signal(mutex); //Al querer moverse para salir del estacionamiento, //debe esperar que ningún otro automóvil esté en movimiento. wait(mutex); } sale(){ //Al salir, primero debe //permitir que otro automóvil pueda transitar signal(mutex); //Luego, debe aumentar en uno la cantidad de sectores //disponibles signal(disponibles); } 2 Pregunta 3 Un sistema computacional tiene punteros a direcciones físicas de 5 [bits]. La memoria física está dividida en 8 frames. La dirección virtual de memoria tiene 5 [bits]. Se tiene un programa de 14 instrucciones, que es cargado en memoria principal según el mapa de memoria de la. Procesador p [bits] d [bits] p d inst. inst. inst. inst. 00 01 02 03 inst. 12 inst. 13 Tabla de páginas 0 Dirección Base Tabla de Páginas 0xFFAA + + inst. 08 inst. 09 inst. 10 inst.11 N-1 inst. 04 inst. 05 inst. 06 inst. 07 Memoria Principal (Frames) 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Dirección Física Figura 2 a) Diseñe la MMU del sistema. Esto significa que debe determinar todos los anchos de los buses involucrados y la cantidad de registros de la tabla de páginas. Debido a que los frames tienen 4 registros, d=2[bits]. Como la DV tiene 5[bits], entonces p=3[bits]. Como hay 8 frames en memoria principal, f=3[bits]. Además, como p=3[bits], la tabla de páginas tiene N=8[registros]. Cada registro es de 3[bits], ya que almacena un número de frame. b) Determine el contenido de la tabla de páginas. Índice 0 1 2 3 4 5 6 7 Dato 000 111 100 010 3