Россия |
Управление данными
Библиотечные наборы данных
Библиотечные наборы данных (Partitioned Data Set, PDS), или библиотеки, рассматриваются как совокупность разделов (members), каждый из которых имеет внутреннюю организацию, соответствующую последовательному набору данных. z/OS обеспечивает доступ к разделам библиотечного набора данных по их уникальным именам. Имя раздела формируется по тем же правилам, что и простое имя набора данных, и указывается в круглых скобках после имени библиотечного набора данных, например: MY.DSET.PROG(PROG01) - раздел PROG01 набора данных MY.DSET.PROG. Для обработки библиотечных наборов данных в z/OS поддерживается специальный метод доступа BPAM.
Область внешней памяти, выделенной под размещение библиотечного набора данных, состоит из двух частей, граница между которыми фиксируется в момент создания набора данных (рис. 5.15):
- оглавление (directory), в котором содержится информация об именах разделов и их размещении в памяти (распределяется блоками по 256 байт);
- область данных, в которой содержатся сами разделы библиотеки.
Каждый элемент оглавления может содержать до 62 байт пользовательской или системной информации о соответствующем разделе набора данных. Эта возможность используется, в частности, в диалоговом компоненте ISPF/PDF.
Разделы могут обрабатываться в произвольном порядке, то есть разрешается считывать, удалять, переименовывать, копировать любые разделы. Добавление новых разделов возможно при наличии достаточного свободного пространства в конце области данных и в области оглавления. Память, выделенная под библиотечный набор данных, считается исчерпанной, если отсутствует возможность добавить новый раздел, в том числе и из-за нехватки места в области оглавления. Для библиотечных наборов данных поддерживается специальная операция "сжатия" или "чистки", которая заключается в устранении незанятых блоков в области данных библиотеки и увеличения непрерывного свободного пространства в конце области данных путем перераспределения разделов. Все разделы характеризуются единым набором значений параметров логических записей ( RECFM, LRECL, BLKSIZE ).
Библиотечные наборы данных обычно используются для хранения относительно небольших по объему "блоков" информации: исходных текстов программ, процедур и заданий, объектных модулей, текстовых документов, таблиц и т.п. Для хранения некоторых типов данных z/OS требует использовать только библиотечные наборы (PDS или PDSE), как, например, для хранения загрузочных модулей и каталогизированных процедур. Кроме того, многие системные наборы данных, такие как системный реестр SYS1.PARMLIB, имеют библиотечную организацию.
PDSE наборы данных
В z/OS поддерживается расширенный формат библиотечных наборов данных PDSE ( Partitioned Data Set Extended ), который, сохраняя основные внешние черты и свойства стандартного библиотечного набора данных, реализует более эффективный механизм использования памяти и доступа к данным.
В основе данного механизма лежит представление области внешней памяти, выделенной набору данных, в виде совокупности блоков размером 4 KB. Блоки распределяются между разделами и оглавлением разрывным способом, что дает возможность динамически изменять размеры отдельных разделов и добавлять при необходимости новые блоки к области оглавления. Такой способ исключает необходимость в выполнении операции сжатия, без которой трудно представить использование стандартных библиотечных наборов данных, а также исключает ситуации, связанные с нехваткой памяти в области оглавления.
Для повышения скорости доступа к данным оглавление PDSE имеет индексную организацию. Применяется кэширование оглавления и разделов в виртуальной памяти (пространствах данных и гиперпространствах).
Во многих случаях наборы данных PDSE можно использовать как более эффективную и удобную альтернативу стандартным библиотечным наборам данных. Однако для размещения исполнимых программ, представленных в формате program object (программный объект), используются исключительно наборы данных PDSE (см. п. 5.1.8).
Наборы данных PDSE вплоть до версии OS/390 2.8 могли использоваться только в рамках SMS-технологии, однако в z/OS поддержка PDSE перенесена на уровень MVS.
Наборы данных VSAM
В основе наборов данных VSAM (Virtual Storage Access Method) лежит универсальный формат доступа к данным, объединяющий возможности последовательных, индексно-последовательных и наборов данных прямого доступа с применением более эффективной технологии. Управление наборами данных VSAM основано на использовании виртуального адресного пространства для размещения буферов ввода-вывода и управляющих таблиц, а также на применении метода индексирования записей.
Набор данных VSAM (рис. 5.16) состоит из логических записей (R) фиксированной или переменной длины, объединяемых в блоки равного размера. Такие блоки принято называть управляющими интервалами CI (control interval). Помимо записей управляющий интервал включает системную информацию. Часть пространства CI может оказаться неиспользуемой. Управляющий интервал является единицей обмена данными между виртуальной памятью и диском. Управляющие интервалы, в свою очередь, могут объединяться в управляющие области CA (control area), каждая размером, кратным одному цилиндру. Таким образом, VSAM набор данных может быть представлен совокупностью управляющих областей равного размера.
Набор данных VSAM может быть дополнен индексной составляющей, обеспечивающей доступ к данным по одному или нескольким альтернативным ключам. Совокупность данных и связанных с ними индексных компонентов получила название кластер VSAM. Фактически имя набора данных VSAM - это имя кластера, тогда как сами данные и индексы хранятся в различных, но связанных между собой наборах данных. При этом имя компонента данных дополняется справа квалификатором DATA, а имя индексного набора данных - квалификатором INDEX.
В z/OS поддерживается четыре типа VSAM наборов данных:
- ESDS (Entry Sequenced Data Set) - неупорядоченный последовательный набор данных. Для каждой записи формируется относительный номер байта, что обеспечивает последовательный доступ к записям по смещению.
- KSDS (Key Sequenced Data Set) - последовательный набор данных с ключами. Состоит из индексного компонента и компонента данных. Обеспечивает прямой доступ к записям по ключу.
- RRDS (Relative Record Data Set) - набор данных с записями с относительными номерами. Обеспечивает прямой доступ к записям фиксированной длины по номеру.
- LDS (Linear Data Set) - линейный набор данных, состоит из управляющих интервалов размером 4 КB без деления на логические записи. Управляющие интервалы содержат только данные и не включают системную информацию.
Отметим, что для общности наборы данных типа ESDS, RRDS и LDS также считают кластерами VSAM, в которых индексный компонент не представлен.
Наборы данных VSAM широко используются как для пользовательских, так и для системных нужд. Например, главный каталог z/OS является набором данных типа VSAM, организованным в порядке возрастания ключей (формат KSDS). Линейные наборы данных (LDS) используются в технологии DIV (Data-in-virtual) для отображения наборов данных в виртуальную память. Для создания и обслуживания наборов данных VSAM используется многофункциональная утилита IDCAMS.