Блок управления данными
В мэйнфреймов IBM операционных системах , таких как OS/360 , MVS , z/OS , блок управления данными ( DCB ) представляет собой описание набора данных в программе. DCB кодируется в программах на ассемблере с использованием макрокоманды DCB (которая расширяется до большого количества инструкций «определить константу»). Программисты на языках высокого уровня используют библиотечные процедуры, содержащие DCB.
DCB — это один из многих блоков управления, используемых в этих операционных системах. Блок управления — это область данных с предопределенной структурой, очень похожая на C. struct
, но обычно относится только к функциям системы. DCB можно сравнить со структурой FILE в C, но она гораздо сложнее и предлагает гораздо больше возможностей для различных методов доступа .
Блок управления действовал как интерфейс прикладного программирования между логическим IOCS и прикладной программой и обычно определялся (и находился внутри) самой прикладной программы. Адреса подпрограмм ввода-вывода будут определяться на этапе linkedit после компиляции или же динамически вставляться во время OPEN.
Эквивалентным блоком управления для операционных систем IBM DOS/360 , DOS/VSE и z/VSE является «DTF» (Определите файл).
Типичное содержимое DCB
[ редактировать ]- символическое имя файла (чтобы соответствовать оператору JCL для открытия файла)
- тип доступа (например, произвольный, последовательный, индексированный)
- физические характеристики ( размер блока , длина логической записи )
- количество ввода-вывода буферов , которые необходимо выделить для обработки, чтобы разрешить перекрытие ввода-вывода
- адрес ввода-вывода операционной системы подпрограмм библиотеки (например, чтение/запись)
- другие переменные, необходимые подпрограммам, в зависимости от типа
Прототипы DCB
[ редактировать ]Многие константы и переменные, содержащиеся в DCB, можно оставить пустыми (т. е. по умолчанию они равны нулю).
Процесс OPEN приводит к слиянию констант и переменных, указанных в операторе DD JCL, а также метки набора данных для существующих наборов данных на магнитной ленте и прямого доступа в DCB, заменяя нулевые значения фактическими, ненулевыми значениями.
Блок управления, называемый JFCB (блок управления файлом задания), изначально содержит информацию, извлеченную из оператора DD для набора данных. Результаты слияния сохраняются в JFCB, который также может быть записан в DSCB во время процесса CLOSE, что делает определение набора данных постоянным.
Примером может служить переменная BLKSIZE=, которая может быть (и обычно так и есть) указана в DCB как ноль. В операторе DD BLKSIZE указывается как ненулевое значение, что приводит к заданному программой LRECL (длина логической записи) и заданному JCL BLKSIZE (размер физического блока) со слиянием двух становится постоянным определением набора данных.
См. также
[ редактировать ]- Блок управления набором данных (DSCB), часть VTOC
- Файловая система, ориентированная на записи