]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - doc/informe.lyx
Commit preventivo.
[z.facultad/75.06/emufs.git] / doc / informe.lyx
index 5505ca77b3949ae00e4478c5359dce85376d424e..8f32d425b5c843b094d58d614e1d91a9d4abd82f 100644 (file)
@@ -40,6 +40,14 @@ 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
@@ -51,6 +59,11 @@ Estructura com
 Tipos
 \layout Subsection
 
 Tipos
 \layout Subsection
 
+
+\begin_inset LatexCommand \label{sub:EMUFS}
+
+\end_inset 
+
 EMUFS
 \layout Standard
 
 EMUFS
 \layout Standard
 
@@ -1562,6 +1575,163 @@ A continuaci
 \layout Section
 
 Funciones principales
 \layout Section
 
 Funciones principales
+\layout Standard
+
+Las funciones principales son las necesarias para completar la estructura
+ EMUFS (ver página 
+\begin_inset LatexCommand \pageref{sub:EMUFS}
+
+\end_inset 
+
+).
+\layout Subsection
+
+Lectura de registros
+\layout Standard
+
+Para leer un registro se hace uso del archivo de índice (ver página 
+\begin_inset LatexCommand \pageref{sec:idx}
+
+\end_inset 
+
+), obteniéndose el número de bloque en donde está almacenado el registro
+ a buscar.
+ Una vez obtenido, se carga en memoria el bloque entero y se busca secuencialmen
+te en él (leyendo la cabecera de cada registro y salteando los datos) hasta
+ encontrar el registro pedido.
+ Una vez encontrado se lo copia y devuelve.
+\layout Standard
+
+Si se tratara de un registro 
+\emph on 
+multibloque
+\emph default 
+ (ver sección 
+\begin_inset LatexCommand \ref{sub:tipo1_reg_multi}
+
+\end_inset 
+
+), se procede forma similar, sólo que se cargan en memoria uno a uno los
+ bloques que componen el registro y se van copiando (y uniendo) los 
+\emph on 
+fragmentos
+\emph default 
+ hasta completarlo.
+\layout Standard
+
+Ver: 
+\family typewriter 
+emufs_tipo1_leer_registro()
+\layout Subsection
+
+Altas de registros
+\layout Standard
+
+Para realizar el alta de un registro, lo primero que se obtiene es un identifica
+dor, buscando primero en el archivo de identificadores recuperables (pág.
+\begin_inset LatexCommand \ref{sec:did}
+
+\end_inset 
+
+) y de no haber ninguno, buscando el mayor identificador presente en el
+ archivo de índice (pág.
+\begin_inset LatexCommand \ref{sec:idx}
+
+\end_inset 
+
+) y sumándole uno.
+ El paso siguiente es buscar un bloque con espacio libre suficiente como
+ para almacenar el registro (y su cabecera) en el archivo de control de
+ espacio libre (pág.
+\begin_inset LatexCommand \ref{sec:fsc}
+
+\end_inset 
+
+) y cargarlo completo en memoria.
+ De no encontrarse, se crea un bloque nuevo al final de archivo.
+ En el bloque cargado en memoria, se agrega el registro nuevo (con su cabecera)
+ al comienzo del espacio libre (calculado a partir del tamaño del bloque
+ y el espacio libre en bloque) y se lo graba en disco.
+ Finalmente se agrega (o actualiza) el identificador al archivo índice y
+ el espacio libre en el bloque.
+\layout Standard
+
+Si el registro ocupara más de un bloque (ver sección 
+\begin_inset LatexCommand \ref{sub:tipo1_reg_multi}
+
+\end_inset 
+
+), se buscan N bloques consecutivos (todos los que necesite el registro)
+ absolutamente libres
+\begin_inset Foot
+collapsed true
+
+\layout Standard
+
+Incluso el último bloque debe estar absolutamente libre para cumplir con
+ las condiciones presentadas en la sección 
+\begin_inset LatexCommand \ref{sub:tipo1_reg_multi}
+
+\end_inset 
+
+.
+\end_inset 
+
+ y graba bloque a bloque cada 
+\emph on 
+fragmento
+\emph default 
+ del registro (con sus cabeceras intermedias), al último 
+\emph on 
+fragmento
+\emph default 
+ se lo trata de forma análoga a un registro 
+\emph on 
+simple
+\emph default 
+.
+ Por cada bloque utilizado se actualiza el archivo de control de espacio
+ libre.
+\layout Standard
+
+Ver: 
+\family typewriter 
+emufs_tipo1_agregar_registro()
+\layout Subsection
+
+Bajas de registros
+\layout Standard
+
+Ver: 
+\family typewriter 
+emufs_tipo1_borrar_registro()
+\layout Subsection
+
+Modificación de registros
+\layout Standard
+
+Ver: 
+\family typewriter 
+emufs_tipo1_modificar_registro()
+\layout Subsection
+
+Obtención de estadísticas
+\layout Standard
+
+Ver: 
+\family typewriter 
+emufs_tipo1_leer_estadisticas()
+\layout Subsection
+
+Compactación del archivo de datos
+\layout Standard
+
+Ver:
+\family typewriter 
+ emufs_tipo1_compactar()
 \layout Section
 
 Detalles de implementación (funciones internas, ver si lo ponemos o no)
 \layout Section
 
 Detalles de implementación (funciones internas, ver si lo ponemos o no)
@@ -2504,9 +2674,9 @@ Damos por terminada as
  para el caso del tipo 2, es realmente bastante sencillo.
 \layout Standard
 
  para el caso del tipo 2, es realmente bastante sencillo.
 \layout Standard
 
-Ver: 
+Ver:
 \family typewriter 
 \family typewriter 
-void emufs_tipo2_compactar()
+ emufs_tipo2_compactar()
 \layout Section
 
 Consideraciones y Políticas de Diseño
 \layout Section
 
 Consideraciones y Políticas de Diseño