Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI-1311 Prácticas de laboratorio
Laboratorio #FS-4
Objetivos
- Lograr crear directorios de varios niveles, punto opcional 4
- Mejora de desempeño del sistema de archivos, punto opcional 5
Requisitos
- Tener una instalación de NachOS, se puede emplear el primer proyecto, "userprog"
Procedimiento
- Estructura de directorios de varios niveles (opcional)
- Debe diseñar una estrategia para lograr crear directorios dentro de otros
- Mejora de desempeño (opcional)
- Debe recompilar NachOS con la bandera -DREALISM, agregarla en el Makefile
- Utilice la cantidad de ticks empleados al correr el programa "test4.cc", corra "nachos -t"
- Este programa realiza lecturas y escrituras de un archivo grande
- Optimizar el posicionamiento en el disco y la latencia rotacional. Para leer o escribir un sector, las cabezas del disco debe ser movidas a la pista correcta y se debe esperar hasta que el sector correcto gire debajo de la cabeza. En sistemas con mucha carga en el disco, estas duraciones pueden desembocar en un desempeño pobre
- Las siguientes son sugerencias para realizar lo propuesto
- Colocando los bloques de un archivo en la misma pista
- Emplear una técnica distinta a FIFO para la atención de las solicitudes al disco, por ejemplo, SSTF, pero procure también evitar la inanición
- Modifique el sistema de archivos para que mantenga un cache de los bloques de los archivos
- Cuando se reciba una solicitud de lectura a un bloque, se debe verificar si existe en el cache, si existe simplemente se retorna el bloque y no es necesario la lectura en el disco
- Una mejora es que en lugar de siempre escribir el bloque al disco inmediatamente, se mantiene el estado de los bloques 'sucios' ("dirty"), lo que serán escritos más adelante, esto se denomina "write-behind"
- Otra mejora es leer el siguiente bloque de un archivo (i+1) y colocarlo en el cache, cuando se solicita un bloque (i) de ese archivo, esto se denomina "read-ahead"
- Solo puede utilizar un cache con 64 bloques de disco (aproximadamente el 6% del total del espacio del disco), este límite debe incluir la memoria que se utiliza para los archivos abiertos, el bitmap, directorios, etc., si los mantienen en memoria
- Para cada una de la mejoras que implementa, explique cuál es la mejora en desempeño esperada y porqué las otras alternativas (aquellas que no implementó) tendrían menor desempeño, empleando el mismo esfuerzo de programación
- Anote en su informe todos los cambios realizados, los archivos fuente involucrados y las pruebas realizadas
- Verifique el programa "fstest" funcione correctamente
- Fin.