Опубликован: 13.04.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 3:

Реализация базовых функций z/OS

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Ключевые слова: управляющие программы, BCP, архитектура, MVS, ESA, прикладная программа, virtual address space, байт, virtual storage, Размещение, основная память, приложение, блок памяти, centralized, storage, page table, виртуальный адрес, dynamic, address translation, виртуальная страница, DAT, иерархическая модель, сегментация, сегменты, очередь, разделы, data set, auxiliary storage, слот, slot, вытеснение, память, fault, указатель, адрес, место, LRU, защита памяти, бит, paging, fixed, swapping, ПО, Swap, Data, set, процессорное время, операционная система, свопинг, ASME, manager, управляющий блок, addressing space, control block, пространство, идентификатор, space, identification, real, storage management, таблица страниц, DASD, адресное пространство, area, системные программы, private, приватность, nucleus, системная очередь, SQA, system queue, CSA, PSA, prefix, save area, IPL, модуль ядра, SVC, facility, защищенная область, модифицируемость, ECSA, PSW, work area, языки управления, job, TCB, локальная память, доступ, значение, макрокоманда, петабайт, язык управления заданиями, параметр, region, First, second, RTT, RST, rfts, таблица, виртуальное, виртуальная память, менеджер, control, element, ASC, загрузка, initial, load, initialization, конфигурационный параметр, статистика, ядро, программа, catalog, множества, Unix, VSAM, input, output, UCB, device, table, EDT, редактор связей, SMF, системный журнал, дамп, scheduler, планировщик , ACSE, create, системная консоль, JCL, logon, batch job, управление заданиями, список, APPC, CAS, системный сервис, DFM, file management, гиперпространство, HSM, супервизор, сетевая файловая система, OAM, SMS, VLF, VTAM, SNA, communications, vector table, запуск, cold start, VIO, warm start, attach, минимум, работ, SRB, system, block, dispatching, диспетчер, запрос, подключение оборудования, реконфигурация, диалоговый компонент, HCM, configuration, AS, операции, extent, исполнение, access method, интерфейс, уровни представления данных, кэширование данных, QSAM, BSAM, BPAM, PDS, DB2, алгоритм, ECBS, channel, CCW, IOS, event, метод доступа, драйвер, время выполнения, supervisor, прерывание, завершение операций, interrupt response, вывод, shell, CIC, workload, SP, goal, mode, compatibility mode, resource management, service, class, транзакция, идентификатор пользователя, информация, response time, discretionary, velocity, вероятность, period, policy, компонент, управление ресурсами, intelligence, resource, кластер, DCM, subsystem, priority queuing, management, целое число, measurement, монитор

В данной главе будут рассмотрены фундаментальные функции z/OS, реализуемые с помощью базовой управляющей программы (BCP) и входящих в ее состав модулей.

Управление памятью

Управление основной памятью в z/OS базируется на концепции виртуальной памяти, основные принципы которой были изложены при рассмотрении эволюции системы в п. 5.1.1. Важно подчеркнуть, что в z/OS фактически сохранена архитектура, реализованная в MVS/ESA и развитая в дальнейшем в OS/390. Конечно, расширение разрядности адреса (и, следовательно, объема адресного пространства) не могло не привести к целому ряду нововведений, о которых далее и пойдет речь. Но начнем, однако, с общих понятий и терминов, принятых в MVS, OS/390 и z/OS и необходимых для понимания механизмов управления памятью [ 5.4 ] , [ 5.5 ] .

В соответствии с концепцией MVS, каждая прикладная программа, а также некоторые системные функции получают в свое распоряжение отдельное виртуальное адресное пространство (virtual address space), размер которого для OS/390 составлял 231 байт, а для z/OS увеличился до 264 байт. Виртуальная память (virtual storage) является воображаемым объектом и фактически представлена в системе как совокупность специальных структур (таблиц), описывающих размещение данных и кода программы в выделенном для нее адресном пространстве. В реальности же выполнение приложений может осуществляться только тогда, когда данные и код загружены в основную память. На рис. 5.8 представлен обобщенный механизм реализации технологии виртуальной памяти.

