]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - doc/informe.lyx
* Analisis con otro tamaño de bloque
[z.facultad/75.06/emufs.git] / doc / informe.lyx
index ab091fa943ab90d69da1e1485f81b755c8056c6c..713976868c508bc5b97c7c6a0b0fe98ecd76e861 100644 (file)
@@ -756,7 +756,8 @@ Inicializaci
 
 \begin_inset Graphics
        filename graphics/Emufsinit.png
-       scale 80
+       scale 75
+       keepAspectRatio
 
 \end_inset 
 
@@ -1088,22 +1089,22 @@ id_reg
 .dat
 \series default 
 ).
-\newline 
-
 \series bold 
+
+\newline 
 NOTA:
 \series default 
  Cabe aclarar que por si bien el indice se encuentra ordenado por 
 \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 
-emufs_idx_buscar_registro()
+emufs_idx_buscar_registro(), emufs_idx_get()
 \layout List
 \labelwidthstring 00.00.0000
 
 \family typewriter 
 nro_bloque
 \family default 
- se posee espacio suficiente para albergar el nuevo registro.
+ 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 organizacion 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.
 \newline 
 Ver: 
 \family typewriter 
-emufs_fsc_buscar_lugar()
+emufs_fsc_buscar_lugar(), emufs_fsc_buscar_n_lugares()
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -1730,7 +1741,7 @@ archivo
 +-----------+-----------+------------------------//-+
 \layout LyX-Code
 
-|    tipo   | tam bloque| Cero o más bloques ...
+|    tipo   | tam_bloque| Cero o más bloques ...
  
 \backslash 
 
@@ -1842,7 +1853,7 @@ tama
  Podemos ver gráficamente como se se compone un registro:
 \layout LyX-Code
 
-registro id
+registro [id]
 \layout LyX-Code
 
 +-----------+-----------+------------------+
@@ -1961,7 +1972,7 @@ A continuaci
 \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
@@ -2005,6 +2016,20 @@ A continuaci
 
 \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
@@ -3387,7 +3412,32 @@ As
 \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.
+ 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
@@ -3408,7 +3458,27 @@ virtualmente
 \begin_inset Quotes erd
 \end_inset 
 
- zonas en el archivo.
+ zonas en el archivo y obtener de esta manera acceso semi-aleatoreo 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
 
 Organizacion Física de Registros
@@ -3423,15 +3493,36 @@ por este motivo al realizar la busqueda de espacio en un bloque se lo har
  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
 
-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
- 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 
@@ -3440,19 +3531,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.
+\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 
-\emph on 
+\family typewriter 
 tipo3.h
-\emph default 
+\family default 
  y 
-\emph on 
+\family typewriter 
 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
@@ -3460,7 +3613,7 @@ tipo3.c
 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 .
@@ -3482,7 +3635,7 @@ Ver:
 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
@@ -3521,7 +3674,7 @@ Ver:
 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
@@ -3550,7 +3703,7 @@ Ver:
 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,
@@ -3573,7 +3726,7 @@ Ver:
 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