]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - doc/doc_t3/tipo3_doc.lyx
e6182443535d3c58d2792c7f0e32dd69b09e0c0d
[z.facultad/75.06/emufs.git] / doc / doc_t3 / tipo3_doc.lyx
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass article
4 \language spanish
5 \inputencoding auto
6 \fontscheme default
7 \graphics default
8 \paperfontsize default
9 \papersize Default
10 \paperpackage a4
11 \use_geometry 0
12 \use_amsmath 0
13 \use_natbib 0
14 \use_numerical_citations 0
15 \paperorientation portrait
16 \secnumdepth 3
17 \tocdepth 3
18 \paragraph_separation indent
19 \defskip medskip
20 \quotes_language english
21 \quotes_times 2
22 \papercolumns 1
23 \papersides 1
24 \paperpagestyle default
25
26 \layout Title
27
28 EMUFS
29 \layout Title
30
31 Organización de Archivos con Bloques Parametrizados y Registros de Tamaño
32  Constante
33 \layout Section
34
35 Introducción:
36 \layout Standard
37
38 Las distintas organizaciones de archivos buscan aprovechar al máximo el
39  espacio del archivo.
40 \layout Standard
41
42 En este caso veremos que sucede luego de agregar y borrar una gran cantidad
43  de registros del archivo, lo que provoca como consecuencia directa la fragmenta
44 ción del archivo, es decir, quedan huecos entre un registro y otro, lo que
45  produce un desperdicio de espacio.
46 \layout Section
47
48 Organización Física:
49 \layout Standard
50
51 Esta organización guarda los registros pertenecientes al archivo en bloques
52  de tamaño parametrizado, de modo que intentará guardar la mayor cantidad
53  de registros que quepan en un bloque.
54  
55 \layout Standard
56
57 Así como los graba, también tendrá la posibilidad de leer registros y borrarlos
58  del archivo.
59 \layout Subsection
60
61 Archivos Auxiliares:
62 \layout Subsubsection
63
64 Archivo de Bloques y Registros (.IDX)
65 \layout Standard
66
67 Con la ayuda de un archivo de bloques y registros (de extensión .idx), podremos
68  ubicar cualquier registro existente dentro del archivo.
69  
70 \layout Standard
71
72 El archivo de índice contiene una estructura que contiene el id de un registro
73  y el número de bloque al que pertenece.
74  Este archivo esta ordenado por id, de modo que incrementa su tamaño cada
75  vez que se grabe en el archivo de datos un nuevo registro, excepto que
76  un registro haya sido borrado con anterioridad lo cual produce que al guardar
77  un nuevo registro se actualice y no crezca.
78 \layout Standard
79
80 Si un registro es borrado del archivo de datos, debe actualizarse el índice,
81  esto se logra colocando un flag que indique que el id no pertenece a ningún
82  bloque, hemos adoptado poner -1 en el campo location de la estructura EMUFS_IDX.
83 \layout Standard
84
85 Es necesario que este archivo esté ordenado por id de registro, ya que esto
86  permitirá el acceso directo para la búsqueda de un registro en el archivo
87  de datos.
88 \layout Subsubsection
89
90 Archivo de Bloques y Espacio Libre (.FSC)
91 \layout Standard
92
93 El archivo de de espacios libres permite decidir a la hora de guardar un
94  registro, donde será guardado.
95  
96 \layout Standard
97
98 La estructura de este archivo está formada por un número que indica el bloque
99  y otro que indica el espacio libre en él.
100 \layout Standard
101
102 De esta manera al querer guardar un registro este archivo informará donde
103  cabe el mismo, previa invocación al la función EMUFS_BLOCK_ID emufs_fsc_buscar_
104 lugar(EMUFS *, EMUFS_FREE, EMUFS_FREE*) perteneciente a fsc.h, la cual devuelve
105  el número de bloque donde entra el registro o -1 si no hay un bloque con
106  lugar suficiente, y toma como parámetros una estructura EMUFS, y dos EMUFS_FREE
107  donde el segndo parámetro es el tamaño buscado, y el tercero devuelve el
108  tamaño disponible.
109 \layout Standard
110
111 De la misma manera, al borrar un registro este archivo debe ser actualizado
112  colocando el nuevo espacio libre en el bloque.
113 \layout Subsubsection
114
115 Archivo de Id`s Borrados (.DID)
116 \layout Standard
117
118 Este archivo funciona como una pila de id`s borrados, es decir, cuando se
119  borra un registro el id se almacena en este archivo y será recuperado cuando
120  se desee grabar un registro nuevo, de esta manera se aprovechan todos los
121  id`s sin necesidad de crear uno nuevo cada vez que se borra y graba un
122  registro.
123 \layout Section
124
125 Funciones Principales
126 \layout Subsection
127
128 EMUFS Tipo 3
129 \layout Standard
130
131 Dento de 
132 \emph on 
133 tipo3.h
134 \emph default 
135  y 
136 \emph on 
137 tipo3.c
138 \emph default 
139  se encuentran las cabeceras y la implementación de las funciones principalesde
140  respectivamente, las cuales dan funcionalidad a esta organización.
141 \layout Standard
142
143 A continuación se comentara el funcionamiento de cada una de ellas.
144 \layout Subsubsection
145
146 void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE*
147  reg_size, int* err)
148 \layout Standard
149
150 Devuelve un puntero con la memoria reservada que contiene al registro solicitado
151  por el segundo parámetro ( 
152 \emph on 
153 ID
154 \emph default 
155  ), y almacena en 
156 \emph on 
157 reg_size 
158 \emph default 
159 el tamaño del registro leido, que en este caso no es necesario pues es constante
160  y es conocicdo de antemano.
161 \layout Subsubsection
162
163 void* emufs_tipo3_leer_bloque(EMUFS *emu, EMUFS_BLOCK_ID num_bloque, int*
164  err)
165 \layout Standard
166
167 Devuelve un puntero con la memoria reservada que contiene el bloque solicitado
168  por el segundo parámetro ( 
169 \emph on 
170 num_bloque 
171 \emph default 
172 ).
173  
174 \layout Subsection
175
176 IDX
177 \layout Subsection
178
179 FSC
180 \layout Subsection
181
182 DID
183 \the_end