I Nodos
Se agradecen sugerencias/comentarios a dlopezseco@hotmail.com
Las definiciones son solo para entender los ejercicios, no para contestar teoría
Próximamente colgare el de disco
I-nodosUNIX maneja todos los archivos mediante inodos.
Los i-nodos son nodos que contienen información acerca de los archivos y punteros a bloques donde están contenidos los archivos.
El tamaño máximo teórico de un archivo estará dado por la capacidad de direccionamiento que tenga el inodo.
El tamaño teórico máximo de un archivo puede ser mayor que el tamaño real del filesystem ya que elmismo está relacionado con la capacidad de direccionamiento que se obtiene a partir de los tamaños de punteros y de bloques elegidos.
I-Nodo
[pic]
El i-nodo contiene punteros directos, indirectos o de indireccion simple, doblemente indirectos o de indireccion doble, etc. Los de indireccion simple apuntan a bloques de punteros que apuntan a bloques con datos y así.
Ej.
Setiene 6 punteros directos, 2 indirectos y 1 doblemente indirecto, un bloque de 2KB y un puntero de 32 bits
Si vemos el grafico, deducimos a simple vista que lo direccionamos con los punteros directos son: 6 punteros * 2KB= 12 KB
Con los indirectos tenemos que hacer: 2 punteros * (cantidad de punteros en un bloque) * 2 Kb
La cantidad de punteros en un bloque se calcula como= Tamaño delbloque/ Tamaño del puntero.
Recomendación= Para hacer estos ejercicios conviene pasar todo a bytes, para evitar confusiones al multiplicar, ya que KB* KB= MB y MB*KB=GB.
Para los poco memoriosos: 8 bits=1byte
1024 bytes=1 kb
1024 KBytes = 1 MByte
1024 Mbytes = 1 Gbyte
1024 Gbytes = 1 TByte
Cantidad de punteros por bloque= (2 * 1024 / (32/8)) = 512
Ahora terminemosde calcular => 2 punteros * (512) * 2 * 1024 = 2 MB
Para calcular la indirección doble, hay que elevar la cantidad de punteros por bloque por 2, ya que pasamos por 2 niveles de bloques de punteros y la cantidad de punteros crece exponencialmente.
Indireccion doble= 1 puntero * (512)^2 * 2 * 1024 = 512 MB
Generalizando la formula= cantidad de punteros * (tamaño del bloque/tamaño delpuntero)^n * tamaño del bloque
Para punteros directos n=0,
Para indirectos n=1
Para doblemente indirectos n=2 y así….
Para saber el tamaño máximo del archivo es la suma de lo que dan los niveles= 12 Kb + 2 MB + 512 MB
El tamaño máximo de un directorio es lo mismo, el unix los directorios se manejan igual que los archivos.
En caso que no tengamos el tamaño de puntero
En algunosejercicios, este dato falta pero nos dicen que se pueden direccionar como máximo 20.000.000 bloques. Entonces tendríamos que ver cuantos bits necesitamos para direccional esa cantidad de bloques:
X= tamaño del puntero
20.000.000 = 2^X
X = log (20.000.000) / log 2 = 24.25 redondeando siempre para arriba = 25
El problema que surge es que 25 no es potencia de 2, entonces redondeamos hastala potencia mas cercana, 32
Tamaño Filesystem
En cambio, el tamaño máximo de la partición del File System estará relacionado con la capacidad máxima que yo tenga de almacenamiento.
Tam. máx. teórico del filesystem = cant. máx. de bloques direccionables • tam. de bloque
Tam. máx. real del filesystem = mín. (tam. máx. teórico del filesystem; espacio físico de almacenamiento)
Eltamaño máximo de la partición del File System estará dado por la capacidad de almacenamiento que poseemos en nuestros discos.
Ej.
Si nos dicen que tenemos 6 discos de 40 gb con Raid 4.
Tendríamos que calcular cuanto es dato y cuanto es redundancia.
No voy a explicar Raid, lean la teoría, como ayuda memoria les pongo cuanto se pierde de redundancia de datos para cada RAID...
Regístrate para leer el documento completo.