]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - doc/informe.lyx
* Se agregan fclose faltantes .
[z.facultad/75.06/emufs.git] / doc / informe.lyx
index 8f32d425b5c843b094d58d614e1d91a9d4abd82f..f25411c771e74b48d8f0eb94bbdff9f4322fd635 100644 (file)
@@ -40,14 +40,6 @@ Alan Kennedy
 Leandro Lucarella
 \newline 
 Ricardo Markiewicz
-\layout Standard
-
-
-\begin_inset LatexCommand \tableofcontents{}
-
-\end_inset 
-
-
 \layout Chapter
 
 Introducción
@@ -57,12 +49,18 @@ Estructura com
 \layout Section
 
 Tipos
-\layout Subsection
-
-
-\begin_inset LatexCommand \label{sub:EMUFS}
+\layout Standard
 
-\end_inset 
+Se detallan a continuación los tipos de datos definidos y utilizados en
+ las distintas implementaciones que conforman nuestro sistema, siendo el
+ más importante de ellos, la estructura 
+\family typewriter 
+EMUFS
+\family default 
+ que actúa como interfaz común para el manejo de cualquier tipo de archivo
+ (no importa que tipo de organización física posea un archivo, esta estructura
+ prooverá una interfaz (funciones) para su manejo).
+\layout Subsection
 
 EMUFS
 \layout Standard
@@ -76,121 +74,116 @@ EMUFS
 \emph default 
 es la estuctura principal que encapsula todas las funciones para el manejo
  de un archivo de datos.
+ Posee punteros a funciones que dependiendo de la organización fisica por
+ la cual se opte dentro del sistema, serán asignados de acorde.
 \layout Standard
 
-Esta estructura consta de:
-\layout Enumerate
+Su declaración puede ser observada en el archivo 
+\series bold 
+emufs.h 
+\series default 
+y la misma cuenta con los siguiente campos:
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_Tipo
 \family default 
  que es un tipo enumerado que indica cual es la organización.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_BLOCK_SIZE
 \family default 
- indica el tamaño del bloque para los tipos de archivo con bloques (ver
- capítulos 
-\begin_inset LatexCommand \ref{cha:tipo1}
-
-\end_inset 
-
- y 
-\begin_inset LatexCommand \ref{cha:tipo3}
-
-\end_inset 
-
-).
-\layout Enumerate
+ indica el tamaño del bloque para los tipos 1 y 3.
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_REG_SIZE
 \family default 
- indica el tamaño del registro, para el tipo de archivo con tamaño de registro
- parametrizado (ver capítulo 
-\begin_inset LatexCommand \ref{cha:tipo3}
-
-\end_inset 
-
-).
-\layout Enumerate
+ indica el tamaño del registro, para el tipo 3 que posee tamaño constante.
+\layout Itemize
 
 
 \family typewriter 
-void*leer_bloque() 
+void **leer_bloque() 
 \family default 
 puntero a la función para leer un bloque.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 void *leer_bloque_raw()
 \family default 
  puntero a la función para leer un bloque, el anterior y el siguiente.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
-void*leer_registro()
+void **leer_registro()
 \family default 
  puntero a la función para leer un registro.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
-void*leer_registro_raw()
+void **leer_registro_raw()
 \family default 
  puntero a la función para leer un registro con su encabezado.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_REG_ID *grabar_registro()
 \family default 
  puntero a la función para grabar un registro.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_REG_ID *modificar_registro() 
 \family default 
 puntero a la función para modificar un registro.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 int *borrar_registro()
 \family default 
  puntero a la función para borrar un registro.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 EMUFS_Estadisticas *leer_estadisticas()
 \family default 
  puntero a la función para cargar una estructura con las estadísticas.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 void *compactar()
 \family default 
  puntero a la función para compactar un archivo.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
-charnombre
+char *nombre
 \family default 
  almacena el nombre del archivo sin extensión.
 \layout Standard
 
 Esta estructura define los valores de sus punteros según el tipo de organización
- que se desee manejar.
+ que se desee manejar y esto se realiza a través del API emufs, implementado
+ en 
+\series bold 
+emufs.c
+\series default 
+, que se describirá posteriormente.
 \layout Standard
 
 Por ejemplo si se desea crear un archivo de nombre 
@@ -244,15 +237,226 @@ emufs_tipo3_leer_bloque()
 \layout Subsection
 
 EMUFS_Tipo
