Buenas, te dejo como lo pense yo, y te recuerdo que los archivos vacios pueden apuntar a un mismo inodo (tengo entendido, si puede que un profesor me corrija) que sea "archivo vacio".
por lo que por ejemplo, puedes tener, que en cada carpeta en datos en datos[0] tengas 1 carpeta y 31 archivos como menciono el profesor, y en los otros 8, 32 archivos en cada uno.
Para un total de 287 archivos por carpeta y 1 carpeta (excepción la ultima carpeta donde todos son archivos), como tenemos 4096 inodos pero usamos 1 inodo para archivo vacio, tenemos 4095 inodos disponibles para las carpetas.
haciendo esto por inodos nos vemos limitados a un total de 4095*287+1 archivos, sin embargo si vemos, este numero de archivos no entra en el disco (4095*287+1)*32 > MAX_BLOQUES * 32.
Por lo que tendríamos MAX_BLOQUES * 32 - 4095 archivos.
Por lo que lo ideal es buscar la cantidad ideal de carpetas para poder tener la maxima cantidad de archivos posibles, es decir que cumple lo siguiente:
Una cantidad de carpetas tal que cumpla: (Cant_Carpetas * 287 + 1)*32 sea lo mas cercano posible a MAX_BLOQUES*32 - Cant_Carpetas (resto el espacio en disco que uso para las carpetas)
Un ejemplo:
Usando 115 carpetas, tenemos (115*287+1)*32 = 1056192 > 1048461 = MAX_BLOQUES*32 - 114
Por lo que con 115 carpetas tendríamos: 1056192 archivos maximo sin embargo esto es mas de lo que soportan los bloques (32768*32 = 1048576 entrada_dir), por lo que usando 115 carpetas, podemos tener 1048461 archivos (MAX_BLOQUES*32 - 115).
Si usaramos 116 carpetas serian menos archivos incluso (MAX_BLOQUES*32 - 116).
Usando 114 carpetas en cambio tenemos (114*287+1)*32 = 1047008 < 1048462 = MAX_BLOQUES*32 - 114.
Por lo que usando 114 carpetas podemos tener 1047008 archivos lo que es menor que con 115 carpetas (MAX_BLOQUES*32 - 115 = 1048461 > 1047008)
Por lo que lo ideal es tener 115 carpetas para tener un total de 1048461 archivos maximo.
por lo que por ejemplo, puedes tener, que en cada carpeta en datos en datos[0] tengas 1 carpeta y 31 archivos como menciono el profesor, y en los otros 8, 32 archivos en cada uno.
Para un total de 287 archivos por carpeta y 1 carpeta (excepción la ultima carpeta donde todos son archivos), como tenemos 4096 inodos pero usamos 1 inodo para archivo vacio, tenemos 4095 inodos disponibles para las carpetas.
haciendo esto por inodos nos vemos limitados a un total de 4095*287+1 archivos, sin embargo si vemos, este numero de archivos no entra en el disco (4095*287+1)*32 > MAX_BLOQUES * 32.
Por lo que tendríamos MAX_BLOQUES * 32 - 4095 archivos.
Por lo que lo ideal es buscar la cantidad ideal de carpetas para poder tener la maxima cantidad de archivos posibles, es decir que cumple lo siguiente:
Una cantidad de carpetas tal que cumpla: (Cant_Carpetas * 287 + 1)*32 sea lo mas cercano posible a MAX_BLOQUES*32 - Cant_Carpetas (resto el espacio en disco que uso para las carpetas)
Un ejemplo:
Usando 115 carpetas, tenemos (115*287+1)*32 = 1056192 > 1048461 = MAX_BLOQUES*32 - 114
Por lo que con 115 carpetas tendríamos: 1056192 archivos maximo sin embargo esto es mas de lo que soportan los bloques (32768*32 = 1048576 entrada_dir), por lo que usando 115 carpetas, podemos tener 1048461 archivos (MAX_BLOQUES*32 - 115).
Si usaramos 116 carpetas serian menos archivos incluso (MAX_BLOQUES*32 - 116).
Usando 114 carpetas en cambio tenemos (114*287+1)*32 = 1047008 < 1048462 = MAX_BLOQUES*32 - 114.
Por lo que usando 114 carpetas podemos tener 1047008 archivos lo que es menor que con 115 carpetas (MAX_BLOQUES*32 - 115 = 1048461 > 1047008)
Por lo que lo ideal es tener 115 carpetas para tener un total de 1048461 archivos maximo.