Библиотечные наборы данных
Библиотечные наборы данных (Partitioned Data Set, PDS), или библиотеки, рассматриваются как совокупность разделов (members), каждый из которых имеет внутреннюю организацию, соответствующую последовательному набору данных. z/OS обеспечивает доступ к разделам библиотечного набора данных по их уникальным именам. Имя раздела формируется по тем же правилам, что и простое имя набора данных, и указывается в круглых скобках после имени библиотечного набора данных, например: MY.DSET.PROG(PROG01) - раздел PROG01 набора данных MY.DSET.PROG. Для обработки библиотечных наборов данных в z/OS поддерживается специальный метод доступа BPAM.
Область внешней памяти, выделенной под размещение библиотечного набора данных, состоит из двух частей, граница между которыми фиксируется в момент создания набора данных (рис. 5.15):
- оглавление (directory), в котором содержится информация об именах разделов и их размещении в памяти (распределяется блоками по 256 байт);
- область данных, в которой содержатся сами разделы библиотеки.
Рис. 5.15. Структура библиотечного набора данных
Каждый элемент оглавления может содержать до 62 байт пользовательской или системной информации о соответствующем разделе набора данных. Эта возможность используется, в частности, в диалоговом компоненте ISPF/PDF.
Разделы могут обрабатываться в произвольном порядке, то есть разрешается считывать, удалять, переименовывать, копировать любые разделы. Добавление новых разделов возможно при наличии достаточного свободного пространства в конце области данных и в области оглавления. Память, выделенная под библиотечный набор данных, считается исчерпанной, если отсутствует возможность добавить новый раздел, в том числе и из-за нехватки места в области оглавления. Для библиотечных наборов данных поддерживается специальная операция "сжатия" или "чистки", которая заключается в устранении незанятых блоков в области данных библиотеки и увеличения непрерывного свободного пространства в конце области данных путем перераспределения разделов. Все разделы характеризуются единым набором значений параметров логических записей (RECFM, LRECL, BLKSIZE).
Библиотечные наборы данных обычно используются для хранения относительно небольших по объему "блоков" информации: исходных текстов программ, процедур и заданий, объектных модулей, текстовых документов, таблиц и т.п. Для хранения некоторых типов данных z/OS требует использовать только библиотечные наборы (PDS или PDSE), как, например, для хранения загрузочных модулей и каталогизированных процедур. Кроме того, многие системные наборы данных, такие как системный реестр SYS1.PARMLIB, имеют библиотечную организацию.