]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - doc/informe.lyx
* Modificaciones necesarias para Borrar registros usando indices
[z.facultad/75.06/emufs.git] / doc / informe.lyx
index 5b08ea9143f46b8be2802cabb45f6c678c43cd2e..dc71eb87cd2c6e1fa25d6f450693a0cde751809f 100644 (file)
 
 \layout Title
 
 
 \layout Title
 
+Organización de Datos (75.06)
+\newline 
+Trabajo Práctico
+\newline 
 E
 \begin_inset Formula $\mu$
 \end_inset 
 E
 \begin_inset Formula $\mu$
 \end_inset 
@@ -33,13 +37,30 @@ E
 FS
 \layout Author
 
 FS
 \layout Author
 
-Nicolás Dimov
+
+\series bold 
+Grupo 11
+\series default 
+
 \newline 
 \newline 
-Alan Kennedy
+Nicolás Dimov (77624)
 \newline 
 \newline 
-Leandro Lucarella
+Alan Kennedy (78907)
 \newline 
 \newline 
-Ricardo Markiewicz
+Leandro Lucarella (77891)
+\newline 
+Ricardo Markiewicz (78226)
+\layout Date
+
+Primera Entrega, 19 de Abril de 2004
+\layout Standard
+
+
+\begin_inset LatexCommand \tableofcontents{}
+
+\end_inset 
+
+
 \layout Chapter
 
 Introducción
 \layout Chapter
 
 Introducción
@@ -52,6 +73,56 @@ Esta es la documentaci
  De la correcta elección de la organización, dependerá la eficiencia de
  la aplicación que la utilice.
  
  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 común para cualquier tipo de archivo,
+ dándole 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 Section
+
+Documentación de la API
+\layout Standard
+
+Para obtener una documentación de la API más completa, se incluye en formato
+ HTML en el CD-ROM la documentación generado con Doxygen.
+ Esta documentación se encuentra en el directorio 
+\family typewriter 
+doc/api/html
+\family default 
+.
 \layout Chapter
 
 Estructura común
 \layout Chapter
 
 Estructura común
@@ -68,13 +139,13 @@ 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
 \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).
+ proveerá una interfaz (funciones) para su manejo).
 \layout Subsection
 
 Tipos Comunes
 \layout Standard
 
 \layout Subsection
 
 Tipos Comunes
 \layout Standard
 
-En la implementación de cada tipo de organización física, así como tambien
+En la implementación de cada tipo de organización física, así como también
  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 hallados en el archivo
  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 hallados en el archivo
@@ -148,9 +219,9 @@ EMUFS
 \emph on 
  
 \emph default 
 \emph on 
  
 \emph default 
-es la estuctura principal que encapsula todas las funciones para el manejo
+es la estructura principal que encapsula todas las funciones para el manejo
  de un archivo de datos.
  de un archivo de datos.
- Posee punteros a funciones que dependiendo de la organización fisica por
+ Posee punteros a funciones que dependiendo de la organización física por
  la cual se opte dentro del sistema, serán asignados de acorde.
  
 \layout Standard
  la cual se opte dentro del sistema, serán asignados de acorde.
  
 \layout Standard
@@ -419,7 +490,7 @@ unsigned long
 media_fs
 \family default 
 : promedio de espacio libre en el archivo de datos (por bloque o gap promedio
 media_fs
 \family default 
 : promedio de espacio libre en el archivo de datos (por bloque o gap promedio
- segun la org)
+ según la org)
 \layout Itemize
 
 
 \layout Itemize
 
 
@@ -453,7 +524,7 @@ unsigned long
 \family typewriter 
 min_fs
 \family default 
 \family typewriter 
 min_fs
 \family default 
-: idem pero mínimo.
+: ídem pero mínimo.
 \layout Itemize
 
 
 \layout Itemize
 
 
@@ -487,7 +558,7 @@ cant_registros
 \layout Standard
 
 En base a la estructura descripta anteriormente y mediante la utilización
 \layout Standard
 
 En base a la estructura descripta anteriormente y mediante la utilización
- de la función de lectura de estadísticas l
+ de la función de lectura de estadísticas 
 \family typewriter 
 emufs_leer_estadisticas()
 \family default 
 \family typewriter 
 emufs_leer_estadisticas()
 \family default 
@@ -496,7 +567,7 @@ emufs_leer_estadisticas()
 EMUFS
 \family default 
  handler de cualquier tipo de archivo, podremos obtener una serie de estadística
 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,
+s que pasamos a detallar (más allá de los datos básicos como cant registros,
  cant bloques, tam archivo, etc):
 \layout Itemize
 
  cant bloques, tam archivo, etc):
 \layout Itemize
 
@@ -634,7 +705,7 @@ emufs.h
 emufs.c
 \layout Standard
 
 emufs.c
 \layout Standard
 
-Es decir que a traves de esta estructura, podemos manejar cualquier tipo
+Es decir que a través de esta estructura, podemos manejar cualquier tipo
  de archivo, mediante una misma interfaz en común.
  La estructura 
 \family typewriter 
  de archivo, mediante una misma interfaz en común.
  La estructura 
 \family typewriter 
@@ -697,14 +768,8 @@ Esto har
 articulos.dat
 \series default 
 , con la organización física tipo 3 con registros de longitud fija de 50
 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).
- Al mismo tiempo, los se asginarán valores a los punteros a funciones que
+ bytes y bloques de 200 bytes.
+ Al mismo tiempo, los se asignaran 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.
  Gráficamente lo que sucede es:
  posee dicha estructura, la cual de ahora en más estará en condiciones de
  manejar un archivo del tipo 3.
  Gráficamente lo que sucede es:
@@ -724,7 +789,8 @@ Inicializaci
 
 \begin_inset Graphics
        filename graphics/Emufsinit.png
 
 \begin_inset Graphics
        filename graphics/Emufsinit.png
-       scale 80
+       scale 75
+       keepAspectRatio
 
 \end_inset 
 
 
 \end_inset 
 
@@ -734,11 +800,11 @@ Inicializaci
 
 \layout Standard
 
 
 \layout Standard
 
-Así pues, cuando se utilize la estructura para por ejemplo leer un registro,
- sucedera lo siguiente:
+Así pues, cuando se utilice la estructura para por ejemplo leer un registro,
+ sucederá lo siguiente:
 \layout LyX-Code
 
 \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 
 \layout Standard
 
 Como se puede observar, la estructura 
@@ -746,14 +812,8 @@ Como se puede observar, la estructura
 EMUFS
 \family default 
  permitirá el manejo de cualquier tipo de archivo, a través del mismo código,
 EMUFS
 \family default 
  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
+ dándole gran flexibilidad a nuestro sistema, que podrá expandirse a más
  tipos de archivos de ser necesario.
  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
 \layout Chapter
 
 Archivos Auxiliares
@@ -814,7 +874,7 @@ id_reg.
 
 Los registros de este archivo se encuentran representados una estructura
  que indica un número de registro y el bloque u offset en donde se encuentra
 
 Los registros de este archivo se encuentran representados una estructura
  que indica un número de registro y el bloque u offset en donde se encuentra
- el mísmo.
+ el mismo.
 \layout Standard
 
 Es necesario que este archivo esté ordenado por 
 \layout Standard
 
 Es necesario que este archivo esté ordenado por 
@@ -829,7 +889,7 @@ id_reg
 Organización física
 \layout Standard
 
 Organización física
 \layout Standard
 
