2.1 Arquitectura en dos niveles del SFB
El programa actual implementa un sistema de ficheros muy básico. Este sistema de ficheros se soporta sobre un archivo regular UNIX, que actuará a modo de disco virtual. Se ofrece una interfaz, llamada nivel de bloques físicos (NBF), definida en sffisico.h y que ofrece primitivas para leer y escribir bloques físicos de ese disco virtual. (Ustedes no deberán tocar este módulo, sólo usar sus servicios).
En el nivel de bloques físicos, los datos del disco virtual se organizan en forma de una secuencia de bloques de tamaño fijo, numerados de cero en adelante. A cada bloque de datos lo llamaremos bloque físico.
Por encima del nivel de bloques físicos, se encuentra el sistema de ficheros propiamente dicho, llamado sistema de ficheros básico (SFB). El SFB utiliza la interfaz de sffisico.h para trabajar con el disco virtual. En la implementación actual, el sistema de ficheros básico organiza el disco virtual en varias zonas: un bloque con la información del sistema, una zona con los descriptores de ficheros, y una zona de bloques de datos, según se expone más adelante.
El sistema de ficheros básico no es un programa autónomo. Es una biblioteca de funciones que pueden emplear en programas escritos por ustedes. Para servir de ejemplo y pruebas, con la distribución de muestra se acompañan algunos programas que hacen uso de los servicios del SFB.
2.2 Módulos que componen el programa
El programa actual reside en el directorio /prac/sfb, visible en la máquina SOPA y los PC del laboratorio. En él se encuentran la interfaz y la implementación del programa, así como algunos programas simples de ejemplo.
2.2.1 Interfaces públicas
errores.h Códigos de error
extrasfb.h Interfaz con el SFB (servicios añadidos por ustedes)
sfbasico.h Interfaz con el Sistema de Ficheros Básico
sffisico.h Interfaz con los bloques físicos
tipos.h Tipos básicos del programa
2.2.2 Implementación
bfb.h Bloques de fichero básico (interfaz)
bfb.c Bloques de fichero básico (implementación)
descr.h Descriptor de sistema de ficheros (interfaz)
descr.c Descriptor de sistema de ficheros (implementación)
errores.c Mensajes de error (implementación)
sfbasico.c Implementación del Sistema de Ficheros Básico
sffisico.c Implementación del nivel de bloques físicos
2.2.3 Makefile y pruebas
Estos ficheros se hallan en el directorio /prac/sfb/pruebas. Son programas muy simples que emplean los servicios del Sistema de Ficheros Básico, y que les servirán a la vez como ejemplos y como programas de prueba para sus modificaciones.
makefile Para compilar las pruebas
borra.c Borra un fichero básico
crea.c Crea un fichero básico
creasf.c Instala y da formato a un disco virtual
dire.c Muestra el directorio de un disco
escribe.c Escribe un bloque en un fichero básico
lee.c Lee un bloque de un fichero básico
machaca.c Programa que somete a prueba el SFB