stringtranslate.com

Bloque de control de datos

En los sistemas operativos mainframe de IBM , como OS/360 , MVS y z/OS , un bloque de control de datos ( DCB ) es una descripción de un conjunto de datos en un programa. Un DCB se codifica en programas ensambladores mediante la instrucción macro DCB (que se expande en una gran cantidad de instrucciones de "definir constante"). Los programadores de lenguajes de alto nivel utilizan rutinas de biblioteca que contienen DCB.

Un DCB es uno de los muchos bloques de control que se utilizan en estos sistemas operativos. Un bloque de control es un área de datos con una estructura predefinida, muy similar a un C struct, pero que normalmente solo está relacionada con las funciones del sistema. Un DCB puede compararse con una estructura FILE en C, pero es mucho más complejo y ofrece muchas más opciones para varios métodos de acceso .

El bloque de control actuaba como interfaz de programación de aplicaciones entre el IOCS lógico y el programa de aplicación y, por lo general, se definía dentro del programa de aplicación (y residía dentro de él). Las direcciones de las subrutinas de E/S se resolverían durante una fase de linkedit después de la compilación o se insertarían dinámicamente en el momento de APERTURA.

El bloque de control equivalente para los sistemas operativos IBM DOS/360 , DOS/VSE y z/VSE es un "DTF" (Define el archivo)

Contenido típico de un DCB

Prototipos de DCB

Muchas de las constantes y variables contenidas en un DCB pueden dejarse en blanco (es decir, su valor predeterminado es cero).

El proceso OPEN da como resultado una fusión de las constantes y variables especificadas en la declaración DD JCL, y la etiqueta del conjunto de datos para conjuntos de datos de cinta magnética y de acceso directo existentes, en el DCB, reemplazando los valores cero con valores reales distintos de cero.

Un bloque de control denominado JFCB (Job File Control Block) contiene inicialmente la información extraída de la declaración DD para el conjunto de datos. Los resultados de la fusión se almacenan en el JFCB, que también se puede escribir en el DSCB durante el proceso CLOSE, lo que hace que la definición del conjunto de datos sea permanente.

Un ejemplo es la variable BLKSIZE=, que puede especificarse (y normalmente se especifica) en el DCB como cero. En la declaración DD, BLKSIZE se especifica como un valor distinto de cero y esto, a su vez, da como resultado una LRECL (longitud de registro lógico) especificada por el programa y una BLKSIZE (tamaño de bloque físico) especificada por JCL, y la fusión de ambas se convierte en la definición permanente del conjunto de datos.

Véase también