Universidad de Costa Rica - ECCI
Prácticas de laboratorio
Laboratorio #FS-1 Diseño del sistema de archivos
Objetivos
- General
- Hacer un diseño del sistemas de archivos de NachOS
- Específicos
- Entender los conceptos de "file system" (sistema de archivos), "directory" (directorio), "file" (archivo), "FileHeader", "OpenFile", "BitMap"
- Comprender los elementos que componen un sistema de archivos
- Determinar características de los elementos involucrados
- Comprender los cambios que ocurren cuando se escribe o lee a un sistema de arhivos de NachOS
- Entender los cambios solicitados por la tarea programada
- Determinar los elementos que deben mantenerse consistentes cuando ocurren accesos concurrentes
Requisitos
- Tener una instalación de NACHOS, se puede emplear el primer proyecto, "userprog"
- Tener instalado un editor de textos
- Papel y lápiz
Notas
- La parte de sistema de archivos se encuentra en el directorio "filesys" del proyecto NachOS
- Para realizar la compilación de esta parte se define estos símbolos en el archivo "Makefile" utilizando la directiva "-D FILESYS"
- Los discos están definidos en el directorio "machine": "disk.h" y "disk.cc"
Procedimiento
- Entender los elementos involcrados en la creación de un sistema de archivos
- Hacer un esquema en su diseño de los elementos que componen un sistema de archivos de NachOS: FileSys, BitMap, Directory, FileHeader, SynchDisk
- Hacer su esquema suponiendo que el sistema de archivos está "vacio"
- Determinar la unidad más pequeña que se puede leer o escribir a un sistema de archivos en NachOS, existe una unidad máxima?
- Explicar cómo se realiza las lecturas en los archivos y los elementos involucrados
- Determinar las estructuras involucradas/modificadas cuando se realiza una escritura
- Listar los elementos que requieren protección cuando hay accesos concurrents
- Estudiar la manera en que se construye un sistema de archivos en NachOS, revisar los archivos "filesys.h" y "filesys.cc", explicar los elementos que se crea cuando se llama al constructor de esta clase
- "File System": archivos "filesys.h" y "filesys.cc"
- Indicar los elementos que componen un sistema de archivos de NachOS
- Indicar el tamaño establecido para un sistema de archivos de NachOS
- Explicar cómo se determina esta tamaño máximo
- Anotar ¿Por qué existen dos "FileHeader" en la definición de un sistema de archivos ("file system") y para qué sirven?
- Investigar cómo puede ampliar esta capacidad, verificar que las estructuras involucradas soportarían esta mejora
- Estudiar la manera en que se manipula "el" directorio" de un sistema de archivos en NachOS, explicar los cambios que cree necesarios aplicar en esta clase
- "Directory": archivos "directory.h" y "directory.cc"
- Explicar los elementos que componen los directorios
- Indicar la manera que se representan los archivos
- Determinar la cantidad máxima de archivos que puede almacenar el sistemas de archivos de NachOS y explicar por qué
- Investigar cómo puede ampliar esta capacidad
- Estudiar la manera en que se almacena la información de un archivo en NachOS, explicar los cambios que cree necesarios aplicar en esta clase
- "FileHeader": archivos "filehdr.h" y "filehdr.cc"
- Describir los elementos de esta clase
- Determinar el tamaño máximo de un archivo en el sistema de archivos de NachOS, explicar por qué
- Investigar cómo puede ampliar esta capacidad
- Estudiar la manera en que se manipula los archivos abiertos en NachOS, explicar los cambios que cree necesarios aplicar en esta clase
- "OpenFile": archivos "openfile.h" y "openfile.cc"
- Explicar la manera en que se lee y escribe la información de los archivos en un sistema de archivos de NachOS
- Explicar como cambiarían estos procedimientos si la capacidad de un archivo es mayor a la propuesta por NachOS originalmente
- Estudiar el funcionamiento de los discos de NachOS
- "Disk": archivos "../machine/disk.h" y "../machine/disk.cc"
- Anotar si los cambios propuestos afectarían de alguna manera este dispositivo
- Recuerde anotar en su informe todos los cambios identificados, los archivos fuente que se modificarán y las pruebas a realizar