[Examen Agosto 2020] [Problema 2][c] Agregar un bloque de entrada_dir

[Examen Agosto 2020] [Problema 2][c] Agregar un bloque de entrada_dir

de Guillermo Daniel Toyos Marfurt -
Número de respuestas: 0

Buenas, tenía unas dudas con la solucion presentada para la parte c de este ejercicio.

Para agregar un nuevo bloque a un directorio lo que se hace en la sol. es:

  1. Buscar un bloque libre en el mapa de bits.
  2. Ir al ultimo bloque de la FAT
  3. Leer el bloque libre obtenido
  4. Setear todas las entradas como no usadas
  5. Escribir el bloque con la configuracion anterior
  6. Actualizar la FAT y el mapa de bits.

Por que es necesario leer el contendio del bloque que obtuvimos? Por qué no basta con declarar el buffer (contenido sin definir), setear las entradas de directorios como no usadas y escribir al disco? 

Mi otra consulta es, no se podria tener una entrada de directorio con ningun bloque asigando? En la solución se supone que por lo menos hay un bloque (El que valdría -1 en la FAT). De la solución:

var iter = directorio.inicio; while (!F[iter] == -1) { iter = F[iter]; }

En ese sentido todo archivo tendria que tener asigando un bloque. Si fuera posible, como se modela un archivo que no ocupa tamaño en el disco? (De hecho, en la parte A dice que podemos tener archivos sin tamaño en el disco, pero en la letra creo que no aclara como se modela).