El método básico de acceso directo ( BDAM , por sus siglas en inglés) es un método de acceso para los sistemas operativos de IBM OS/360 y sucesores en mainframes System/360 y posteriores . BDAM "consiste en rutinas utilizadas para recuperar datos de dispositivos de acceso directo y almacenarlos en ellos ". [1] : p.5 BDAM está disponible en OS/360 , OS/VS2 , MVS , z/OS y sistemas operativos de alta gama relacionados.
Básico , en la terminología de IBM, indica un método de acceso de nivel inferior que trata con conjuntos de datos en términos de bloques físicos y no proporciona ni lectura anticipada, llamada almacenamiento en búfer anticipatorio , ni sincronización ; es decir, el programa de usuario tiene que esperar explícitamente a que se complete cada evento de entrada/salida. [2] : p.31
Con BDAM, "el programador puede almacenar y recuperar directamente un bloque especificando su dirección de dispositivo real, su posición relativa dentro de un conjunto de datos (número de bloque relativo) o la pista relativa dentro de un conjunto de datos en la que el sistema debe comenzar una búsqueda. [2] : p.63
BDAM no proporciona ningún índice ni estructura al archivo, excepto según lo programado por la aplicación. En muchas aplicaciones, se puede utilizar una función de hash o aleatorización para asignar la dirección del bloque en función de una clave en los datos. Si se utilizan claves físicas , la clave del último registro dentro del bloque debe escribirse como la clave para ese bloque.
La interfaz del programa de aplicación BDAM se puede comparar con la interfaz ofrecida por las llamadas open , read , write y close (usando identificadores de archivos) en otros sistemas operativos como Unix y Windows .
IBM sigue dando soporte a BDAM desde 2012. Debido a su dependencia de la geometría del dispositivo físico, los nuevos dispositivos de acceso directo de IBM utilizados con z/OS emulan los dispositivos IBM 3390 independientemente de sus características físicas reales.
El programador especifica DSORG=DA
en su bloque de control de datos (DCB) que se debe indicar el uso de BDAM. El espacio puede estar en hasta 16 extensiones en cada volumen . El conjunto de datos (equivalente a un "archivo") puede residir en hasta 255 extensiones en varios volúmenes. Si la aplicación tiene una dependencia de que el espacio esté en pistas contiguas, puede asignar espacio para el conjunto de datos directo en pistas contiguasSPACE=(,,CONTIG)
mediante la codificación en la declaración DD.
Los conjuntos de datos directos deben formatearse previamente antes de su uso abriéndolos como salida y escribiendo todos los bloques secuencialmente. Esto puede cargar todos los registros "ficticios" o cargar datos iniciales. [3]
Como método de acceso básico , BDAM lee y escribe datos de miembros en bloques y la operación de E/S se realiza de forma asincrónica y se debe probar su finalización mediante la CHECK
macro. [4] BDAM utiliza las macros de sistema estándar OPEN
, CLOSE
, READ
, WRITE
y CHECK
. Las instrucciones de macroREAD
o deben proporcionar la dirección de bloque o la clave del registro deseado. La macro debe usarse para esperar a que se complete una operación específica antes de poder acceder a los datos o reutilizar el búfer de datos . Es posible iniciar múltiples operaciones de entrada/salida para que se ejecuten simultáneamente.WRITE
CHECK
Los registros de un conjunto de datos directos pueden contener claves grabadas especificadas por el usuario de hasta 255 bytes (todas las claves de un archivo deben tener la misma longitud). Las lecturas y escrituras pueden especificar una clave además de una dirección de disco, y BDAM buscará, comenzando en el bloque solicitado y hasta el área completa del archivo, un registro con una clave coincidente. [2] Esto permite que el subsistema de E/S gestione automáticamente el hash de múltiples claves en la misma pista.
BDAM acepta direcciones de disco como direcciones de dispositivo reales, como direcciones de pista relativas o como números de bloque relativos.
Las direcciones de dispositivo son campos de ocho bytes con el formato MBBCCHHR . Todos los subcampos son números binarios. [5]
La especificación de direcciones de dispositivos hace que el conjunto de datos sea inamovible . [2] : p.106
Las direcciones de pista relativas son campos de tres bytes con el formato TTR . Todos los subcampos son números binarios.
Los números de bloque relativos son números binarios de cuatro bytes (palabra completa) que indican el número de bloque en el archivo. El primer bloque es el bloque 0. Esta forma de direccionamiento solo se puede utilizar con bloques de longitud fija ( RECFM=F
). [6] : p.106