-Los registros de este archivo se encuentran representados a nivel codigo
+Los registros de este archivo se encuentran representados a nivel código
  por el siguiente tipo de dato interno (
 \family typewriter 
 EMUFS_IDX
  por el siguiente tipo de dato interno (
 \family typewriter 
 EMUFS_IDX
@@ -853,11 +913,11 @@ typedef struct emufs_idx_t {
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
-Ejemplo de registro en archivo índice (.idx), para un archivo de organizacion
+Ejemplo de registro en archivo índice (.idx), para un archivo de organización
  Tipo 1 y 3
 \layout Standard
 
  Tipo 1 y 3
 \layout Standard
 
@@ -930,11 +990,11 @@ Indica que el registro de id_reg = 5, se encuentra en el bloque 54
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
-Ejemplo de registro en archivo índice (.idx), para un archivo de organizacion
+Ejemplo de registro en archivo índice (.idx), para un archivo de organización
  Tipo 2
 \layout Standard
 
  Tipo 2
 \layout Standard
 
@@ -1042,7 +1102,7 @@ idx.c
 Búsqueda:
 \series default 
 \emph default 
 Búsqueda:
 \series default 
 \emph default 
- Los registros del archivo indice (
+ Los registros del archivo índice (
 \series bold 
 .idx
 \series default 
 \series bold 
 .idx
 \series default 
@@ -1062,22 +1122,22 @@ id_reg
 .dat
 \series default 
 ).
 .dat
 \series default 
 ).
-\newline 
-
 \series bold 
 \series bold 
+
+\newline 
 NOTA:
 \series default 
 NOTA:
 \series default 
- Cabe aclarar que por si bien el indice se encuentra ordenado por 
+ Cabe aclarar que por si bien el índice se encuentra ordenado por 
 \family typewriter 
 id_reg
 \family default 
 \family typewriter 
 id_reg
 \family default 
-, los registros en el archivo de datos, por lo general no lo estarán.
(ordenados por id).
+, los registros en el archivo de datos, por lo general no lo estarán (ordenados
+ por id).
  
 \newline 
 Ver: 
 \family typewriter 
  
 \newline 
 Ver: 
 \family typewriter 
-emufs_idx_buscar_registro()
+emufs_idx_buscar_registro(), emufs_idx_get()
 \layout List
 \labelwidthstring 00.00.0000
 
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -1086,7 +1146,7 @@ emufs_idx_buscar_registro()
 Alta:
 \series default 
  Ante la alta de un registro en el archivo de datos, se insetará un nuevo
 Alta:
 \series default 
  Ante la alta de un registro en el archivo de datos, se insetará un nuevo
- registro en el archivo índice, con el id_reg del registro en cuestion,
+ registro en el archivo índice, con el id_reg del registro en cuestión,
  y el offset u bloque donde se lo haya grabado en disco.
 \newline 
 Ver: 
  y el offset u bloque donde se lo haya grabado en disco.
 \newline 
 Ver: 
@@ -1100,7 +1160,7 @@ emufs_idx_agregar()
 Baja:
 \series default 
  Ante el borrado de un registro del archivo de datos, se accederá el registro
 Baja:
 \series default 
  Ante el borrado de un registro del archivo de datos, se accederá el registro
- correspondiente en el índice, y se actualizara su LOCATION, estableciendolo
+ correspondiente en el índice, y se actualizara su LOCATION, estableciéndolo
  en el valor especial 
 \family typewriter 
 EMUFS_NOT_FOUND
  en el valor especial 
 \family typewriter 
 EMUFS_NOT_FOUND
@@ -1112,7 +1172,7 @@ EMUFS_NOT_FOUND
 \series bold 
 dat
 \series default 
 \series bold 
 dat
 \series default 
- o nó.
+ o no.
  
 \newline 
 Ver: 
  
 \newline 
 Ver: 
@@ -1126,7 +1186,7 @@ emufs_idx_borrar()
 Modificación:
 \series default 
  Ante la modificación en la posición física de un registro dentro del archivo
 Modificación:
 \series default 
  Ante la modificación en la posición física de un registro dentro del archivo
- de datos (por ejemplo luego del proceso de recompactación, se realizará
+ de datos (por ejemplo luego del proceso de re-compactación, se realizará
  la modificación respectiva del campo 
 \family typewriter 
 location
  la modificación respectiva del campo 
 \family typewriter 
 location
@@ -1164,7 +1224,7 @@ Para el caso de una organizaci
 
 Los registros de este archivo se encuentran representados una estructura
  que indica un número de bloque u offset y el espacio libre disponible en
 
 Los registros de este archivo se encuentran representados una estructura
  que indica un número de bloque u offset y el espacio libre disponible en
- el mismo (o apartir del mismo en el caso del offset).
+ el mismo (o a partir del mismo en el caso del offset).
 \layout Standard
 
 
 \layout Standard
 
 
@@ -1180,7 +1240,7 @@ Nota
 Organización Física
 \layout Standard
 
 Organización Física
 \layout Standard
 
-Los registros de este archivo se encuentran representados a nivel codigo
+Los registros de este archivo se encuentran representados a nivel código
  por el siguiente tipo de dato interno (
 \family typewriter 
 EMUFS_FSC
  por el siguiente tipo de dato interno (
 \family typewriter 
 EMUFS_FSC
@@ -1207,7 +1267,7 @@ typedef struct emufs_fsc_t {
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -1284,7 +1344,7 @@ Indica que en el bloque 12, hay 120 bytes libres al final del mismo.
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
 \family typewriter 
 nro_bloque
 \family default 
 \family typewriter 
 nro_bloque
 \family default 
- se posee espacio suficiente para albergar el nuevo registro.
- En el caso de organizacion sin bloque, se buscará un gap o espacio libre
+ se posee espacio suficiente para albergar el nuevo registro (o a partir
+ de qué 
+\family typewriter 
+nro_bloque
+\family default 
+ se encuentran 
+\family typewriter 
+N
+\family default 
+ bloques consecutivos libres).
+ En el caso de organización sin bloque, se buscará un gap o espacio libre
  en el archivo, obteniéndose en consecuencia, el 
 \family typewriter 
 offset
 \family default 
  hasta el mismo.
  en el archivo, obteniéndose en consecuencia, el 
 \family typewriter 
 offset
 \family default 
  hasta el mismo.
 \newline 
 Ver: 
 \family typewriter 
 \newline 
 Ver: 
 \family typewriter 
-emufs_fsc_buscar_lugar()
+emufs_fsc_buscar_lugar(), emufs_fsc_buscar_n_lugares()
 \layout List
 \labelwidthstring 00.00.0000
 
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -1432,16 +1502,16 @@ Alta/Mod:
 \series bold 
 .fsc
 \series default 
 \series bold 
 .fsc
 \series default 
-) o bien modificandoló.
+) o bien modificándolo.
 \newline 
 
 \newline 
 \newline 
 
 \newline 
-En el caso de organizaciónes con bloques, se actualizará el valor del espacio
+En el caso de organizaciones con bloques, se actualizará el valor del espacio
  libre 
 \family typewriter 
 freespace
 \family default 
  libre 
 \family typewriter 
 freespace
 \family default 
- en el bloque (ya sea incrementandoló o decrementandoló) o bien se insertará
+ en el bloque (ya sea incrementándolo o decrementándolo) o bien se insertará
  un nuevo registro en caso de que se esté creando un nuevo bloque en el
  archivo de datos (en este caso no será debido a un alta o baja de registro
  como se mencionó al principio).
  un nuevo registro en caso de que se esté creando un nuevo bloque en el
  archivo de datos (en este caso no será debido a un alta o baja de registro
  como se mencionó al principio).
@@ -1464,7 +1534,7 @@ Para el caso de organizaci
 ), y en caso de estar este lindante con otro gap, se realizará el merge
  pertinente.
  (esto esta explicado más en profundidad en los casos particulares de organizaci
 ), y en caso de estar este lindante con otro gap, se realizará el merge
  pertinente.
  (esto esta explicado más en profundidad en los casos particulares de organizaci
-ón fisica, registros variables sin bloques).
+ón física, registros variables sin bloques).
  Para el caso de una alta en el archivo de datos (
 \series bold 
 .dat
  Para el caso de una alta en el archivo de datos (
 \series bold 
 .dat
@@ -1483,7 +1553,7 @@ actualizar_gap().
 \series bold 
 Baja
 \series default 
 \series bold 
 Baja
 \series default 
-: Unicamente para el caso de una organización que presente gaps en el archivo,
+: Únicamente para el caso de una organización que presente gaps en el archivo,
  se podrá dar a lugar la eliminación de un registro del archivo de espacios
  libres (
 \series bold 
  se podrá dar a lugar la eliminación de un registro del archivo de espacios
  libres (
 \series bold 
@@ -1617,7 +1687,7 @@ id_reg
 id
 \emph default 
  que se guardó en el archivo (o se eliminó del archivo de datos), y truncará
 id
 \emph default 
  que se guardó en el archivo (o se eliminó del archivo de datos), y truncará
- el archivo eliminandolo.
+ el archivo eliminándolo.
 \family typewriter 
 
 \newline 
 \family typewriter 
 
 \newline 
@@ -1649,7 +1719,7 @@ Este tipo de archivo tiene varias complicaciones, al tratarse de un punto
 
  (cuenta tanto con bloques como con registros variables), hereda los inconvenien
 tes (y ventajas) de ambos, más los propios.
 
  (cuenta tanto con bloques como con registros variables), hereda los inconvenien
 tes (y ventajas) de ambos, más los propios.
- Al implementar este tipo de archivo se puso enfásis en la eficiencia mientras
+ Al implementar este tipo de archivo se puso énfasis en la eficiencia mientras
  esta no comprometa la mantenibilidad del código, es por esto que en algunas
  circunstancias no se hace un uso óptimo del espacio.
 \layout Standard
  esta no comprometa la mantenibilidad del código, es por esto que en algunas
  circunstancias no se hace un uso óptimo del espacio.
 \layout Standard
@@ -1692,7 +1762,7 @@ EMUFS_Tipo
 EMUFS_BLOCK_SIZE
 \family default 
 , 4 bytes) que almacena el tamaño del bloque que usa el archivo.
 EMUFS_BLOCK_SIZE
 \family default 
 , 4 bytes) que almacena el tamaño del bloque que usa el archivo.
- De esta menera, al abrir un archivo de este tipo no se necesita tener ninguna
+ De esta manera, al abrir un archivo de este tipo no se necesita tener ninguna
  información sobre él.
  A esta cabecera le siguen cero o más bloques del tamaño fijo especificado
  en la cabecera antes mencionada.
  información sobre él.
  A esta cabecera le siguen cero o más bloques del tamaño fijo especificado
  en la cabecera antes mencionada.
@@ -1704,7 +1774,7 @@ archivo
 +-----------+-----------+------------------------//-+
 \layout LyX-Code
 
 +-----------+-----------+------------------------//-+
 \layout LyX-Code
 
-|    tipo   | tam bloque| Cero o más bloques ...
+|    tipo   | tam_bloque| Cero o más bloques ...
  
 \backslash 
 
  
 \backslash 
 
@@ -1816,7 +1886,7 @@ tama
  Podemos ver gráficamente como se se compone un registro:
 \layout LyX-Code
 
  Podemos ver gráficamente como se se compone un registro:
 \layout LyX-Code
 
-registro id
+registro [id]
 \layout LyX-Code
 
 +-----------+-----------+------------------+
 \layout LyX-Code
 
 +-----------+-----------+------------------+
@@ -1847,13 +1917,13 @@ multibloque
 Puede darse el caso excepcional en que un registro sea de mayor longitud
  que un bloque.
  Al ser una situación excepcional, no siempre se resuelve de la forma más
 Puede darse el caso excepcional en que un registro sea de mayor longitud
  que un bloque.
  Al ser una situación excepcional, no siempre se resuelve de la forma más
- eficiente ni se mínimiza el espacio ocupado por datos de control (como
+ eficiente ni se minimiza el espacio ocupado por datos de control (como
  se dijo anteriormente, se prefirió conservar la simpleza del código, adoptando
  algoritmos generales aunque no sea de la forma más eficiente o maximizando
  el uso del espacio para no perjudicar la mantenibilidad).
 \layout Standard
 
  se dijo anteriormente, se prefirió conservar la simpleza del código, adoptando
  algoritmos generales aunque no sea de la forma más eficiente o maximizando
  el uso del espacio para no perjudicar la mantenibilidad).
 \layout Standard
 
-Para menejar un registro 
+Para manejar un registro 
 \emph on 
 multibloque 
 \emph default 
 \emph on 
 multibloque 
 \emph default 
@@ -1876,7 +1946,7 @@ El 
  al penúltimo.
 \layout Itemize
 
  al penúltimo.
 \layout Itemize
 
-Cada framento posee las cabeceras mencionadas en la sección 
+Cada fragmento posee las cabeceras mencionadas en la sección 
 \begin_inset LatexCommand \ref{sub:tipo1_reg}
 
 \end_inset 
 \begin_inset LatexCommand \ref{sub:tipo1_reg}
 
 \end_inset 
@@ -1935,7 +2005,7 @@ A continuaci
 \begin_inset Quotes erd
 \end_inset 
 
 \begin_inset Quotes erd
 \end_inset 
 
-) almacenado en un archivo con bloques de 4 bytes:
+) almacenado en un archivo con bloques de 12 bytes (4 para datos):
 \layout LyX-Code
 
 | bloque 0          | bloque 1          | bloque 2
 \layout LyX-Code
 
 | bloque 0          | bloque 1          | bloque 2
@@ -1979,6 +2049,20 @@ A continuaci
 
 \backslash 
 -+
 
 \backslash 
 -+
+\layout LyX-Code
+
+                                                          ^^
+\layout LyX-Code
+
+                              2 bytes libres al final del bloque 2
+\layout Standard
+
+Este es un ejemplo figurativo, ya que se puso como límite mínimo de tamaño
+ de bloque 16 bytes (para que haya al menos la misma cantidad de espacio
+ para datos que para información de control).
+ Este límite mínimo ya roza lo absurdo (es muy ineficiente por la gran cantidad
+ de accesos a disco que necesita).
+ El límite físico es de 9 bytes (8 para información de control, 1 para datos).
 \layout Section
 
 Funciones principales
 \layout Section
 
 Funciones principales
@@ -2074,7 +2158,7 @@ Si el registro ocupara m
 ), se buscan N bloques consecutivos (todos los que necesite el registro)
  absolutamente libres
 \begin_inset Foot
 ), se buscan N bloques consecutivos (todos los que necesite el registro)
  absolutamente libres
 \begin_inset Foot
-collapsed true
+collapsed false
 
 \layout Standard
 
 
 \layout Standard
 
@@ -2113,7 +2197,7 @@ Bajas de registros
 \layout Standard
 
 Al eliminar un registro lo primero que se hace es actualizar los archivos
 \layout Standard
 
 Al eliminar un registro lo primero que se hace es actualizar los archivos
- de índice y de indentificadores recuperables, poniendo como número de bloque
+ de índice y de identificadores recuperables, poniendo como número de bloque
  el valor especial 
 \family typewriter 
 EMUFS_NOT_FOUND
  el valor especial 
 \family typewriter 
 EMUFS_NOT_FOUND
@@ -2152,7 +2236,7 @@ Modificaci
 
 Se optó por un algoritmo simple y general, que usa las funciones de alto
  nivel mencionadas hasta ahora.
 
 Se optó por un algoritmo simple y general, que usa las funciones de alto
  nivel mencionadas hasta ahora.
- Simplemento borra el registro y vuelve a crearlo.
+ Simplemente borra el registro y vuelve a crearlo.
  Al recuperar el último identificador de registro borrado, nos aseguramos
  de que se mantenga el identificador del registro.
 \layout Standard
  Al recuperar el último identificador de registro borrado, nos aseguramos
  de que se mantenga el identificador del registro.
 \layout Standard
@@ -2295,7 +2379,7 @@ Archivo sin bloques y registros de longitud variable
 
 Este tipo de archivo nos traerá a la mesa la particularidad de grabar registros
  de longitud variable sin realizar su agrupación en bloques, y como veremos
 
 Este tipo de archivo nos traerá a la mesa la particularidad de grabar registros
  de longitud variable sin realizar su agrupación en bloques, y como veremos
- en la siguiente sección, tambien permitirá la administración de gaps que
+ en la siguiente sección, también permitirá la administración de gaps que
  queden en el archivo luego de operaciones de baja de registros.
 \layout Section
 
  queden en el archivo luego de operaciones de baja de registros.
 \layout Section
 
@@ -2321,7 +2405,7 @@ Los archivos del tipo 2, presentar
  de archivo en cuestión.
 \layout Standard
 
  de archivo en cuestión.
 \layout Standard
 
-Para poder entender mejor la organización fisica de este tipo de archivo,
+Para poder entender mejor la organización física de este tipo de archivo,
  tomemos el caso hipotético en el que se encuentran grabados 
 \series bold 
 dos registros
  tomemos el caso hipotético en el que se encuentran grabados 
 \series bold 
 dos registros
@@ -2357,7 +2441,7 @@ o freespace
 \begin_inset Float figure
 placement H
 wide false
 \begin_inset Float figure
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -2389,7 +2473,7 @@ EMUFS_REG_SIZE
 ), y posteriormente el registro (bloque de datos) en sí.
  Luego se encuentra el espacio libre de 18 bytes dejado por el registro
  de 10 bytes eliminado (10 bytes de datos + header de 8 bytes) y finalmente
 ), y posteriormente el registro (bloque de datos) en sí.
  Luego se encuentra el espacio libre de 18 bytes dejado por el registro
  de 10 bytes eliminado (10 bytes de datos + header de 8 bytes) y finalmente
