Capacidad de archivos permanentes en SISINF
Actualmente la capacidad de archivos permanentes es de 4G, pero para la próxima versión se espera ampliar a 32G, la forma de hacerlo se describe a continuación.
Dentro de un archivo permanente, si el área de datos se ve como una secuencia de bytes, SISINF necesita saber donde inicia cada R0, cada R1,... es decir su dirección dentro del archivo.
Internamente se usan 32 bits para la dirección de los RX, de estos el primero es el signo, los siguientes 23 es el número del registro y los últimos 8 son el desplazamiento dentro del registro. Los registros son de 512 bytes. Así SISINF para leer un R0, R1,... conociendo su dirección, saca el número de registro, lo lee de disco y luego con el desplazamiento dentro del registro saca la información.
Usando el formato anterior se tiene la capacidad de 4G.
Los módulos de SISINF en muchas máquinas están en los lenguajes de programación con nombre Fortran y C. Para almacenar una dirección de un RX se usan lo que se llama en programación variables, hay de varios tipos, pero el Fortran solo maneja variables enteras de 32bits con signo y en C las maneja con o sin signo.
Para resolver el problema de aumentar la capacidad se puede pensar en usar el bit de signo para el número del registro y así tener 24 bits pasando a 8G la capacidad. Para ello se necesita hacer rutinas en el lenguaje C para el manejo del direccionamiento.
Pero para aumentar mas todavía esta capacidad se puede pensar en usar solo 6 bits para el desplazamiento y dejar 26 para el número del registro. Ahora bien si se reduce a 6 bits el desplazamiento solo tenemos un número del 0 al 63, la pregunta es como accesar los 256 bytes del registro. La solución es que el desplazamiento será múltiplo de 4, es decir un 0 accesará el byte 0, un 1 el byte 4, un 2 el byte 8,...
|
El problema de esta solución es que cuando se inserten el R0, R1,... el desplazamiento debe ser múltiplo de 4 pudiendo desperdiciar bytes. Así si el último RX insertado termina en el byte 5 de un registro, el siguiente inicia en el byte 8. El desperdicio promedio es de 2 bytes por cada R0, R1,... Claro cuando se manejar imágenes, texto o RX grandes, este desperdicio es mínimo.
Actualmente el crecimiento de los archivos permanentes en el área de datos es automático, es decir el archivo se agranda cuando se inserta nueva información. Cabe aclarar que un archivo en el límite a los 8 G no será ampliado en forma automática arriba de este límite sino que se dará error.
Si se tienen archivos que no pasen de 8G este cambio es transparente, pero si un archivo va a crecer mas de 8G será necesario primero reconstruirlo ya sea con RECA o con OPCION DISCO RECA y darle un tamaño por porcentaje tal que exceda los 8G, con esto se pone un indicador y el formato del direccionamiento es el último que se describió.
Los archivos permanentes de más de 4G no podrán ser usados en versiones de SISINF anteriores ya que no tendrán el manejo de los formatos ya descritos.
|