]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
Tipos agregados, creo que todos. No me convence aun como esta explicado el tema de...
authorAlan Kennedy <kennedya@3dgames.com.ar>
Mon, 19 Apr 2004 05:49:22 +0000 (05:49 +0000)
committerAlan Kennedy <kennedya@3dgames.com.ar>
Mon, 19 Apr 2004 05:49:22 +0000 (05:49 +0000)
doc/informe.lyx

index 8f32d425b5c843b094d58d614e1d91a9d4abd82f..f25411c771e74b48d8f0eb94bbdff9f4322fd635 100644 (file)
@@ -40,14 +40,6 @@ Alan Kennedy
 Leandro Lucarella
 \newline 
 Ricardo Markiewicz
 Leandro Lucarella
 \newline 
 Ricardo Markiewicz
-\layout Standard
-
-
-\begin_inset LatexCommand \tableofcontents{}
-
-\end_inset 
-
-
 \layout Chapter
 
 Introducción
 \layout Chapter
 
 Introducción
@@ -57,12 +49,18 @@ Estructura com
 \layout Section
 
 Tipos
 \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
 
 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.
 \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
 
 \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.
 
 
 \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 
 
 
 \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 
 
 
 \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 
 
 
 \family typewriter 
-void*leer_bloque() 
+void **leer_bloque() 
 \family default 
 puntero a la función para leer un 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.
 
 
 \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 
 
 
 \family typewriter 
-void*leer_registro()
+void **leer_registro()
 \family default 
  puntero a la función para leer un registro.
 \family default 
  puntero a la función para leer un registro.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 
 
 \family typewriter 
-void*leer_registro_raw()
+void **leer_registro_raw()
 \family default 
  puntero a la función para leer un registro con su encabezado.
 \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.
 
 
 \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.
 
 
 \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.
 
 
 \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.
 
 
 \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.
 
 
 \family typewriter 
 void *compactar()
 \family default 
  puntero a la función para compactar un archivo.
-\layout Enumerate
+\layout Itemize
 
 
 \family typewriter 
 
 
 \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
 \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 
 \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 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 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
 
 \layout Subsection
 
-EMUFS_BLOCK_ID
+Tipos Comunes
 \layout Standard
 
 \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
 
 
 \layout Section