Элементы системы управления памятью

Рис. 5.8. Элементы системы управления памятью

Некоторое приложение (MYPROG) "размещается" операционной системой в выделенном для него виртуальном адресном пространстве, занимая некоторое количество блоков памяти фиксированной длины, называемых страницами (page). Размер каждой страницы равен 4 KB. Приложение использует виртуальные страничные адреса, и ему доступна любая область собственного адресного пространства.

Чтобы начать выполнение приложения, система загружает его виртуальные страницы в основную память (Central storage), отмечая их местоположение в специальной таблице страниц (page table). Основная память также представлена в виде набора блоков размером 4 KB, называемых фреймами (frame). При загрузке значения виртуальных адресов сохраняются в неизменном виде. Понятно, что при обращении к памяти требуются реальные физические адреса. Для преобразования виртуальных адресов в физические используется специальный аппаратный механизм динамического преобразования адресов DAT (Dynamic Address Translation), который учитывает реальное размещение виртуальных страниц в основной памяти в момент выполнения адресных команд. Механизм DAT подробно описан в п. 2.1.3. Напомним, что для повышения эффективности управления в системе поддерживается иерархическая модель сегментации виртуальной памяти, в соответствии с которой страницы объединяются в сегменты размером 1 MB (256 страниц на сегмент), а те в свою очередь - в более крупные разделы виртуальной памяти, называемые регионами.

При нехватке основной памяти некоторые страницы могут быть временно перемещены в специальные страничные наборы данных (page data set) во внешнюю вспомогательную память (Auxiliary storage) на магнитных дисках. Блок памяти в страничных наборах получил название слот (slot) и также имеет размер 4 KB. Вытесненные во вспомогательную память страницы находятся там до тех пор, пока не возникнет необходимость в их использовании при выполнении приложения. В этом случае генерируется программное прерывание по отсутствию страницы (page fault) и, при наличии свободных фреймов, запускается процедура "подкачки" страницы из вспомогательной памяти. При занятии страницей свободного фрейма в таблицу страниц вносится его указатель и затем формируется физический адрес.

Конечно, возможна ситуация, когда в основной памяти для загрузки отсутствующей страницы не осталось ни одного свободного фрейма. В этом случае запускается процедура изъятия страниц (page stealing), в результате которой одна или несколько виртуальных страниц "откачиваются" из основной памяти во вспомогательную, чтобы освободить место. Выбор изымаемых страниц основан на классическом методе LRU, использующем формируемые аппаратно биты ключа защиты памяти: бит обращения R и бит изменения С (см. п. 2.1.3).

Перемещение страниц приложения из основной памяти во вспомогательную и обратно называют страничным обменом (paging), который может происходить многократно в течение всего времени выполнения. При этом следует обратить внимание, что для работы программ вовсе не требуется одновременное присутствие в основной памяти всех ее страниц, равно как и размещение этих страниц в соседних фреймах. Некоторые страницы, содержащие важную системную информацию, могут не участвовать в страничном обмене. Они имеют статус неперемещаемых (fixed) и постоянно находятся в основной памяти. Остальные же страницы считаются перемещаемыми (pagable).

Наряду со страничным обменом в z/OS поддерживается еще одна процедура, управляющая перемещением страниц, - свопинг (swapping). В некоторые критические моменты работы системы (например, при нехватке ресурсов или когда приложение долгое время не проявляет активности) операционная система по инициативе менеджера управления рабочей нагрузкой WLM может принять решение о выгрузке (swap out) всех страниц адресного пространства приложения из основной памяти во вспомогательную. Для этой цели могут создаваться специальные наборы данных свопинга (swap data set). Вытесненным таким образом приложениям не предоставляется процессорное время до тех пор, пока не будет выполнена операция swap in, возвращающая страницы приложения в основную память.

