Hola Cristina,
Es cierto que un archivo tiene un solo inodo, pero no es el único bloque en disco que podría ocupar para almacenar sus metadatos, ya que, como es el caso del ejercicio, el inodo no solo tendrá punteros a bloques directos (que tienen datos del archivo) sino que también podría apuntar a bloques indirectos (que contienen punteros a otros bloques indirectos o a datos del archivo).
Es decir, un inodo es el principal y más importante bloque que tiene un archivo para ser representado, pero no es el único. Entre sus campos se puede tener:
- Punteros de dirección: apunta a un bloque de datos del archivo
- Punteros de indirección de primer nivel: apunta a bloques que contienen punteros de dirección
- Punteros de indirección de n-ésimo nivel: apunta a bloques que contienen punteros de indirección de (n-1)-ésimo nivel
En resumen, no son tablas lo que apuntan los punteros de indirección, sino bloques.
Así, en el caso de este ejercicio, precisás 4 bytes para direccionar cada bloque, y a su vez, cada bloque contiene 1024 bytes, por lo que si en un bloque almacenás punteros a otros bloques, tenés que cada uno de ellos puede contener hasta 1024 / 4 punteros a otros bloques.
Con esto, empezás a contabilizar la cantidad de bloques que podría ser "alcanzado" por un inodo si se utilizan todas las entradas:
- 4 directos = 4 bloques
- 4 indirectos = 4 * (cantidad de punteros que puede tener un bloque) = 4 * 1024 / 4 = 1024 bloques
- 4 indirectos dobles = 4 * (cantidad de punteros que puede tener un bloque) * (cantidad de punteros que puede tener un bloque) = 4 * 1024 / 4 * 1024 / 4 = 1024 * 1024 / 4 = 262144 bloques
Luego, el tamaño máximo de un archivo es 4 + 1024 + 262144 bloques = 263172 bloques = (263172 * 1024) bytes = 263172 Bytes
¡Saludos!