Реализация базовых функций z/OS
Начальная загрузка и инициализация z/OS
Начальная загрузка z/OS производится с помощью универсальной программы начальной загрузки IPL (Initial Program Load), которая находит и считывает в память модули ядра операционной системы и запускает программу инициализации ядра NIP (Nucleus Initialization Program) [ 5.5 ] , [ 5.6 ] .
Нужно, чтобы к моменту загрузки были подготовлены и размещены на томах прямого доступа необходимые наборы данных, содержащие системный код, конфигурационные параметры, процедуры, а также страничные наборы данных и наборы данных, предназначенные для хранения генерируемой системой информации (статистика, журналы).
Базовый системный код (ядро z/OS) представлен в библиотечном наборе данных SYS1.NUCLEUS, который всегда размещается на так называемом системном резидентном томе ( SYSRES ), где должна находиться и программа начальной загрузки IPL. SYS1.NUCLEUS может включать несколько различных вариантов загрузки ядра, каждый из которых представлен в разделе IEANUC0n (n=1-9), а также программу инициализации ядра (NIP) и указатель на главный каталог. Главный каталог (Master Catalog) должен содержать информацию о размещении всех наборов данных, используемых в процессе загрузки.
Дальнейшая загрузка осуществляется под управлением программы инициализации ядра NIP, которая работает в режиме диалога с оператором и использует информацию, представленную в библиотечном наборе данных SYS1.PARMLIB. Этот набор данных состоит из множества разделов, каждый из которых содержит описание параметров конфигурации и настройки операционной системы в виде позиционного текста. Например, в разделе IEASYS содержатся значения основных системных параметров z/OS, в разделе BPXPRM - параметры настройки z/OS UNIX, в CONSOL - характеристики консолей и т.п. Набор данных SYS1.PARMLIB можно назвать системным реестром z/OS. Необходимые при загрузке параметры аппаратной конфигурации системы и характеристики устройств ввода-вывода извлекаются из VSAM набора данных IODF (Input/Output Definition File). Этот набор данных используется для создания в COMMON области блоков управления устройствами (UCB), а также таблицы назначения групповых имен устройствам (Eligible Device Table, EDT).
Кроме указанных наборов данных, на этапе загрузки формируются или используются следующие системные наборы данных:
- страничные наборы данных для временного хранения данных, вытесненных при страничном обмене и свопинге;
- SYS1.PROCLIB - системная библиотека каталогизированных процедур (содержит готовые программы на языке управления заданиями);
- SYS1.LINKLIB - системная библиотека загрузочных модулей, а также другие библиотеки, описанные в разделе LNKLST набора данных SYS1.PARMLIB (содержат нерезидентные системные программы: утилиты, программы обслуживания, редактор связей и др.);
- SYS1.LPALIB - библиотечный набор данных, содержащий дополнительные модули z/OS, загружаемые в область LPA, включая системные процедуры, SVC-программы, базовые системные программы методов доступа, некоторые TSO-модули и др. Для загрузки в LPA возможно использование других библиотек, описанных в разделе LPALST набора данных SYS1.PARMLIB ;
- SYS1.MANx - VSAM набор данных, служащий для хранения статистической информации, собираемой модулем SMF ( x=A-Z,0-9 );
- SYS1.LOGREC - системный журнал ошибок и сбоев оборудования;
- SYS1.DUMPxx - системный дамп (содержимое виртуальной памяти), формируемый в случае ошибок при выполнении системных программ ( хх=00..99 ).
На заключительном этапе инициализации системы создается первое виртуальное адресное пространство Master Scheduler ("главный планировщик"), которое, в частности, служит для создания новых системных адресных пространств с помощью специальной программы ACS (Address Space Create). Системные адресные пространства создаются с целью разместить системный код не в общей области, а в приватной. Можно выделить четыре группы системных адресных пространств в зависимости от способа их создания и использования (рис. 5.11):
- SYSTEM - системные адресные пространства, создаваемые на этапе инициализации автоматически с помощью главного планировщика;
- START - адресные пространства, создаваемые по команде оператора START, вводимой с системной консоли или формируемой автоматически для запуска процедур JCL;
- TSO - адресные пространства, создаваемые для каждого сеанса пользователя TSO, открываемого по команде LOGON ;
- Batch Job - адресные пространства, принадлежащие пакетным инициаторам подсистемы управления заданиями JES и используемые для выполнения пакетных заданий.
Список основных системных, а также запускаемых автоматически при инициализации операционной системы адресных пространств представлен в таблице 5.3.
Управление созданными адресными пространствами и выполняющимися в них приложениями осуществляется на основе создаваемых z/OS управляющих блоков (control blocks). Управляющие блоки представляют связанные между собой структуры данных определенного формата, которые используются для описания всех ресурсов и процессов z/OS и хранятся в виртуальной памяти. Важнейшим из них является так называемая таблица векторов связей CVT (Communications Vector Table), которая хранится в области ядра и содержит указатели на основные управляющие блоки и системные таблицы, используемые базовой управляющей программой BCP. Местоположение CVT определяется по указателю, записанному в области PSA. Одним из векторов в таблице CVT является указатель на таблицу векторов адресных пространств ASVT (Address Space Vector Table), которая хранится в подпуле 245 и содержит список указателей на управляющие блоки ASCB всех доступных адресных пространств. Как уже отмечалось ранее, блок управления адресным пространством ASCB содержит информацию и указатели, необходимые для управления адресным пространством.
После того как произведен начальный запуск операционной системы z/OS, поддерживается три варианта перезагрузки:
- холодная перезагрузка (cold start) - выполняется как начальная загрузка с полной перестройкой содержимого областей виртуальной памяти;
- быстрая перезагрузка (quick start) - не перестраивается содержимое PLPA; временные наборы данных, размещенные в виртуальной памяти (так называемые VIO), не сохраняются;
- теплая перезагрузка (warm start) - содержимое PLPA не перестраивается, наборы данных VIO сохраняются.