X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/87b4ed1e750753657419fc12ca49b40ac0b395be..baf79a90e2addd39a342fcb910bbfdb6ee6623cf:/doc/informe.lyx?ds=sidebyside diff --git a/doc/informe.lyx b/doc/informe.lyx index 68b9c79..ab091fa 100644 --- a/doc/informe.lyx +++ b/doc/informe.lyx @@ -43,6 +43,53 @@ Ricardo Markiewicz \layout Chapter Introducción +\layout Standard + +Esta es la documentación correspondiente a las API`s para el manejo de tres + organizaciones de archivo diferentes. + A continuación se describe cada una de ellas y su modo de funcionamiento + y sus características principales. + De la correcta elección de la organización, dependerá la eficiencia de + la aplicación que la utilice. + +\layout Standard + +EMUFS se presenta como un +\emph on +emulador +\emph default + de un +\emph on +filesystem +\emph default +, capaz de administrar datos almacenados en cualquiera de las tres organizacione +s de archivo previamente mencionadas, las cuales a saberse son: +\layout Enumerate + +Registros de Longitud Variable, Bloques de tamaño parametrizable +\layout Enumerate + +Registros de Longitud Variable, Sin Bloques +\layout Enumerate + +Registros de Longitud Fija, Bloques de tamaño parametrizables +\layout Standard + +A través de este trabajo, se podrán observar las diferencias entre distintos + tipos de organización de archivos, ventajas y desventajas de cada una de + ellas, y las situaciones particulares que deberá sortear un filesystem, + como la partición de registros en distintos bloques, manejo de espacio + libre, compactación de un archivo, etc. +\layout Standard + +A continuación, veremos que el manejo de los archivos en EMUFS se realiza + a través de una estructura de control comun para cualquier tipo de archivo, + dandole flexibilidad y escalabilidad a nuestro sistema. +\layout Standard + +Hacia el final de esta presentación, se observaran las pruebas realizadas + con las distintas organizaciones de archivos, y las conclusiones obtenidos + al respecto. \layout Chapter Estructura común @@ -688,13 +735,7 @@ Esto har articulos.dat \series default , con la organización física tipo 3 con registros de longitud fija de 50 - bytes y bloques de 200 bytes (si el archivo ya existiaera, puede ser abierto - con la función -\family typewriter -emufs_abrir() -\family default -, pasando como parámetro sólo el nombre de archivo, la función autodetecta - el tipo de archivo y sus datos adicionales). + bytes y bloques de 200 bytes. Al mismo tiempo, los se asginarán valores a los punteros a funciones que posee dicha estructura, la cual de ahora en más estará en condiciones de manejar un archivo del tipo 3. @@ -705,7 +746,7 @@ emufs_abrir() \begin_inset Float figure placement H wide false -collapsed false +collapsed true \layout Caption @@ -729,7 +770,7 @@ As sucedera lo siguiente: \layout LyX-Code -efs->leer_registro(params) -- llama a --> emufs_tipo3_leer_registro(params) +efs->leer_registro(params) -- calls --> emufs_tipo3_leer_registro(params) \layout Standard Como se puede observar, la estructura @@ -739,12 +780,6 @@ EMUFS permitirá el manejo de cualquier tipo de archivo, a través del mismo código, dandole gran flexibilidad a nuestro sistema, que podrá expandirse a más tipos de archivos de ser necesario. -\layout Standard - -Finalmente hay otra función estática que sirve para destruir la estructura, - liberando su memoria: -\family typewriter -emufs_destruir() \layout Chapter Archivos Auxiliares @@ -2274,6 +2309,9 @@ Esta implementaci Ver: \family typewriter emufs_tipo1_compactar() +\layout Section + +Detalles de implementación (funciones internas, ver si lo ponemos o no) \layout Chapter @@ -2348,7 +2386,7 @@ o freespace \begin_inset Float figure placement H wide false -collapsed true +collapsed false \layout Caption @@ -3455,6 +3493,29 @@ Luego de grabar un registro, actualiza los archivos de para mantener la coherencia. \layout Standard +Cuando nos encontramos con registros multibloque, se calcula cuantos bloques + ocupará el registro de la siguiente manera: +\family typewriter +Cantidad de Bloques = 1 + Tamaño del Registro/(Tamaño del Bloque-Sizeof(EMUFS_RE +G_ID) +\layout Standard + +Esta ecuación solo falla en el caso que el tamaño del registro y el tamaño + del bloque sean iguales, en tal caso, se coloca el valor 1 en +\family typewriter +Cantidad de Bloques +\family default + post verificación. +\layout Standard + +Y con esta información se realiza un ciclo +\family typewriter +for +\family default + que grabará tantas veces como sea necesario levantando y grabando los bloques + que correspondan. +\layout Standard + Ver: \family typewriter emufs_tipo3_grabar_registro() @@ -3479,6 +3540,11 @@ Cabe destacar que para dar de baja un registro no hace falta borrarlo del ser así, si no se realizara el mismo. \layout Standard +En el caso de los registros multibloque, se eliminará la porción del registro + contenida en el primer bloque y se actualizarán de manera conveniente los + archivos índice, para restaurarlos a un valor verdadero. +\layout Standard + Ver: \family typewriter emufs_tipo3_borrar_registro()