- el segundo registro mencionado.dsds
+ el segundo registro mencionado.
 \layout Subsection
 
 Comportamiento Particular de los Archivos Auxiliares
 \layout Subsection
 
 Comportamiento Particular de los Archivos Auxiliares
@@ -2421,7 +2505,7 @@ No obstante, cada tipo de organizaci
 Archivo índice o de posiciones relativas (.idx)
 \layout Standard
 
 Archivo índice o de posiciones relativas (.idx)
 \layout Standard
 
-El archivo indice (
+El archivo índice (
 \series bold 
 .idx
 \series default 
 \series bold 
 .idx
 \series default 
@@ -2443,7 +2527,7 @@ As
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -2564,7 +2648,7 @@ Observaci
 te luego del header tendremos el registro en sí (los datos).
 \layout Subsubsection
 
 te luego del header tendremos el registro en sí (los datos).
 \layout Subsubsection
 
-Achivo de Gaps / Espacios Libres (.fsc)
+Archivo de Gaps / Espacios Libres (.fsc)
 \layout Standard
 
 El archivo de espacios libres o gaps (.fsc), tiene como función la administración
 \layout Standard
 
 El archivo de espacios libres o gaps (.fsc), tiene como función la administración
@@ -2572,7 +2656,7 @@ El archivo de espacios libres o gaps (.fsc), tiene como funci
  de registros en el archivo de datos.
  El mismo, nos indicará donde hay lugar para insertar un nuevo registro
  (se podrán insertar en algún gap acorde, o bien al final del archivo).
  de registros en el archivo de datos.
  El mismo, nos indicará donde hay lugar para insertar un nuevo registro
  (se podrán insertar en algún gap acorde, o bien al final del archivo).
- Este archivo será utilizado tambien para el proceso de compactación de
+ Este archivo será utilizado también para el proceso de compactación de
  un archivo, explicado luego.
 \layout Standard
 
  un archivo, explicado luego.
 \layout Standard
 
@@ -2585,7 +2669,7 @@ As
 \begin_inset Float table
 placement H
 wide false
 \begin_inset Float table
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -2704,7 +2788,7 @@ Ante la eliminaci
 \layout Standard
 
 Nuestro sistema actuará en consecuencia, realizando un merge de los espacios
 \layout Standard
 
 Nuestro sistema actuará en consecuencia, realizando un merge de los espacios
- libres, y unificándolos en una UNICA entrada en el archivo .fsc, que contendrá
+ libres, y unificándolos en una ÚNICA entrada en el archivo .fsc, que contendrá
  como dato de freespace, la suma correspondiente de los espacios libres
  antes mencionados.
 \layout Subsubsection
  como dato de freespace, la suma correspondiente de los espacios libres
  antes mencionados.
 \layout Subsubsection
@@ -2744,8 +2828,8 @@ A continuaci
 Lectura de registros
 \layout Standard
 
 Lectura de registros
 \layout Standard
 
-Como se vió al comienzo, los registros en este tipo de archivo no se encuentran
- agrupados en bloques de ninguna índole y estan dispersos a lo largo del
+Como se vio al comienzo, los registros en este tipo de archivo no se encuentran
+ agrupados en bloques de ninguna índole y están dispersos a lo largo del
  archivo, con la particularidad de que pueden existir gaps o espacio libre,
  entre dos registros dados.
 \layout Standard
  archivo, con la particularidad de que pueden existir gaps o espacio libre,
  entre dos registros dados.
 \layout Standard
@@ -2880,7 +2964,7 @@ secci
 \layout Standard
 
 Dado que en la implementación de este tipo de organización física contamos
 \layout Standard
 
 Dado que en la implementación de este tipo de organización física contamos
- con los gaps o espacios libres entre registros, no se eliminará fisicamente
+ con los gaps o espacios libres entre registros, no se eliminará físicamente
  el registro del archivo de datos (
 \series bold 
 .dat
  el registro del archivo de datos (
 \series bold 
 .dat
@@ -2892,7 +2976,7 @@ Dado que en la implementaci
 \series default 
 ).
  En cambio, se agrega el gap dejado por la eliminación a dicho archivo,
 \series default 
 ).
  En cambio, se agrega el gap dejado por la eliminación a dicho archivo,
- y se marca fisicamente en el archivo de datos la eliminación mediante un
+ y se marca físicamente en el archivo de datos la eliminación mediante un
  fill de los bytes correspondientes con un caracter nulo.
  (hexa 00 y con el propósito de probar fehacientemente que el sistema funciona).
 \layout Standard
  fill de los bytes correspondientes con un caracter nulo.
  (hexa 00 y con el propósito de probar fehacientemente que el sistema funciona).
 \layout Standard
@@ -2950,7 +3034,7 @@ Dada la naturaleza del archivo de ID's liberados, y el manejo de espacio
 \layout Enumerate
 
 Se realiza la lectura del registro, mediante el respectivo procedimiento
 \layout Enumerate
 
 Se realiza la lectura del registro, mediante el respectivo procedimiento
- ya desarollado anteriormente.
+ ya desarrollado anteriormente.
 \layout Enumerate
 
 Una vez que se cuenta con los nuevos datos modificados, se procede a dar
 \layout Enumerate
 
 Una vez que se cuenta con los nuevos datos modificados, se procede a dar
@@ -3000,14 +3084,14 @@ emufs_tipo2_leer_estadisticas()
 Compactación del archivo de datos
 \layout Standard
 
 Compactación del archivo de datos
 \layout Standard
 
-Asi como los otros dos tipos de datos, el que nos compete también cuenta
+Así como los otros dos tipos de datos, el que nos compete también cuenta
  con la posibilidad de realizar la compactación de datos cuando el usuario
  lo desee, justificando todos los registros a izquierda, eliminando así
  con la posibilidad de realizar la compactación de datos cuando el usuario
  lo desee, justificando todos los registros a izquierda, eliminando así
- los gaps existentes y decrementando el tamaño del archivo en disco (truncandolo
+ los gaps existentes y decrementando el tamaño del archivo en disco (truncándolo
 ).
 \layout Standard
 
 ).
 \layout Standard
 
-Para poder comprender como hemos implementado el proceso de recompactación
+Para poder comprender como hemos implementado el proceso de re-compactación
  en nuestro tipo de archivo 2, nos ayudaremos de esquemas a través de los
  cuales iremos describiendo el proceso.
  Notemos antes, que el proceso de compactación esta directamente ligado
  en nuestro tipo de archivo 2, nos ayudaremos de esquemas a través de los
  cuales iremos describiendo el proceso.
  Notemos antes, que el proceso de compactación esta directamente ligado
@@ -3018,11 +3102,11 @@ Para poder comprender como hemos implementado el proceso de recompactaci
 ).
 \layout Standard
 
 ).
 \layout Standard
 
