Блок управления данными - Data Control Block

В Мэйнфрейм IBM операционные системы, Такие как OS / 360, MVS, z / OS, а Блок управления данными (DCB) является описанием набор данных в программе. DCB кодируется в Ассемблер программы, использующие макроинструкцию DCB (которая расширяется до большого количества инструкций «определения констант»). Программисты на языках высокого уровня используют библиотечные процедуры, содержащие DCB.

DCB - один из многих блоки управления используется в этих операционных системах. А блок управления это область данных с предопределенной структурой, очень похожая на C структура, но обычно относится только к функциям системы. DCB можно сравнить со структурой FILE в C, но она намного сложнее, предлагая гораздо больше вариантов для различных методы доступа.

Блок управления действовал как Интерфейс прикладного программирования между логическими IOCS и прикладная программа и обычно определялся (и находился внутри) самой прикладной программы. Адреса подпрограмм ввода-вывода будут разрешены во время связанный фаза после компиляции или динамически вставляется во время OPEN.

Эквивалентный блок управления для IBM DOS / 360, ДОС / ВСЕ и z / VSE операционные системы - это "DTF" (Определить файл)[1]

Типичное содержимое DCB

Прототип DCB

Многие константы и переменные, содержащиеся в DCB, могут быть оставлены пустыми (т.е. по умолчанию они равны нулю).

Процесс ОТКРЫТИЯ приводит к слияние констант и переменных, указанных в операторе DD JCL, и метки набора данных для существующей магнитной ленты и наборов данных прямого доступа в DCB, заменяя нулевые значения фактическими ненулевыми значениями.

Блок управления, называемый JFCB (блок управления файлом задания), изначально содержит информацию, извлеченную из оператора DD для набора данных. Результаты слияния сохраняются в JFCB, который также может быть записан в DSCB во время процесса CLOSE, тем самым делая определение набора данных постоянным.

Примером является переменная BLKSIZE =, которая может быть (и обычно указывается) в DCB как ноль. В операторе DD BLKSIZE указано как ненулевое значение, и это затем приводит к заданному программой LRECL (длина логической записи) и BLKSIZE, заданному JCL (размер физического блока), со слиянием двух становится постоянным определением набора данных.

Смотрите также