Учебное пособие: Операционные системы "тонких" клиентов
Нижняя часть виртуальной
памяти - общая для всех разделов, в ней размещается ядро ОС - супервизор. Выше
располагается совместно используемая область виртуальной памяти, которая
содержит программы и данные, доступные для всех разделов. Другая совместно
используемая область находится в верхней части 2-Гбайтного АП. Разделение
совместно используемой области на две части связано с переходом от
24-разрядного адреса к 31-разрядному. Унаследованные программы с 24-разрядной
адресацией видят только часть АП до 16 Мбайт, в которой есть все, что им нужно.
Программы же, созданные с учетом 31-разрядной адресации, видят все 2 Гбайт АП,
в том числе, и расширение разделяемой области.
Для части или для всего
АП задачи может быть определен режим GETVIS, задающий расположение этой части в
реальной памяти и исключающий ее из страничного обмена. Разумеется, это снижает
эффективность функционирования остальных задач и применяется только для
системных задач.
При старте системы
автоматически создается 12 статических разделов. В системе есть также
возможность создавать и динамические разделы (до 200 разделов) - такие разделы
создаются автоматически при запуске задачи в области динамических разделов и
уничтожаются при ее завершении. Кроме того, 31-разрядным приложениям ОС может
предоставлять (через регистры AR) 2-Гбайтные "пространства данных",
которые могут использоваться для хранения данных. В этих пространствах также
могут создаваться виртуальные диски.
В части статических
разделов, как правило, уже при старте системы запускаются системные задачи.
Так, в разделе 0, который называется BG, обычно запускается задача связи с
оператором - BG; в разделе 1 - задача POWER и т.д. Разделы этих задач,
выполняющих обязательное общесистемное обслуживание, обычно (но не обязательно)
размещаются в общей части АП, как показано на рисунке 12.4.
Управление задачами
Единицей работы в ОС
является задание (job). Задание состоит в последовательном выполнении
нескольких шагов-задач (task) - программ (в частном случае задание может
состоять из единственного шага). Задание характеризуется классом (буква) и
приоритетом (число). Для каждого раздела оператором задаются классы заданий,
выполняемых в разделе, и приоритет класса в разделе. Задания одного класса
выбираются на выполнение в соответствии с числовым приоритетом, а при равенстве
приоритетов - в порядке поступления. Классы и приоритеты заданий определяют
порядок, в котором задания выбираются на выполнение, но не дисциплину
распределения процессорного времени.
С точки зрения
распределения процессорного времени, VSE является системой без разделения времени,
с абсолютными приоритетами. Вытесняющая многозадачность здесь реализована в том
отношении, что задача с более высоким приоритетом, придя в состояние
готовности, немедленно вытесняет с центрального процессора задачу с низким
приоритетом. Приоритет задачи определяется номером раздела, в котором она
выполняется. Наивысший приоритет имеет раздел 0, далее - раздел 1 и т.д.,
задачи в динамических разделах имеют самый низкий приоритет. Для эффективного
использования многозадачных свойств VSE следует в статических разделах с
меньшими номерами запускать обменные задачи.
При работе VSE/ESA на
многопроцессорной конфигурации только один процессор в каждый момент времени
может выполнять код в режиме супервизора (привилегированном режиме).
Задания в VSE/ESA бывают
двух видов - пакетные и интерактивные. Базовые средства VSE/AF обеспечивают
обработку пакетных заданий. Пакетное задание представляет собой набор
операторов языка управления задания JCL на перфокартах (виртуальных). Основными
операторами языка JCL являются:
// JOB - оператор
заголовка задания;
// OPTION - оператор
установки параметров/режимов выполнения задания;
// EXEC - шаг задания,
вызов на выполнение программы;
// ASSIGN - назначение
физического устройства логическому файлу программы для шага задания;
// DLBL - назначение
физического дискового файла логическому файлу программы для шага задания;
// EXEC PROC - выполнение
процедуры в шаге задания; процедура представляет собой хранимый в библиотеке
набор операторов JCL; процедура может иметь параметры и содержать некоторую
логику (ветвление в зависимости от значений параметров и результатов выполнения
отдельных шагов).
Данные могут включаться в
пакет или выбираться из файлов и библиотек.
Обязательным компонентом
VSE является VSE/POWER - подсистема управления входными и выходными и выходными
очередями. POWER обычно запускается в разделе F1 и располагается в реальной
памяти. POWER выполняет следующее:
читает задания из
различных источников и записывает их во входную очередь, располагающуюся на
диске (очередь RDR);
выбирает задания из
очереди RDR (в соответствии с их параметрами) в соответствующие разделы и
инициирует их выполнение;
записывает выходные
данные приложений в очереди LST (печать) и PUN (вывод на перфокарты);
также в соответствии с
параметрами заданий передает данные из выходных очередей на реальные устройства
(перфокарточные устройства не используются в современных мейнфреймах, и данные,
выведенные на перфокарты, остаются электронными, в таком виде они могут быть
перенаправлены, например, во входную очередь);
для сетевой среды POWER
создает также очередь XMT для передачи данных между узлами сети.
Таким образом, POWER
является системой спулинга, обеспечивающей разделение процессов ввода,
обработки и вывода и параллельное выполнение этих процессов.
Описанные выше классы и
приоритеты заданий относятся к входной очереди, RDR. Данные, выводимые в
выходные очереди, также имеют классы и приоритеты, задаваемые независимо от
входных. VSE/POWER имеет собственный управляющий язык JECL (Job Entry Control
Language), основное назначение операторов которого - определение классов и
приоритетов данных в очередях.
Файловая система
Сочетание структуры
файлов на внешней памяти и способов обработки файлов в программе составляет
метод доступа. В 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 предоставляет как записе-, так и
байториентированный интерфейс.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 |