+\layout Standard
+
+
+\family typewriter 
+EMUFS_Tipo
+\family default 
+ es un tipo de dato enum, el cual será utilizado en la cabecera de todo
+ archivo de datos (
+\series bold 
+.dat
+\series default 
+), para indicar los distintos tipos de organización física.
+ Su declaración puede verse en el archivo 
+\series bold 
+emufs.h.
+\layout Standard
+
+A saberse los valores y significado correspondiente que puede tomar este
+ tipo de dato son:
+\layout Enumerate
+
+Archivos con registros de longitud variable y bloques parametrizables.
+\layout Enumerate
+
+Archivos con registros de longitud variable sin bloques.
+\layout Enumerate
+
+Archivos con registros de longitud fija y bloques parametrizables.
 \layout Subsection
 
 EMUFS_Estadisticas
+\layout Standard
+
+
+\family typewriter 
+EMUFS_Estadisticas
+\family default 
+ es una estructura que almacenará los datos pertinentes a las estadísticas
+ de un archivo dado, y será utilizada para visualizar dichas observaciones
+ a través de la GUI.
+\layout Standard
+
+Su declaración puede ser observada en el archivo 
+\series bold 
+emufs.h 
+\series default 
+y la misma cuenta con los siguiente campos:
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ tam_archivo: indica el tamaño del archivo de datos (.dat) en bytes.
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ tam_archivos_aux: indica el tamaño de los archivos auxiliares sumados en
+ bytes.
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ tam_info_control_dat: indica la cantidad de bytes en información de control
+ utilizados para el archivo.
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ media_fs: promedio de espacio libre en el archivo de datos (por bloque
+ o gap promedio segun la org)
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ total_fs: total de espacio libre en el archivo de datos.
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ max_fs: máximo espacio libre en el archivo de datos (en un bloque o máximo
+ gap segun la org).
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ min_fs: idem pero mínimo.
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ cant_bloques: cantidad de bloques en el archivo de datos (.
+\series bold 
+dat
+\series default 
+)
+\layout Itemize
+
+
+\family typewriter 
+unsigned long
+\family default 
+ cant_registros: cantidad de registros en el archivo de datos (
+\series bold 
+.dat
+\series default 
+)
+\layout Standard
+
+En base a la estructura descripta anteriormente y mediante la utilización
+ de la función 
+\family typewriter 
+emufs_leer_estadisticas()
+\family default 
+ disponible en la estructura común 
+\family typewriter 
+EMUFS
+\family default 
+ handler de cualquier tipo de archivo, podremos obtener una serie de estadística
+s que pasamos a detallar (más alla de los datos básicos como cant registros,
+ cant bloques, tam archivo, etc):
+\layout Itemize
+
+
+\emph on 
+Relación entre espacio libre y el tamaño del archivo de datos (
+\series bold 
+.dat
+\series default 
+)
+\layout Itemize
+
+Relación entre el espacio ocupado por información de control y el tamaño
+ del archivo de datos (
+\series bold 
+.dat
+\series default 
+)
+\layout Itemize
+
+Cantidad promedio de espacio libre (en bloque o gap promedio)
+\layout Itemize
+
+Desviaciones extremas de espacio libre (máximo/mínimo espacio libre en bloque
+ o mayor/menor gap)
 \layout Subsection
 
-EMUFS_BLOCK_ID
+Tipos Comunes
 \layout Standard
 
-etc
+En la implementación de cada tipo de organización física, así como tambien
+ en las API de los archivos auxiliares comunes a ellas, se da la utilización
+ de tipo definidos para una clara interfaz entre las mismas, los cuales
+ son brevemente descriptos a continuación y pueden ser hayados en el archivo
+\series bold 
+emufs.h
+\series default 
+:
+\layout Itemize
+
+typedef 
+\family typewriter 
+unsigned long EMUFS_REG_ID
+\family default 
+: usado para representar un 
+\emph on 
+Id
+\emph default 
+ de un registro.
+\layout Itemize
+
+typdef 
+\family typewriter 
+unsigned long EMUFS_REG_SIZE
+\family default 
+: usado para representar el tamaño en bytes de un registro.
+\layout Itemize
+
+typedef 
+\family typewriter 
+unsigned long EMUFS_BLOCK_ID
+\family default 
+: usado para representar un número de bloque.
+\layout Itemize
+
+typdef 
+\family typewriter 
+unsigned long EMUFS_BLOCK_SIZE
+\family default 
+: usado para representar el tamaño en bytes de un bloque.
+\layout Itemize
+
+typedef 
+\family typewriter 
+unsigned long EMUFS_FREE
+\family default 
+: usado para representar espacio libre en bytes.
+\layout Itemize
+
+typedef 
+\family typewriter 
+unsigned long EMUFS_OFFSET
+\family default 
+: usado para representar un offset.
 \layout Section