Sistemas operativos modernos
nejo del fallo tarda 2 ms). Si un programa tarda 60 s en ejecutarse, y durante ese tiempo causa 15,000 fallos de página, ¿cuánto tiempo tardaría en ejecutarse si se contara con el doble de memoria? 35. Un grupo de diseñadores de sistemas operativos para la Compañía de Computadoras Austeras está pensando en formas de reducir la cantidad de almacenamiento de respaldo que necesita su nuevo sistema operativo. El gurú en jefe acaba de sugerir no molestarse en guardar el texto del programa en el área de intercambio, sino paginarlo en forma directa del archivo binario cada vez que se ne cesite. ¿En qué condiciones, si acaso, funcionaría esta idea para el texto del programa? ¿Y para los datos? 36. Una instrucción de lenguaje de máquina que carga una palabra de 32 bits en un registro contiene la dirección de 32 bits de la palabra a cargar. ¿Cuántos fallos de página puede causar esta instrucción como máximo? 37. Explique la diferencia entre fragmentación interna y fragmentación externa. ¿Cuál se presenta en los sistemas de paginación? ¿Cuál se presenta en los sistemas que usan segmentación pura? 38. Si se está usando tanto segmentación como paginación, como en MULTICS, primero debe buscarse el descriptor de segmento y luego el descriptor de página. ¿El TLB también funciona de esta mane ra, con dos niveles de búsqueda? 39. Dibuje un histograma y calcule la media y la mediana de los tamaños de los archivos binarios ejecu tables en una computadora a la que tenga acceso. En un sistemaWindows, busque todos los archivos .exe y .dll; en un sistema UNIX, busque todos los archivos ejecutables en los directorios /bin, /usr/bin y ñocaUbin que no sean scripts (o use el programa utilitario^i/í para hallar todos los ejecutables). De termine el tamaño de página óptimo para esta computadora, considerando sólo el código (no los da tos). Tome en cuenta la fragmentación interna y el tamaño de la tabla de páginas, haciendo supuestos razonables acerca del tamaño de una entrada de tabla de páginas. Suponga que todos los programas tienen la misma probabilidad de ejecutarse y, por tanto, deben ponderarse igual. 40. Los programas pequeños para MS-DOS pueden compilarse como archivos .COM. Estos archivos siempre se cargan en la dirección 0 x 100 en un solo segmento de memoria que se usa para código, da tos y pila. En el caso de las instrucciones que transfieren el control de la ejecución, como JMP y CALL, o que denen acceso a datos estáticos desde direcciones fijas, las direcciones se incorporan al código objeto en el momento de la compilación. Escriba un programa que pueda reubicar tal archi vo de programa de modo que se ejecute principiando en una dirección arbitraria. Su programa debe rá explorar el código en busca de códigos objeto de instrucciones que hagan referencia a direcciones de memoria fijas, y modificar las direcciones que apuntan a posiciones de memoria dentro del inter valo a reubicar. Los códigos objeto pueden consultarse en un texto de programación en lenguaje en samblador. Cabe señalar que, en general, es imposible hacer esto perfectamente sin información adicional, porque algunas palabras de datos podrían tener valores que se confundan con códigos ob jeto de instrucciones. 41. Escriba un programa que simule un sistema de paginación. Al principio del programa, deberá pedir se al usuario que escoja un algoritmo de reemplazo de páginas, con opciones de FIFO, LRU y por lo menos una más. En cada ciclo, lea de un archivo el número de la página solicitada. Genere un lista do similar al de la figura 4-25, sólo que girado 90 grados para que cada nueva referencia a página au mente en una línea la longitud del archivo de salida. 42. Escriba un programa que modele el algoritmo de cadena de distancias descrito en el texto. Las entra das del programa son una lista de referencias a páginas (contenidas en un archivo) y el número de
RkJQdWJsaXNoZXIy MjI4NDcx