Необходимо отметить, что в операционных системах MVS/ESA и OS/390 для повышения эффективности страничного обмена применялась так называемая расширенная память (Expanded storage), которая, являясь фактическим продолжением основной памяти, использовалась для хранения вытесненных оттуда страниц. Это позволило существенно уменьшить время страничного обмена по сравнению с использованием для той же цели дисковой памяти. Благодаря применяемой для расширенной памяти блочной (а не побайтной) адресации (размер блока - 4 KB), объем расширенной памяти мог достигать 8 GB, в то время как основная память была ограничена размером 2 GB. В z/OS необходимость в поддержке расширенной памяти отпала, поскольку появилась возможность просто увеличить объем основной памяти (в z900 до 64 GB)!

Таким образом, можно увидеть, что в z/OS виртуальные страницы приложения в процессе выполнения могут быть физически размещены частично в основной, а частично во вспомогательной памяти. Для учета текущего местонахождения и хранения атрибутов виртуальных страниц операционная система создает специальные таблицы, называемые таблицами страниц, сегментов и регионов. В любой момент при необходимости некоторые виртуальные страницы могут сменить "место жительства" на основе страничного обмена или свопинга.

Для управления памятью в базовой управляющей программе z/OS представлены три менеджера памяти (VSM, RSM, ASM), каждый из которых отвечает за свой участок работы (рис. 5.8).

Менеджер виртуальной памяти VSM (Virtual Storage Manager) осуществляет постраничное размещение данных и кода приложений в виртуальном адресном пространстве по запросу, определяет структуру адресных пространств, предоставляет необходимую информацию об использовании виртуальной памяти менеджеру управления нагрузкой WLM. Для этих целей VSM, как и другие менеджеры памяти, предоставляет программисту набор специальных макросредств. Для каждого виртуального адресного пространства VSM строит управляющий блок, получивший название блок управления адресным пространством ASCB (Address Space Control Block). Этот блок содержит информацию и указатели, используемые при управлении адресным пространством. Для идентификации каждое создаваемое адресное пространство получает уникальный номер (идентификатор) ASID (Address Space IDentificator).

Менеджер физической памяти RSM (Real Storage Manager) производит размещение виртуальных страниц в основной памяти, создает и корректирует таблицы страниц, сегментов и регионов, управляет страничным обменом и свопингом. В OS/390 RSM также брал на себя функции управления расширенной памятью.

Менеджер вспомогательной памяти ASM (Auxiliary Storage Manager) предназначен для создания и управления наборами данных страничного обмена и свопинга на DASD, а также для перемещения виртуальных страниц между основной и вспомогательной памятью по указанию RSM.

Следующим важным вопросом является структура виртуального адресного пространства. Ранее отмечалось, что адресное пространство MVS включает общую область (common area), в которой размещаются доступные всем приложениям системные программы и данные, и защищенную приватную область (private area), используемую для размещения кода и данных приложения, а также ассоциированных с приложением системных структур. Начиная с MVS/XA, когда состоялся переход на 31-разрядную архитектуру, включая OS/390, структура виртуальной памяти приложения выглядит так, как представлено на рис. 5.9 [ 5.6 ] . Эта структура полностью соответствует структуре младших 2 GB виртуальной памяти z/OS, поэтому рассмотрим ее подробнее.

Для поддержки 24-разрядных приложений структура виртуального адресного пространства в младших 16 MB соответствует требованиям архитектуры MVS/370. Свыше границы 16 MB размещаются расширенная общая область (Extended Common), как продолжение общей области MVS/370, и расширенная приватная область (Extended Private), которая может использоваться 31-разрядными приложениями. Следует отметить, что содержимое общей области, включая расширенную ее часть, для всех адресных пространств совпадает. Фактически это достигается путем создания в системе единого набора виртуальных страниц с определенными виртуальными адресами, разделяемого всеми адресными пространствами. Содержимое же приватной области для каждого адресного пространства уникально.

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Ярослав Матюхин
Ярослав Матюхин
Россия
Сергей Исаков
Сергей Исаков
Россия