Лекция: Файловая система
Сочетание структуры файлов на внешней памяти и способов обработки файлов в программе составляет метод доступа. В VSE/ESA применяются две группы методов доступа: базисные методы — BAM, «унаследованные» от старых версий и виртуальный последовательный метод — VSAM (применяемый также и в z/OS как единственная для этой ОС структура файловой системы). Обычно при инсталляции VSE создаются два дисковых тома. На этих томах устанавливаются системные файлы и библиотеки, но также остается место и для пользовательских файлов. Первичное управление дисковым пространством выполняется средствами BAM. На каждом диске выделяется пространство — область VSAM. С точки зрения BAM, вся эта область представляется как один файл, но внутри этого файла средства VSAM обеспечивают собственное управление дисковым пространством и создание VSAM-файлов.
В начале каждого диска находится метка тома (VOL1), содержащая имя тома и указатель на размещение оглавления тома. Оглавление тома — структура VTOC — содержит информацию о размещении на томе BAM-файлов. Средства BAM фактически перекладывают управление дисковым пространством на программиста: при создании файла программист должен явным образом указать физический адрес файла на диске и его размер. Это выполняется средствами языка управления заданиями: после оператора // DLBL, относящегося к создаваемому файлу должен следовать один или несколько операторов // EXTENT, задающих адреса и размеры участков файла. BAM-файл располагается в одном или нескольких (до 16) непрерывных участках дискового пространства. Дисковое пространство выделяется сразу при создании файла и не может быть перераспределено в дальнейшем. Элемент VTOC для каждого файла содержит его имя и до 16 пар «адрес-размер» для каждого участка. — Утилита VTOC помогает программисту вести карту распределения дискового пространства.
Основные файлы BAM, создаваемые на диске DOSRES при инсталляции системы:
- системная библиотека IJSYSRS.SYSLIB, необходимая для начальной загрузки системы;
- область страничного обмена;
- область очередей POWER;
- области файлов ICCF, CICS и других системных программ;
- каталог VSAM;
- область VSAM.
Часть системных библиотек и файлов инсталлируется в области VSAM.
Информация обо всех VSAM-файлах на диске сохраняется в каталоге VSAM. Каталог VSAM должен быть на каждом томе, содержащем область VSAM.
Для файлов VSAM дисковое пространство выделяется динамически, и файл может занимать несмежные участки дискового пространства. Пространство выделяется блоками фиксированного размера (размер выбирается), план размещения файла представляет собой B+-дерево. Кроме того, «листья» дерева связаны в линейный список, что позволяет осуществлять быстрый последовательный доступ к данным файла. VSAM поддерживает физические стуктуры файлов четырех типов:
- ESDS (entry-sequenced data set) — неупорядоченные записи фиксированной или переменной длины;
- KSDS (key-sequenced data set) — записи фиксированной или переменной длины, упорядоченные по ключам;
- RRDS (relative-record data set) — записи фиксированной длины, упорядоченные по номерам;
- VRDS (variable-length relative-record data set) — записи фиксированной или переменной длины, упорядоченные по номерам.
Физическая структура файлов ESDS очевидна. Для файлов RRDS память выделяется сразу для всех записей файла, и относительная позиция записи вычисляется. В RRDS-файле могут быть «пустые места» — для записей, еще не занесенных в файл. Для файлов KSDS и VRDS строится индекс (B+-дерево с линейным списком листьев) ключей или номеров соответственно. Для этих файлов возможно создавать также любое количество альтернативных индексов — по любым другим ключам, альтернативный индекс ссылается на основной индекс. Хотя физическая структура файлов в VSE — записеориентированная, системный API предоставляет как записе-, так и байториентированный интерфейс.
Логическое структурирование хранения информации и в BAM, и в VSAM основывается на концепции библиотек. Библиотека является контейнерным объектом, содержащим одну или несколько подбиблиотек. Подбиблиотеки содержат разделы (файлы). Память выделяется для библиотеки, библиотеки BAM не могут увеличиваться в размерах сверх выделенного им пространства. Память для подбиблиотек выделяется динамически в пределах пространства библиотеки. Обычно подбиблиотеки объединяют в себе данные одного определенного типа — исходные, объектные или загрузочные модули. Системная утилита LIBR обеспечивает операции по обслуживанию библиотек.
ICCF
Наряду с пакетными заданиями, в VSE есть возможность и интерактивной работы. Она обеспечивается компонентом VSE/ICCF (Interactive Computing Control Facility). ICCF не является строго обязательным компонентом ОС, но применяется практически при всех ее инсталляциях. ICCF выполняется в отдельном статическом разделе и обеспечивает пользователю терминала следующие возможности:
- ввод, просмотр и редактирование программ, заданий и данных;
- запуск с терминала заданий — интерактивных или пакетных в POWER;
- ведение библиотек ICCF (см. ниже);
- доступ к файлам VSE;
- доступ к очередям;
- интерактивное выполнение системных утилит;
- организацию и выполнение потока заданий в интерактивном разделе.
Для взаимодействия с пользователем ICCF использует несколько типов полноэкранных панелей:
- панели выбора (меню);
- панели ввода данных;
- списковые панели;
- панели подсказок;
- панель текстового редактора.
ICCF обеспечивает собственные библиотеки и подбиблиотеки, предназначенные прежде всего для хранения текстов программ и заданий. Файлы в библиотеках ICCF состоят из записей размером 88 байт, из которых первые 80 используются для данных, а в 8 байтах находятся два указателя, связывающие записи файла в двунаправленный список. Для библиотек ICCF определяются права доступа. С точки зрения доступа имеется три типа библиотек:
- COMMON — библиотеки, содержащие некоторую общую информацию (общие процедуры, макросы и т.п.), к таким библиотекам имеют доступ все пользователи, но только для чтения, только системный администратор имеет доступ к этим библиотекам для записи;
- PUBLIC — библиотеки, доступные всем пользователям для чтения и для записи;
- PRIVATE — библиотеки, доступные только для одного пользователя.
Права доступа назначаются системным администратором.