Examen Febrero 2021. Bloque3

Examen Febrero 2021. Bloque3

de Carolina Acosta Gonzalez -
Número de respuestas: 2

No estoy entendiendo porque en la solución hacen 

"int bloqueInodo = floor(actual / 256); 

int offsetInodo = actual % 256;"

siendo que actual se actualiza haciendo "actual = buffEntrada[ent].num_inodo;" por lo que yo entiendo que es el numero de inodo del file o directorio encontrado. 

Muchas gracias

En respuesta a Carolina Acosta Gonzalez

Re: Examen Febrero 2021. Bloque3

de Guillermo Daniel Toyos Marfurt -
Hola. Creo que es porque en las primeras lineas de la letra dice:

Tabla de inodos: bloque 0..255
Bloques de datos: bloque 256..MAX_BLOQUES

En mi opinión la sintaxis que usaron no fue muy feliz, al principio pensé que se trataba de una tabla con la posición de los inodos en los bloques (que va de 0 a 255). Pero mirando la solución lo que refleja es la disposicón de los inodos en el disco: los indodos estan en los bloques 0 a 255.

Entonces dado un inodo, para acceder a el lo que tenés lo que hacer es hallar el bloque en donde está (dividiendolo por 256 ya que cada bloque tiene 256 nodos) y luego en el bloque tomar el offset.
En respuesta a Carolina Acosta Gonzalez

Re: Examen Febrero 2021. Bloque3

de Manuel Freire -
Hola,

Tal como dice Guillermo, al comienzo del ejercicio se muestran qué bloques se utilizan para los inodos y para ir a buscar un inodo en particular se debe leer el bloque inodo_num/256 y allí ir a la entrada inodo_num%256.

Saludos!