En los sistemas operativos de mainframe de IBM , como OS / 360 , MVS , 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 los programas Assembler utilizando la macroinstrucción DCB (que se expande en un gran número de instrucciones de "definir constante"). Los programadores de lenguaje 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 una C struct
, pero normalmente solo se relaciona 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 actuó como la interfaz de programación de la aplicación entre IOCS lógico y el programa de aplicación y, por lo general, se definió dentro (y residió dentro) del programa de aplicación en sí. Las direcciones de las subrutinas de E / S se resolverían durante una fase de enlace después de la compilación o se insertarían dinámicamente en el momento de ABRIR.
El bloque de control equivalente para IBM DOS / 360 , DOS / VSE y z / VSE sistemas operativos es un "DTF" (Definir el archivo) [1]
Contenido típico de un DCB
- nombre de archivo simbólico (para que coincida con una declaración JCL para abrir el archivo)
- tipo de acceso (por ejemplo, aleatorio, secuencial, indexado)
- características físicas ( tamaño de bloque , longitud de registro lógico )
- número de búferes de E / S para asignar para el procesamiento para permitir la superposición de E / S
- dirección de las subrutinas de la biblioteca del sistema operativo de E / S (por ejemplo, lectura / escritura)
- otras variables según lo requieran las subrutinas según el tipo
DCB prototipo
Muchas de las constantes y variables contenidas en un DCB pueden dejarse en blanco (es decir, el valor predeterminado es cero).
El proceso OPEN da como resultado una combinación de las constantes y variables especificadas en la declaración DD JCL y la etiqueta del conjunto de datos para la cinta magnética existente y los conjuntos de datos de acceso directo, en el DCB, reemplazando los valores cero con valores reales distintos de cero.
Un bloque de control llamado JFCB (Bloque de control de archivos de trabajo) inicialmente contiene 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 de CIERRE, lo que hace que la definición del conjunto de datos sea permanente.
Un ejemplo es la variable BLKSIZE =, que puede especificarse (y suele estar) especificada en el DCB como cero. En la declaración DD, BLKSIZE se especifica como un valor distinto de cero y esto, entonces, da como resultado un LRECL (longitud de registro lógico) especificado por el programa y un BLKSIZE (tamaño de bloque físico) especificado por JCL, con la fusión de los dos convirtiéndose en la definición permanente del conjunto de datos.
Ver también
- Bloque de control de conjunto de datos (DSCB), una parte de VTOC