-Comenzemos con el siguiente cuadro situacional: 
+Comencemos con el siguiente cuadro situacional: 
 \begin_inset Float figure
 placement H
 wide false
 \begin_inset Float figure
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -3086,7 +3170,7 @@ Mientras haya Gaps
  {
 \layout Enumerate
 
  {
 \layout Enumerate
 
-Se levanta el proximo gap al levantado en una instancia previa.
+Se levanta el próximo gap al levantado en una instancia previa.
  En este ejemplo, durante el primer loop del while, se levantará 
 \series bold 
 Gap1
  En este ejemplo, durante el primer loop del while, se levantará 
 \series bold 
 Gap1
@@ -3142,7 +3226,7 @@ La transferencia se hace de a chunks de 25 bytes + un resto segun el valor
  de Mustmove_bytes.
 \layout Enumerate
 
  de Mustmove_bytes.
 \layout Enumerate
 
-Se establece como gap de referencia, al ultimo gap leido (En este caso se
+Se establece como gap de referencia, al ultimo gap leído (En este caso se
  realiza: 
 \series bold 
 StartGap0
  realiza: 
 \series bold 
 StartGap0
@@ -3168,7 +3252,7 @@ Luego del primer bucle, el archivo se vera de la siguiente forma:
 \begin_inset Float figure
 placement H
 wide false
 \begin_inset Float figure
 placement H
 wide false
-collapsed true
+collapsed false
 
 \layout Caption
 
 
 \layout Caption
 
@@ -3237,7 +3321,7 @@ Consideraciones y Pol
 
 Se han tomado ciertas consideraciones para algunos casos particulares que
  se pueden presentar durante el uso/ejecución de la aplicación, así como
 
 Se han tomado ciertas consideraciones para algunos casos particulares que
  se pueden presentar durante el uso/ejecución de la aplicación, así como
- tambien politicas respecto del diseño e implementación del sistema:
+ también políticas respecto del diseño e implementación del sistema:
 \layout Itemize
 
 En la organización física tipo 2 para los registros que se graban en disco
 \layout Itemize
 
 En la organización física tipo 2 para los registros que se graban en disco
@@ -3262,7 +3346,7 @@ A) En caso de la corrupci
 \newline 
 
 \newline 
 \newline 
 
 \newline 
-B) Luego de un proceso de recompactación, los espacios libres que pudieron
+B) Luego de un proceso de re-compactación, los espacios libres que pudieron
  haber existido en el archivo de datos (
 \series bold 
 .dat
  haber existido en el archivo de datos (
 \series bold 
 .dat
@@ -3277,7 +3361,7 @@ idx
 )
 \layout Itemize
 
 )
 \layout Itemize
 
-Si se desea insertar un registro y no se puede hayar un gap o espacio libre
+Si se desea insertar un registro y no se puede hallar un gap o espacio libre
  donde quepa, se los inserta al final del archivo.
 \layout Itemize
 
  donde quepa, se los inserta al final del archivo.
 \layout Itemize
 
@@ -3357,8 +3441,33 @@ As
  del archivo.
 \layout Standard
 
  del archivo.
 \layout Standard
 
-El archivo estara compuesto por una cabecera que da información sobre el
- tipo de organización, el tamaño de los bloques y el tamaño de los registros.
+El archivo estará compuesto por una cabecera que da información sobre el
+ tipo (2, o el valor T3 del tipo 
+\family typewriter 
+EMUFS_Tipo
+\family default 
+ en este caso) de organización, el tamaño de los bloques y el tamaño de
+ los registros.
+\layout LyX-Code
+
+archivo
+\layout LyX-Code
+
++-----------+-----------+-----------+------------------------//-+
+\layout LyX-Code
+
+|    tipo   | tam_bloque|  tam_reg  | Cero o más bloques ...
+\backslash 
+
+\backslash 
+ |
+\layout LyX-Code
+
++-----------+-----------+-----------+------------------------//-+
+\layout LyX-Code
+
+/- 4 bytes -/- 4 bytes -/- 4 bytes -/
 \layout Subsection
 
 Organización Física de un Bloque
 \layout Subsection
 
 Organización Física de un Bloque
@@ -3367,7 +3476,7 @@ Organizaci
 Cada bloque será capaz de contener la cantidad de registros enteros que
  quepan en él.
  De esta manera un registro que no entre completamente en el bloque deberá
 Cada bloque será capaz de contener la cantidad de registros enteros que
  quepan en él.
  De esta manera un registro que no entre completamente en el bloque deberá
- almacenarce en un bloque diferente.
+ almacenarse en un bloque diferente.
 \layout Standard
 
 Los bloques no contienen ninguna información adicional, solo se conoce su
 \layout Standard
 
 Los bloques no contienen ninguna información adicional, solo se conoce su
@@ -3379,10 +3488,30 @@ virtualmente
 \begin_inset Quotes erd
 \end_inset 
 
 \begin_inset Quotes erd
 \end_inset 
 
- zonas en el archivo.
+ zonas en el archivo y obtener de esta manera acceso semi-aleatorio a los
+ registros.
+\layout LyX-Code
+
+bloque N-1 | bloque N                                | bloque N+1
+\layout LyX-Code
+
+/----------+------------+------------+---------------+-----------/
+\layout LyX-Code
+
+
+\backslash 
+          | registro 1 | registro 2 | espacio libre |           
+\backslash 
+
+\layout LyX-Code
+
+/----------+------------+------------+---------------+-----------/
+\layout LyX-Code
+
+           /------------- tamaño del bloque ---------/
 \layout Subsection
 
 \layout Subsection
 
-Organizacion Física de Registros
+Organización Física de Registros
 \layout Standard
 
 Cada registro se almacena en un bloque, y contiene una cabecera que indica
 \layout Standard
 
 Cada registro se almacena en un bloque, y contiene una cabecera que indica
@@ -3390,19 +3519,40 @@ Cada registro se almacena en un bloque, y contiene una cabecera que indica
 \emph on 
 ID, 
 \emph default 
 \emph on 
 ID, 
 \emph default 
-por este motivo al realizar la busqueda de espacio en un bloque se lo hará
+por este motivo al realizar la búsqueda de espacio en un bloque se lo hará
  preguntando por el tamaño del registro más 
 \family typewriter 
 sizeof(EMUFS_REG_ID).
  preguntando por el tamaño del registro más 
 \family typewriter 
 sizeof(EMUFS_REG_ID).
+\layout LyX-Code
+
+registro [id]
+\layout LyX-Code
+
++-----------+-------------------+
+\layout LyX-Code
+
+|     id    |     datos ...
+     |
+\layout LyX-Code
+
++-----------+-------------------+
+\layout LyX-Code
+
+/- 4 bytes -/- [tam_reg] bytes -/
 \layout Subsection
 
 \layout Subsection
 
-Organización Física de Registros Multibloque
+Organización Física de Registros 
+\emph on 
+Multibloque
 \layout Standard
 
 Al ser los registros de longitud constante, se ha adoptado que un registro
 \layout Standard
 
 Al ser los registros de longitud constante, se ha adoptado que un registro
- multibloque nunca podra estar almacenado en algún lugar que no sea el comienzo
- de un bloque.
+\emph on 
+multibloque
+\emph default 
+ nunca podrá estar almacenado en algún lugar que no sea el comienzo de un
+ bloque.
  De esta manera se puede calcular cuantos bloques ocupará un registro y
  se podrá solicitar lugar para almacenarlo con la ayuda de la función 
 \family typewriter 
  De esta manera se puede calcular cuantos bloques ocupará un registro y
  se podrá solicitar lugar para almacenarlo con la ayuda de la función 
 \family typewriter 
@@ -3411,19 +3561,81 @@ emufs_fsc_buscar_n_lugares(),
 que es muy importante para evitar el solapamiento de registros.
  Esta consideración acarrea como consecuencia directa un alto costo en términos
  del espacio desperdiciado.
 que es muy importante para evitar el solapamiento de registros.
  Esta consideración acarrea como consecuencia directa un alto costo en términos
  del espacio desperdiciado.
+\layout Standard
+
+A continuación se presenta un ejemplo gráfico de un registro multibloque
+ de 26 bytes (de contenido 
+\begin_inset Quotes eld
+\end_inset 
+
+12345678901234567890123456
+\begin_inset Quotes erd
+\end_inset 
+
+) almacenado en un archivo con bloques de bytes 14 bytes (10 para datos)
+ y registros de 38 bytes:
+\layout LyX-Code
+
+| bloque 0          | bloque 1          | bloque 2
+\layout LyX-Code
+
++-------------------+-------------------+-------------------+-//-+
+\layout LyX-Code
+
+| registro 0 - 1/3  | registro 0 - 2/3  | registro 0 - 3/3..| 
+\backslash 
+
+\backslash 
+ |
+\layout LyX-Code
+
+|+----+------------+|+----+------------+|+----+--------+....| // |
+\layout LyX-Code
+
+|| id |    datos   ||| id |    datos   ||| id |  datos |....| 
+\backslash 
+
+\backslash 
+ |
+\layout LyX-Code
+
+||----+------------+||----+------------+||----+--------+....| // |
+\layout LyX-Code
+
+||  0 | 1234567890 |||  0 | 1234567890 |||  0 | 123456 |....| 
+\backslash 
+
+\backslash 
+ |
+\layout LyX-Code
+
+|+----+------------+|+----+------------+|+----+--------+....| // |
+\layout LyX-Code
+
++-------------------+-------------------+-------------------+-
+\backslash 
+
+\backslash 
+-+
+\layout LyX-Code
+
+                                                        ^^^^
+\layout LyX-Code
+
+            4 bytes libres (e inutilizables) al final del bloque 2
 \layout Section
 
 Funciones Principales
 \layout Standard
 
 Dento de 
 \layout Section
 
 Funciones Principales
 \layout Standard
 
 Dento de 
-\emph on 
+\family typewriter 
 tipo3.h
 tipo3.h
-\emph default 
+\family default 
  y 
  y 
-\emph on 
+\family typewriter 
 tipo3.c
 tipo3.c
-\emph default 
+\family default 
  se encuentran las cabeceras y la implementación de las funciones principales
  respectivamente, las cuales dan funcionalidad a esta organización.
 \layout Standard
  se encuentran las cabeceras y la implementación de las funciones principales
  respectivamente, las cuales dan funcionalidad a esta organización.
 \layout Standard
@@ -3431,7 +3643,7 @@ tipo3.c
 A continuación se comentará la descripción de algunas acciones importantes.
 \layout Subsection
 
 A continuación se comentará la descripción de algunas acciones importantes.
 \layout Subsection
 
-Leer Registro
+Lectura de registros
 \layout Standard
 
 La lectura de un registro se realiza con la ayuda del archivo .
 \layout Standard
 
 La lectura de un registro se realiza con la ayuda del archivo .
@@ -3440,7 +3652,7 @@ idx
 \emph default 
  el cual contiene la información de la posición del registro dentro del
  archivo de datos.
 \emph default 
  el cual contiene la información de la posición del registro dentro del
  archivo de datos.
- Una vez leida esta información, se recupera el bloque (en su totalidad)
+ Una vez leída esta información, se recupera el bloque (en su totalidad)
  del archivo y se busca secuencialmente el registro con el 
 \emph on 
 ID
  del archivo y se busca secuencialmente el registro con el 
 \emph on 
 ID
@@ -3453,7 +3665,7 @@ Ver:
 emufs_tipo3_leer_registro()
 \layout Subsection
 
 emufs_tipo3_leer_registro()
 \layout Subsection
 
-Grabar Registro
+Alta de registros
 \layout Standard
 
 Graba un registro en un bloque donde haya espacio suficiente, y si no crea
 \layout Standard
 
 Graba un registro en un bloque donde haya espacio suficiente, y si no crea
@@ -3464,16 +3676,39 @@ Luego de grabar un registro, actualiza los archivos de 
  para mantener la coherencia.
 \layout Standard
 
  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()
 \layout Subsection
 
 Ver: 
 \family typewriter 
 emufs_tipo3_grabar_registro()
 \layout Subsection
 
-Borrar Registro
+Baja de registros
 \layout Standard
 
 Borra un registro del archivo de datos, para esto levanta el bloque al que
 \layout Standard
 
 Borra un registro del archivo de datos, para esto levanta el bloque al que
- pertenece el archivo y ajusta los demás registros justificandolos hacia
+ pertenece el archivo y ajusta los demás registros justificándolos hacia
  la izquierda.
 \layout Standard
 
  la izquierda.
 \layout Standard
 
@@ -3488,12 +3723,17 @@ Cabe destacar que para dar de baja un registro no hace falta borrarlo del
  ser así, si no se realizara el mismo.
 \layout Standard
 
  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()
 \layout Subsection
 
 Ver: 
 \family typewriter 
 emufs_tipo3_borrar_registro()
 \layout Subsection
 
-Leer Estadísticas
+Obtención de estadísticas
 \layout Standard
 
 Se puede tener acceso a las estadísticas generales del archivo, por ejemplo,
 \layout Standard
 
 Se puede tener acceso a las estadísticas generales del archivo, por ejemplo,
@@ -3516,7 +3756,7 @@ Ver:
 emufs_tipo3_leer_estadisticas()
 \layout Subsection
 
 emufs_tipo3_leer_estadisticas()
 \layout Subsection
 
-Compactar el Archivo
+Compactación del archivo de datos
 \layout Standard
 
 Esta función intenta reorganizar el archivo de manera que el espacio libre
 \layout Standard
 
 Esta función intenta reorganizar el archivo de manera que el espacio libre
@@ -3548,7 +3788,7 @@ id`s
  id al grabarse.
 \layout Standard
 
  id al grabarse.
 \layout Standard
 
-Al finalizar este proceso se verifica si existen bloques vacios para truncar
+Al finalizar este proceso se verifica si existen bloques vacíos para truncar
  el archivo.
  Lo mismo se debe hacer con el archivo de espacios libres .
 \emph on 
  el archivo.
  Lo mismo se debe hacer con el archivo de espacios libres .
 \emph on 
@@ -3596,8 +3836,2817 @@ idx
  se actualizan todos los bloques con el espacio libre que realmente tienen.
 \layout Chapter
 
  se actualizan todos los bloques con el espacio libre que realmente tienen.
 \layout Chapter
 
-Conclusiones
+EMUFS View (interfaz gráfica)
+\layout Section
+
+Introducción
+\layout Standard
+
+La interfaz de visualización de EMUFS permite interactuar con los distintos
+ tipos de archivos para cada conjunto de datos almacenado (ya sean facturas,
+ articulos, o notas de facturas).
+\layout Section
+
+Instalación
+\layout Standard
+
+Para poder correr la interfaz gráfica necesitará previamente compilarla
+ (así como compilar los programas auxiliares), para ello necesitará cumplir
+ con los siguiente requisitos:
+\layout Enumerate
+
+Compilador gcc versión 3.3.x preferentemente.
+ No podemos garantizar la compatibilidad con otras versiones debido a cambios
+ drásticos que sufrieron las versiones anteriores.
+\layout Enumerate
+
+Parser XML libxml2 versión 2.6.x .
+ Versiones 2.5 y anteriores son incompatibles en la API y no funcionarán.
+\layout Enumerate
+
+libncurses version 5 o superior (probado con 5.4).
+\layout Enumerate
+
+GNU Make.
+\layout Subsection
+
+Compilar GUI
+\layout Standard
+
+Para compilar la GUI solo debe ejecutar el comando make dentro del directorio
+ raíz del proyecto.
+ Esto compilará primero una biblioteca estática con los manejadores de los
+ 3 tipos de archivo y luego compilará la GUI.
+\layout LyX-Code
+
+#~/emufs/> make
+\layout Subsection
+
+Preparar el banco de pruebas
+\layout Standard
+
+Antes de comenzar a utilizar la GUI deberá generar los archivo XML desde
+ donde serán leídos los datos para generar los archivos que luego se utilizará.
+ Para ello el proceso de compilación creará 2 ejecutable : generar_fact
+ y generar_art, que se ubicarán en la carpeta generar dentro de emufs_gui.
+\layout Standard
+
+Estos programas generan facturas y artículos respectivamente en forma aleatorio,
+ utilizando diccionarios de datos para llenar los campos.
+ Primero deberá ejecutar generar_art, ya que éste último crea un diccionario
+ de artículos que luego utilizará generar_fact para los items de las facturas.
+\layout Standard
+
+Ambos programas reciben 2 parámetros : el nombre de archivo de salida y
+ la cantidad de entradas a generar.
+\layout Standard
+
+El generador de facturas fue diseñado para cumplir con los porcentajes pedidos
+ por el enunciado en algunos aspectos.
+ La cantidad de facturas por dia del mes es aleatoria.
+\layout Section
+
+Línea de comandos
+\layout Standard
+
+El programa acepta varios parámetros, algunos de ellos opcionales, otros
+ obligatorios dependiendo de las elecciones realizadas.
+\layout Standard
+
+Para obtener una completa descripción de los parámetros el programa acepta
+\begin_inset Quotes eld
+\end_inset 
+
+-h
+\begin_inset Quotes erd
+\end_inset 
+
+ o 
+\begin_inset Quotes eld
+\end_inset 
+
+--help
+\begin_inset Quotes erd
+\end_inset 
+
+ para mostrar una ayuda en línea.
+\layout Standard
+
+Si el programa es ejecutado sin parámetros tratará de recuperar los artículos
+ y las facturas desde archivo previamente creados.
+\layout Standard
+
+Para crear un archivo de artículos a partir de un archivo XML bien formado,
+ se debe ejecutar el programa con la opción 
+\begin_inset Quotes eld
+\end_inset 
+
+-a
+\begin_inset Quotes erd
+\end_inset 
+
+.
+ Dicha opción espera que el siguiente parámetro sea el nombre del archivo
+ a leer, y que éste útimo tenga extensión xml (notar que es solo minúsculas).
+ A continuación espera encontrar el tipo de archivo que se quiere crear,
+ pudiendo ser éste último 1, 2 ó 3.
+ De ser el tipo de archivo con bloques, se le exigirá que ingrese como último
+ parámetro el tamaño del mismo.
+\layout Standard
+
+Para crear el archivo de facturas es el mismo procedimiento, solo que utilizando
+ el parámetro 
+\begin_inset Quotes eld
+\end_inset 
+
+-f
+\begin_inset Quotes erd
+\end_inset 
+
+.
+ Luego de los parámetros de tipo y tamaño de bloque debe especificarse el
+ tipo y tamaño de bloque para el archivo de notas.
+\layout Standard
+
+Debe saber que estos parámetros no son mutuamente excluyentes, por lo que
+ podrá utilizarlos al mismo tiempo.
+\layout Section
+
+Características
+\layout Standard
+
+A continuación se da una lista detallada de las operaciones que son posibles
+ hacerse desde esta interfaz :
+\layout Itemize
+
+Alta, baja y modificación de Artículos.
+ Para ello se abrirá una ventana donde se podrá editar comodamente los datos.
+\layout Itemize
+
+Alta, baja y modificación
+\begin_inset Foot
+collapsed true
+
+\layout Standard
+
+En la modificación de una factura no se podrán cambiar ni la cantidad de
+ items y los datos de los mismo!.
+ La nota si podrá ser modificada.
+\end_inset 
+
+ de Facturas.
+\layout Itemize
+
+Ver registros.
+ Ver fisicamente los registros de cualquiera de los archivos sin importar
+ el tipo al que pertenezcan.
+ Desde aquí podrá tambien eliminar, agregar o modificar el registro actual.
+\layout Itemize
+
+Ver Bloques.
+ Para aquellos archivos que hallan sido creados con un tipo con bloques,
+ podrá verlos fisicamente, viendo el bloque actual y los anteriores/posteriores.
+\layout Itemize
+
+Ver las estadísticas de cada archivo según su tipo, para realizar comparativas
+\layout Itemize
+
+Cambiar el formato de cualquier tipo o parametros de archivo.
+\layout Itemize
+
+Compactar los archivos.
+\layout Section
+
+Decisiones de Diseño
+\layout Standard
+
+Durante el desarrollo se han tomado ciertas decisiones en el diseño o restriccio
+nes.
+ En este punto nos centraremos en las especificas tomadas por la interfaz
+ de visualización, y no tomaremos en cuenta las que ponen los tipos de archivo
+ por si solos.
+\layout Enumerate
+
+La cantidad de items por factura es igual a 10 para archivos de registro
+ de longitud fija y bloque parametrizado (TIPO 3).
+ Esta decición fue tomada por poner un valor típico de items que puede haber
+ en una factura, evaluando un caso de un comercio chico.
+ Como el tipo de archivo permite cortar un registro y guardarlo en varios
+ bloques consecutivos, la restricción de cantidad solo es un hecho de elección,
+ y así pusieramos 100, 1000, 10000 no habría diferencia, ya que el tipo
+ de archivo lo guardaría sin problemas.
+\layout Enumerate
+
+Si el archivo es de TIPO 3 y se agregan más de 10 items estos son truncados
+ y descartados sin aviso al usuario.
+ Esta fue una desición basada en el tiempo del proyecto.
+ De tener que validar y consultar al usuario se hubiera perdido tiempo de
+ mucho valor para completar objetivos más importantes del TP.
+\layout Enumerate
+
+Los campos son delimitados por el caracter nulo (en caso de los strings)
+ y por la longitud del tipo de dato en caso de los campos numéricos.
+ De esta forma se aprovechan las características de manejo de string en
+ C.
+\layout Section
+
+Vista de Registros
+\layout Standard
+
+Un ejemplo de vista de registros es la que se observa a continuación :
+\layout Standard
+
+
+\begin_inset Graphics
+       filename gui_ver_registros.eps
+       width 14cm
+       keepAspectRatio
+
+\end_inset 
+
+
+\layout Standard
+
+Como puede verse el registro actual se ve resaltado respecto de los demás.
+ También se puede observar que en este caso (el bloque es de 2000 bytes)
+ no entra toda la información en pantalla, pero es posible desplazar utilizando
+ las teclas A y Z.
+\layout Standard
+
+Los datos binarios son convertidos a texto para ser mostrados, siendo la
+ representación elegida :
+\layout Itemize
+
+(XXX) : Representa un ID.
+ En el caso de las facturas también aparece en los datos el número de índice
+ de la nota asociada con esta representación.
+\layout Itemize
+
+{XXX} : Representa el tamaño de los datos.
+ Esto siempre y cuando el registro sea de longitud variable (TIPO1 y TIPO2).
+\layout Standard
+
+También es posible ejecutar acciones de edición sobre el registro seleccioado,
+ así como buscar por ID de registro.
+\layout Standard
+
+Cuando se procesa la información en crudo (es decir, el area de datos) algunos
+ bytes son modificados para evitar errores visuales.
+ Un caso es cuando el bytes es compuesto por 8 bits de valor 0 (caracter
+\backslash 
+0).
+ Lo que se hace es cambiarlo por un caracter que tenga representacion visual
+ (en este caso un *).
+ Lo mismo suscede para los caracteres de control (
+\backslash 
+b 
+\backslash 
+n 
+\backslash 
+r por ejemplo) y los espacion.
+ Esta política fue tomada ya que estos caracteres modifican la salida en
+ pantalla, y de no evitar su envío a la pantalla, producirían resultados
+ inesperados en la visualización.
+\layout Section
+
+Bugs conocidos
+\layout Standard
+
+A continuación se enumera los errores que sabemos que existen, que no hemos
+ tenido tiempo de corregir, pero que no hacen al TP en sí :
+\layout Enumerate
+
+Si la consola o terminal cambia de tamaño la GUI no sigue el nuevo tamaño,
+ pudiendose producir defectos visuales.
+ Esto es debido a que se debe capturar una señal que envia el SO, pero no
+ pudimos hacer que funciones con todas las terminales bajo X, por lo que
+ se decidio dejarlo para cuando tengamos tiempo.
+\layout Enumerate
+
+Si la GUI fue compilada con -DDEBUG y no se utiliza un PIPE para redirigir
+ la salida de error estandar, es posible que algun componente del programa
+ emita un mensaje de debug o warning y esta cause defectos de visualización
+ o el programa deje directamente de funcionar.
+ Esto es un defecto de la biblioteca NCurses.
+\layout Enumerate
+
+Cuando se cargan datos desde el XML y este contiene caracteres extendidos,
+ estos son mostrados en UTF8 en la pantalla.
+ Si no posee una consola configurada en UTF8 verá los caracteres extendidos
+ en su representación ASCII (2 caracteres por cada caracter extendido).
+ Esto se da a causa de que la LibXml maneja de forma interna todo en UTF8
+ sin importar el encoding declarado en el XML.
+ El encoding solo lo tienen en cuenta para guado se guarde.
+ No nos hemos tomado el trabajo de hacer la conversión solo por cuestiones
+ de tiempo.
+\layout Chapter
+
+Comparación de tipos de archivo (conclusiones)
+\layout Section
+
+Método utilizado para la comparación
+\layout Standard
+
+Para realizar la comparación entre los distintos tipos de archivo, se generaron
+ un XML de artículos con 200 entradas y uno de facturas de 1750 entradas.
+ Los valores fueron arbitrarios y un poco más elevados que los requeridos
+ en el enunciado para poner a prueba el sistema.
+\layout Standard
+
+En la tabla que se dará más adelante, se pueden apreciar los datos característic
+os de cada tipo de archivo.
+ El método de prueba fue el siguiente :
+\layout Enumerate
+
+Para cada tipo de archivo se cargaron los archivos XML de prueba.
+\layout Enumerate
+
+Se anotaron las estadísticas que entrega la GUI.
+\layout Enumerate
+
+Se eliminaron alrededor de 50 artículos y 200 facturas.
+ El valor no es exacto, puesto que al ser pseudo-aleatoria la cantidad borrada
+ puede no ser 50 o 200.
+\layout Enumerate
+
+Se anotaron las estadísticas nuevamente.
+\layout Standard
+
+Ahora, los tamaños de bloque para los archivos con bloques fueron tomados
+ de 512 bytes, por ser una unidad típica de dispositivos de almacenamiento,
+ y nos pareció lógico dada la similitud utilizar esta unidad.
+\layout Section
+
+Artículos
+\layout Standard
+
+
+\begin_inset Float table
+placement H
+wide false
+collapsed true
+
+\layout Caption
+
+Artículos con archivos con tamaño de bloque 512 (cuando aplica)
+\layout Standard
+
+
+\size small 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="8" columns="7">
+<features islongtable="true">
+<column alignment="left" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Artículos
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T1
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T2
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T3
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T1
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T2
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T3
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño de bloque: 512
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Inicial
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Luego de borrar
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+10528 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+10528 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+28800 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7874 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7278 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+17856 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos de Control
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1608 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1604 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+812 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1208 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1108 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+508 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+672 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+4704 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+3726 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+3746 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+15952 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Media de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+26 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+70 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+149 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+73 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+238 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Máximo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+83 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+216 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+279 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+480 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+512 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Mínimo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+2 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+68 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+36 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+ 41 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+ 68 bytes
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_inset 
+
+\begin_inset Float table
+placement H
+wide false
+collapsed true
+
+\layout Caption
+
+Artículos con archivos con tamaño de bloque 1024 (cuando aplica)
+\layout Standard
+
+
+\size small 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="8" columns="7">
+<features islongtable="true">
+<column alignment="left" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Luego de borrar
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T1
+\end_inset 
+</cell>
+<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T2
+\end_inset 
+</cell>
+<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T3
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T1
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T2
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T3
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño de bloque: 1024
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Inicial
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Luego de borrar
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+10528 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+28800 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7902 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+20448 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos de Control
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1608 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+812 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1208 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+580 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1184 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+5216 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+4210 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+13800 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Media de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+91 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+153 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+323 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+405 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Máximo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+938 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+728 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+938 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1024 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Mínimo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+136 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+136 bytes
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_inset 
+
+
+\layout Standard
+
+Evidentemente para el caso de artículos, una muy mala elección sería utilizar
+ el archivo de tipo3, puesto que al usar registros constantes es posible
+ que se desperdicie mucho espacio si ocurren muchas eliminaciones (como
+ se observa en la tabla).
+ Entre los tipos 1 y 2 no existe mucha diferencia en los números, por lo
+ que la decisión podría ser tomada en base a los tiempos de acceso.
+ Tomando este criterio el T2 sería la mejor forma de almacenar los datos
+ si lo más frecuente son lecturas, ya que al leer se puede obtener el offset
+ desde el principio del registro, mientras que en el tipo1 se debe hacer
+ una búsqueda secuencial sobre el bloque, y de ser éste último muy grande
+ el tiempo de acceso puede ser elevado.
+\layout Standard
+
+Para operaciones que requiera muchas bajas de elementos el tipo 2 no sería
+ la mejor opción, puesto que la liberación es compleja, ya que cuando se
+ da de baja un registro se debe verificar si dicho espacio se solapa con
+ algún espacio libre actual, de manera de mantener espacios libres como
+ lo hacen los sistemas de archivo ext2, manteniendo la lista de los offsets
+ y tamaño de espacios libres, a fin de buscar el que mejor ajuste en caso
+ de una alta.
+\layout Standard
+
+Para el caso de artículos, donde puede haber un continuo cambio en la oferta
+ de nuestro negocio, nos inclinaremos por el tipo de archivo 1, con un tamaño
+ de bloque reducido.
+ Solo recordaremos compactar el archivo periódicamente a fin de minimizar
+ el espacio desperdiciado.
+\layout Section
+
+Facturas
+\layout Standard
+
+
+\begin_inset Float table
+placement H
+wide false
+collapsed true
+
+\layout Caption
+
+Facturas con archivos con tamaño de bloque 512 (cuando aplica)
+\layout Standard
+
+
+\size small 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="8" columns="7">
+<features islongtable="true">
+<column alignment="left" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Facturas
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T1
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T2
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T3
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T1
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T2
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+T3
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño de bloque = 512
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Inicial
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Luego de borrar
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+268707 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+268707 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+546000 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+207295 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+212465 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+482664 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos de Control
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+14008 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+14004 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7012 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+12288 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+12324 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+6200 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+17325 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+343000 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+80457 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+57922 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+407148 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Media de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+29 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+196 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+137 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+981 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+232 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Máximo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+386 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+196 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+512 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+10656 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+512 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Mínimo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+0 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+196 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+216 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+196 bytes
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_inset 
+
+\begin_inset Float table
+placement H
+wide false
+collapsed true
+
+\layout Caption
+
+Artículos con archivos con tamaño de bloque 1024 (cuando aplica)
+\layout Standard
+
+
+\size small 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="8" columns="7">
+<features islongtable="true">
+<column alignment="left" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Facturas
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T1
+\end_inset 
+</cell>
+<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T2
+\end_inset 
+</cell>
+<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T3
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T1
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T2
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T3
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\family roman 
+\series medium 
+\shape up 
+\size normal 
+\emph off 
+\bar no 
+\noun off 
+\color none
+Tamaño de bloque: 1024
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\family roman 
+\series medium 
+\shape up 
+\size normal 
+\emph off 
+\bar no 
+\noun off 
+\color none
+Inicial
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\family roman 
+\series medium 
+\shape up 
+\size normal 
+\emph off 
+\bar no 
+\noun off 
+\color none
+Luego de borrar
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos
+\end_inset 
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+268707 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+546000 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+219731 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+482976 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Tamaño Datos de Control
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+14008 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+7012 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+12440 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+6204 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+10157 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+45016 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+60701 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+108848 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Media de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+35 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+77 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+212 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+186 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Máximo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+922 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+708 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1024 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+1024 bytes
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+Mínimo de Espacio Libre
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+5 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+76 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+5 bytes
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+................
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\size small 
+76 bytes
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_inset 
+
+
+\layout Standard
+
+Primero descartaremos al tipo 3 como un buen modo de almacenar las facturas,
+ por el sólo hecho de que la cantidad de ítems que puede tener una factura
+ está limitada al tamaño de registro utilizado.
+ Esto sólo sería razonable en un contexto en donde la variabilidad del registro
+ no sea drástica como es el caso de las facturas.
+ De tomar valores grande de registros, se corre el riesgo de tener mucho
+ espacio desperdiciado en los datos, y tomando valores pequeños de registro
+ se limita el sistema en cuanto a cantidad de ítems a colocar en una factura
+ se refiere.
+ Se puede notar una leve baja en el espacio libre, y aumentar el tamaño
+ del bloque quizás más haga que este valor baje, pero se aumentaría el tiempo
+ de acceso a los registros.
+\layout Standard
+
+Nuevamente tenemos una disputa entre el los tipo 1 y 2.
+\layout Standard
+
+Idealmente, si sólo tuviéramos altas el mejor tipo sería el 2 sin dudarlo,
+ ya que aprovecha el máximo espacio al no tener pérdidas, debido a que los
+ registros van uno a continuación del otro.
+ También tenemos la ventaja de que el acceso es directo.
+ Para un caso teórico donde las facturas no se dan de baja, esto sería ideal.
+ Hasta aquí solo hemos visto comparaciones con la carga inicial.
+\layout Standard
+
+Analizaremos ahora que pasa luego de borrar varios registros en posiciones
+ pseudo-aleatorias.
+ Primeramente se puede observar que el tamaño de datos de control es similar
+ (recordar que se guarda el id del registro para poder realizar tareas de
+ recuperación de datos en caso de que el índice se dañe).
+ El máximo espacio libre no nos da mucha información, ya que en el caso
+ del tipo 1 podríamos tener n bloques consecutivos libres y tener posiciones
+ para almacenar registros grandes en ambos casos (recordar que tipo1 tiene
+ recuperación de espacio libre para n bloques consecutivos, no siempre se
+ agrega al final).
+ De todos determinar un espacio libre para un archivo de tipo 2 es mucho
+ más rápido que para tipo1 si el tamaño del registro es grande, ya que el
+ archivo de tipo1 debe hacer una búsqueda sobre n bloques, mientras que
+ el tipo 2 encuentra un gap de tamaño suficiente más rápido.
+\layout Standard
+
+Pero no todo es color de rosa en el mundo de archivos de tipo2.
+ Como se dijo anteriormente las bajas de registros requieren de un proceso
+ grande al actualizar el índice de espacio libre, para asegurarse de tomar
+ espacios libres consecutivos como un solo espacio libre, y en el caso de
+ que las bajas y las altas comunes, esto es una pérdida de performance del
+ sistema.
 \layout Standard
 
 \layout Standard
 
-Las comparaciones, pruebas, etc...
+En este caso como se trata de facturas, y suponemos que como usuarios de
+ sistema queremos cancelar pocas facturas (ya que cancelar una factura significa
+ que se cayó una venta) optamos por que el mejor tipo de archivo para almacenar
+ las facturas sera el tipo2.
 \the_end
 \the_end