[EXAMEN FEBRERO 2005] PARTE 2 PRÁCTICA

[EXAMEN FEBRERO 2005] PARTE 2 PRÁCTICA

de Cristina Belen Techera Cedres -
Número de respuestas: 1

Letra y solución: http://www.fing.edu.uy/inco/cursos/sistoper/examenes/2005/Sol2005FEB.pdf

En la parte a) se pide el tamaño máximo que puede tener un archivo almacenado. Yo lo raconé de la siguiente manera: un archivo no puede ocupar más de un i-nodo, por lo cual hay que fijarse en la cantidad de bloques que se pueden referenciar desde el mismo y luego multiplicarlo por el tamaño de bloques.

El i-nodo tiene:

  • 4 punteros directos => referencia 4 bloques.
  • 4 punteros indirectos simples
  • 4 punteros indirectos dobles

1º duda) Por punteros indirectos simples entiendo que se referencia a una tabla y desde esa tabla al bloque en sí.  Y por punteros indirectos dobles entiendo que es una tabla que referencia a otra tabla y esa última tabla referencia a los bloques. ¿Es correcto esto?

2º duda) En caso de ser así, no me queda claro como ver la cantidad de bloques que son referenciados. En la solución plantean para los 4 punteros indirectos simples:  4 (por ser 4 ptros) * 1024 / 4 (donde 1024 es el tamaño de bloque y direccionar cada bloque consume 4 bytes). Pero no entiendo porque es as. ¿Por qué esa tabla tendría (tamaño bloque / tamaño direccionamiento bloque) lugares?


Desde ya, gracias.

En respuesta a Cristina Belen Techera Cedres

Re: [EXAMEN FEBRERO 2005] PARTE 2 PRÁCTICA

de Diego Esmir Gonzalez Morales -

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!