Учебное пособие: Операционные системы "тонких" клиентов
Для взаимного исключения
доступа к ресурсам из разных программ используются системные вызовы ENQ и DEQ.
В первом приближении их можно считать эквивалентным семафорным операциям P и V
соответственно. При употреблении этих системных вызовов задается имя ресурса и
масштаб. Имя (оно состоит из двух частей) в документации IBM называется именем
ресурса, но на самом деле это скорее имя семафора, имена в операциях ENQ/DEQ
назначаются произвольно и не имеют никакой связи с действительными именами
ресурсов. Масштаб определяет область видимости ресурса:
масштаб STEP означает,
что ресурс доступен только в данном АП;
масштаб SYSTEM означает,
что ресурс доступен во всех АП, но только в данной вычислительной системе;
масштаб SYSTEMS означает,
что ресурс доступен во всех АП всех вычислительных систем sysplex'а.
Комбинация имени ресурса
и масштаба должна быть уникальной.
В отличие от обычных
семафорных операций, системный вызов ENQ может выполняться в монопольном или
разделяемом режиме, что соответствует классической задаче
"читатели-писатели". Любое число задач может одновременно получать
доступ к ресурсу в разделяемом режиме, только одна задача может иметь доступ к
ресурсу в монопольном режиме.
Системный вызов ENQ может
также выполняться и с условием. Предусмотренные для ENQ условия могут
обеспечивать:
проверку состояния
ресурса без его захвата;
захват ресурса только в
том случае, если он немедленно доступен;
изменение режима захвата
с разделяемого на монопольный;
захват ресурса только в
том случае, если программа еще им не владеет.
Задачи, задержанные при
выполнении операции ENQ, образуют очереди к ресурсам, которые обслуживаются по
дисциплине FCFS. Размер такой очереди может быть, однако, ограничен, в этом
случае попытка выполнения запроса ENQ, который переполнит очередь, приводит не
к блокированию программы, а к завершению запроса с признаком ошибки.
Попытка захвата ресурса,
которым программа уже владеет, приводит к аварийному завершению программы. Ответственность
за обход тупиков лежит на программисте.
Системные вызовы в z/OS
выполняются системными сервисными процедурами. Такая процедура представляется в
системе Блоком Сервисной Процедуры SRB (Service Routine Block). SRB во многом
аналогичен TCB, но SRB не может владеть АП. Однако SRB может получать и
использовать память в АП вызвавшей его задачи и в системном АП. После вызова
процедуры и создания для нее SRB сервисная процедура может выполняться
параллельно с вызвавшей ее программой (даже с реальным параллелелизмом - на
разных процессорах). Все системные процедуры являются реентерабельными и,
следовательно, могут быть прерваны в ходе своего выполнения.
Подсистемы и управление
ресурсами
Прежде чем рассмотреть
принципы распределения ресурсов в системе, дадим краткие характеристики
некоторым (далеко не всем) подсистемам в составе z/OS.
Подсистема ввода заданий
JES (Job Entry Subsystem) обеспечивает выполнение пакетных заданий. Ее функции
во многом аналогичны подсистеме POWER в VSE. JES интерпретирует операторы языка
управления заданиями JCL и управляет очередями. В системе могут быть запущены
несколько копий JES, каждая из которых создает свой системный образ. Имеются
две версии JES - JES2 и JES3, которые различаются тем, что в JES2 выполняется
независимое управление каждой запущенной копией, в JES3 осуществляется
централизованное управление всеми копиями.
Подсистема разделения
времени TSO/E (Time Sharing Option/Extention) - основной интерактивный
интерфейс z/OS. TSO/E обеспечивает для конечных пользователей, программистов и
администраторов набор команд и полноэкранных возможностей для подготовки
программ, подготовки и выполнения заданий, выполнения управления системой. Как
обязательная часть z/OS, TSO/E является базой для ряда других системных
сервисов, таких как Book Manager, Hardware Configuration Definition и другие.
z/OS UNIX System Services
обеспечивают использование z/OS как сверхмощного Unix-сервера. Службы
приложений z/OS UNIX System Services включают в себя командный интерпретатор
shell, утилиты и отладчик. Набор команд и утилит полностью соответствует
спецификациям стандарта Single Unix Specification, известного также как Unix
95. Это позволяет программистам и пользователям, даже не знающим команд z/OS,
взаимодействовать с z/OS как с Unix-системой. Отладчик предоставляет
программистам набор команд для интерактивной отладки программ, написанных на
языке C. Этот набор подобен аналогичным командам, существующим в большинстве
Unix-систем. Службы ядра z/OS UNIX System Services совместно с языковыми средами
обеспечивают соответствующий Single Unix Specification API для программирования
на языке C, многопоточность и средства разработки клиент/серверных приложений.
Это обеспечивает возможность программирования для z/OS как для Unix и переноса
в z/OS приложений, созданных для Unix.
Еще MVS прошла
сертификацию по стандартам POSIX, Single Unix Specification и OSF/1. Таким
образом, z/OS соответствует Unix-ориентированным стандартам лучше, чем
большинство систем, относящихся к семейству Unix, и является наилучшим
Unix-суперсервером.
Планированием
распределения ресурсов занимается Менеджер Системных Ресурсов - SRM (System
Resource Manager), являющийся компонентом BCP. SRM определяет, какие АП получат
доступ к системным ресурсам, и ту долю системных ресурсов, которая будет
выделена каждому АП. SRM распределяет ресурсы между АП в соответствии с
приоритетными требованиями, заданными в параметрах инсталляции, и стремится
достичь оптимального использования ресурсов с точки зрения производительности
системы. При определении параметров функционирования SRM работы, выполняемые в
системе, разбиваются на группы, называемые доменами. Домены характеризуются
общими характеристиками работы, и общим для домена показателем важности. Каждое
выполняющееся АП попадает в тот или иной домен - пакетное задание, транзакция
IMS, транзакция DB2, короткая или длинная команда TSO и т.д. Управление
доменами дает возможность:
гарантировать доступ к
системным ресурсам хотя бы минимальному количеству АП, принадлежащих к
определенному типу работы;
ограничивать количество
АП, имеющих доступ к ресурсам, для каждого типа работ;
назначать степень
важности для каждого типа работ.
Управление
характеристиками выполнения позволяет дифференцировать выполняемые работы,
например, установить приоритет коротких транзакций над длинными, приоритет
времени реакции над пропускной способностью и т.д.
Управление доменами
позволяет установить, какие АП получают доступ к системным ресурсам.
Диспетчеризация управляет долей системных ресурсов, получаемых каждым из допущенных
АП. После того, как АП включено в мультипрограммный набор (набор АП,
размещенных в основной памяти и допущенных к использованию ресурсов), все АП
конкурируют за обладание ресурсами независимо от доменов, к которым они
принадлежат. Диспетчеризация ведется по приоритетному принципу: работа с
наивысшим приоритетом получает ресурс первой. Всего в системе имеется 256
уровней приоритетов, которые разбиты на 16 наборов по 16 уровней в каждом.
Внутри каждого набора АП может иметь переменный или фиксированный приоритет.
Фиксированные приоритеты более высокие, чем переменные. Фиксированный приоритет
просто назначается АП в соответствии с параметрами, указанными в настройках SRM
для домена. Переменные приоритеты периодически перевычисляются по алгоритму
минимизации среднего времени ожидания.
SRM управляет
использованием ресурсов в пределах всей системы и постоянно ищет пути
преодоления дисбаланса - перегрузки ресурса или его простоя. Это достигается
путем периодического пересмотра уровня мультипрограммирования - количества АП,
которые находятся в основной памяти и готовы к диспетчеризации. Когда
характеристики использования показывают, что ресурсы системы используются не
полностью, SRM выбирает домен и увеличивает число допущенных АП в этом домене.
Если показатели использования говорят о перегрузке системы, SRM уменьшает
уровень мультипрограммирования.
Для уменьшения
интенсивности страничного обмена SRM применяет так называемый "логический
свопинг". Страничные кадры АП, подвергающегося логическому свопингу, сохраняются
в основной памяти на время, не превышающее некоторого порогового значения,
устанавливаемого SRM. Пороговое значение для логического свопинга
перевычисляется динамически и зависит от текущей потребности системы в основной
памяти.
SRM автоматически
определяет наилучший состав АП в мультипрограммном наборе и количество основной
памяти, выделяемое каждому АП, наиболее эффективное в рамках принятого уровня
мультипрограммирования. При этом управление страничным обменом и использованием
ЦП в рамках всей системы сочетается с индивидуальным управлением рабочим
набором каждого АП. Таким образом, показатели свопинга определяются
общесистемными показателями страничного обмена и требованиями рабочего набора,
причем последние имеют некоторый приоритет.
SRM также определяет
приоритеты АП в очередях ввода-вывода. По умолчанию эти приоритеты такие же,
как и диспетчерские приоритеты, но в параметрах SRM для доменов могут быть
назначены приоритеты ввода-вывода выше или ниже их диспетчерских приоритетов.
SRM управляет
распределением дисковых устройств и контролирует использование таких ресурсов,
как вторичная память (дисковые области, используемые для свопинга - они не
входят в дисковое пространство, управляемое файловой системой), область
системных очередей и ресурс страничных кадров. При нехватке этих ресурсов SRM
предпринимает меры, сводящиеся к уменьшению уровня мультипрограммирования.
Настройка SRM
производится при инсталляции ОС и продолжается в ходе ее эксплуатации. Это
процесс итеративный и, возможно, бесконечный, так как в ходе эксплуатации
характеристики выполняемого системой потока работ могут уточняться и меняться.
Мы уже отмечали в нашей книге, что мейнйфреймы обладают весьма высоким
показателем производительность/стоимость, но реально высоким этот показатель
может быть только тогда, когда производительность будет востребована в полном
объеме. Эффективность работы SRM существенно зависит от параметров, заданных
при его настройке, а гарантировать правильность определения пользователем
большого числа параметров, многие из которых могут находиться в сложной
зависимости друг от друга, невозможно. Поэтому возникла необходимость
переложить планирование нагрузки в вычислительной системе или sysplex'е на ОС.
В настоящее время надстройка над SRM, осуществляющая это планирование -
Менеджер Нагрузки (WLM - Workload Manager) - включена в ядро ОС. WLM требует от
администратора нагрузки задания определения сервиса и сам реализует это
определение в рамках системы или sysplex'а. Определение сервиса производится не
в терминах системных параметров, как для SRM, а в терминах пользователя. Таким
образом, WLM требует от пользователя определение того, что нужно сделать, а не
того, как это делать. Как это делать, WLM решает сам, учитывая конфигурацию
системы и требования всех используемых подсистем, обеспечивающих собственные
среды выполнения - как входящих в состав ОС (TSO, JES, Unix System Services и
др.), так и отдельных программных продуктов (CICS, DB2, MQSeries и др.).
Страницы: 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 |