]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
escribi un poco mas, pero sigo pensado que mucho de lo que puse puede ser redundante...
authorNicolás Dimov <ndimov@gmail.com>
Sun, 18 Apr 2004 05:01:16 +0000 (05:01 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Sun, 18 Apr 2004 05:01:16 +0000 (05:01 +0000)
doc/doc_t3/tipo3_doc.lyx

index 784c8560cb9752d0010b2d0931877cf2ac0dc519..c40b9e670d8bd5848669cbad04ed8df7fc3b01d9 100644 (file)
@@ -136,11 +136,11 @@ tipo3.h
 \emph on 
 tipo3.c
 \emph default 
 \emph on 
 tipo3.c
 \emph default 
- se encuentran las cabeceras y la implementación de las funciones principalesde
+ se encuentran las cabeceras y la implementación de las funciones principales
  respectivamente, las cuales dan funcionalidad a esta organización.
 \layout Standard
 
  respectivamente, las cuales dan funcionalidad a esta organización.
 \layout Standard
 
-A continuación se comentara el funcionamiento de cada una de ellas.
+A continuación se comentará el funcionamiento algunas de las mas importantes.
 \layout Subsubsection
 
 void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE*
 \layout Subsubsection
 
 void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE*
@@ -158,6 +158,13 @@ reg_size
 \emph default 
 el tamaño del registro leido, que en este caso no es necesario pues es constante
  y es conocicdo de antemano.
 \emph default 
 el tamaño del registro leido, que en este caso no es necesario pues es constante
  y es conocicdo de antemano.
+\layout Standard
+
+Para realizar esta acción, busca en el archivo 
+\emph on 
+.idx 
+\emph default 
+el bloque al cual pertenece el registro.
 \layout Subsubsection
 
 void* emufs_tipo3_leer_bloque(EMUFS *emu, EMUFS_BLOCK_ID num_bloque, int*
 \layout Subsubsection
 
 void* emufs_tipo3_leer_bloque(EMUFS *emu, EMUFS_BLOCK_ID num_bloque, int*
@@ -171,6 +178,86 @@ num_bloque
 \emph default 
 ).
  
 \emph default 
 ).
  
+\layout Standard
+
+Como la numeración de los bloques es 
+\emph on 
+virtual, 
+\emph default 
+el acceso al archivo para levantar un bloque es directo, es decir, se posiciona
+ directamente en en número de bloque multiplicado por el tamaño del mismo,
+ salteando antes el encabezado del archivo.
+\layout Subsubsection
+
+EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE
+ tam, int* err)
+\layout Standard
+
+Graba un registro en un bloque donde haya espacio suficiente, y si no crea
+ un nuevo bloque y lo agrega al final del archivo.
+\layout Standard
+
+El registro a grabar es apuntado por el segundo parámetro ( 
+\emph on 
+ptr 
+\emph default 
+) y el tamaño viene indicado en el tercero ( 
+\emph on 
+tam
+\emph default 
+ ).
+\layout Standard
+
+Luego de realizar la grabación, actualiza los archivos índice con los valores
+ correspondientes.
+\layout Subsubsection
+
+int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID)
+\layout Standard
+
+Borra el registro indicado por el segundo parámetro ( 
+\emph on 
+ID
+\emph default 
+ ) del archivo de datos, y actualiza los archivos de índice para mantener
+ la coherencia en las próximas modificaciones.
+\layout Standard
+
+Al borrar un registro, justifica los demás registros del bloque hacia la
+ izquierda.
+\layout Subsubsection
+
+EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *emu)
+\layout Standard
+
+Completa una estructura del tipo EMUFS_Estadisticas con las estadísticas
+ del archivo de datos, espacio libre total, cantidad de registros, cantidad
+ de bloques, tamaño del archivo en bytes, relaciones entre tamaños y espacios
+ libres, etc.
+\layout Subsubsection
+
+void emufs_tipo3_compactar(EMUFS *emu)
+\layout Standard
+
+Esta función intenta reorganizar el archivo de manera que el espacio libre
+ sea lo menor posible, recordando siempre que un registro no puede ser almacenad
+o en mas de un bloque excepto que el tamaño del registro sea mayor que el
+ del bloque.
+\layout Standard
+
+Para realizar esto, se aprovecha la funcionalidad de 
+\emph on 
+emufs_tipo3_grabar_registro() 
+\emph default 
+ya que esta tiene la capacidad de determinar una posición mas eficiente
+ en el archivo para un registro.
+ Por esto lo que se hace es levantar uno por uno los registros y volverlos
+ a grabar, de ese modo todos los 
+\emph on 
+gaps 
+\emph default 
+que pudieron haberse formado por la eliminación de registros serán cubiertos
+ por otros.
 \layout Subsection
 
 IDX
 \layout Subsection
 
 IDX
@@ -201,6 +288,4 @@ Si el tama
  se guardará desde el comienzo de un bloque, esto quiere decir que nunca
  se podrá encontrar un comienzo de registro en algún lugar de un bloque
  que no sea el comienzo del mismo.
  se guardará desde el comienzo de un bloque, esto quiere decir que nunca
  se podrá encontrar un comienzo de registro en algún lugar de un bloque
  que no sea el comienzo del mismo.
-\layout Enumerate
-
 \the_end
 \the_end