Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Как назначаются ключи защиты памяти



z/OS использует 16 ключей защиты памяти. Каждый конкретный ключ назначается в соответствии с типом выполняемой работы. Как показано на рис. 3.5, ключ хранится в битах 8–11 слова состояния программы (program status word, PSW). PSW назначается каждому заданию в системе.

Ключи защиты памяти 0–7 используются в z/OS базовой управляющей программой (base control program, BCP) и различными подсистемами и программными продуктами промежуточного уровня. Ключ защиты памяти 0 является главным ключом (master key). Его использование ограничено теми частями BCP, которые требуют почти неограниченных возможностей записи и извлечения. Почти всегда, когда с запросом на доступ или изменение содержимого участка основной памяти связан ключ защиты памяти 0, это означает, что запрос будет выполнен. Ключи защиты памяти 8–15 назначаются пользователям. Так как все пользователи изолированы в личных адресных пространствах, большинство пользователей, чьи программы выполняются в виртуальном регионе, могут использовать одинаковый ключ защиты памяти. Эти пользователи обозначаются V=V (virtual = virtual) и им назначается ключ 8. Однако некоторые пользователи должны работать в регионе основной памяти. Эти пользователи обозначаются V=R (virtual = real) и требуют отдельных ключей защиты памяти, так как их адреса не защищены процессом DAT, поддерживающим разделение между адресными пространствами. Без использования отдельных ключей пользователи V=R могут обращаться к коду и данным друг друга. Эти ключи находятся в диапазоне от 9 до 15.

7.13. Менеджеры памяти: реальной, вспомогательной и виртуальной.

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

Менеджер реальной памяти. Менеджер реальной памяти (real storage manager, RSM) отслеживает содержимое основной памяти. Он управляет операциями страничного обмена, описанными выше, в частности подкачкой, вытеснением и изъятием страниц, и помогает осуществлять загрузку и выгрузку адресных пространств. RSM также выполняет фиксацию страницы (page fixing) – пометку страниц как недоступных для изъятия.

Менеджер вспомогательной памяти. Менеджер вспомогательной памяти (auxiliary storage manager, ASM) использует страничные наборы данных системы для отслеживания слотов вспомогательной памяти, в частности:

· слотов для страниц виртуальной памяти, не находящихся во фреймах основной памяти;

· слотов для страниц, не занимающих фреймы, но которые в связи с отсутствием изменений в содержимом фреймов все еще действительны.

Когда требуется выполнить подкачку или вытеснение страницы, ASM совместно с RSM обнаруживают подходящие фреймы основной памяти и слоты вспомогательной памяти.

Менеджер виртуальной памяти. Менеджер виртуальной памяти (virtual storage manager, VSM™) обрабатывает запросы на получение и освобождение виртуальной памяти. Кроме того, VSM управляет выделением памяти для любой программы, которая должна выполняться в основной, а не в виртуальной памяти. Основная память выделяется для кода и данных при их загрузке в виртуальную память. При их выполнении программы могут запросить больший объем памяти, используя средства системного сервиса, например макроса GETMAIN.

Для освобождения памяти программы используют макрос FREEMAIN. VSM отслеживает схему отображения виртуальной памяти для каждого адресного пространства. При этом адресное пространство представляется в виде набора из 256 подпулов (subpools), которые являются логически связанными областями виртуальной памяти, обозначаемыми числами от 0 до 255. Логическая связанность означает, что области памяти в подпуле имеют общие свойства, в частности:

· ключ защиты памяти;

· защиту от извлечения, поддержку страничного обмена и поддержку свопинга;

· местонахождение в виртуальной памяти (до или после 16 Мб);

· возможность совместного использования несколькими задачами.

Некоторые подпулы (обозначаемые числами от 128 до 255) предопределены для использования системными программами. Подпул 252, например, предназначен для программ из авторизованных библиотек. Другие подпулы (обозначаемые числами от 0 до 127) определяются пользовательскими программами.


7.14. История виртуальной памяти и адресуемости семейства мэйфреймов.

В 1970 году IBM выпустила System/370 – первую свою архитектуру, использующую виртуальную память и адресные пространства. С тех пор операционная система претерпела множество изменений. Одной из основных областей развития и изменения является адресуемость.

Программа, выполняемая в адресном пространстве, может обращаться ко всем участкам памяти, связанным с этим адресным пространством. Способность программы обращаться ко всем участкам памяти, связанным с адресным пространством, называется адресуемостью (addressability).

В System/370 адреса памяти имели длину 24 разряда. Использование 24-разрядной адресуемости позволяло MVS/370 (операционной системе того времени) выделять каждому пользователю адресное пространство размером 16 Мб. Несколько лет спустя, когда в MVS/370 было добавлено больше функций и требовалось обрабатывать более сложные приложения, доступ к 16 Мб виртуальной памяти стал недостаточным для удовлетворения потребностей пользователей.

С выходом архитектуры System/370-XA в 1983 IBM расширила адресуемость архитектуры до 31 разряда. С 31-разрядной адресацией операционная система увеличила адресуемость виртуальной памяти с 16 Мб до 2 Гб. Другими словами, MVS/XA обеспечивала адресное пространство для пользователей, которое было в 128 раз больше, чем адресное пространство, обеспечиваемое в MVS/370; 16-мегабайтовый адрес стал точкой деления между двумя архитектурами, которую часто называют «линией» (line) (рис. 3.6).

Новая архитектура не требовала, чтобы клиенты изменяли существующие приложения. Для обеспечения совместимости с существующими программами MVS/XA поддерживала программы, изначально разработанные для 24-разрядной адресации в MVS/370, в то же время позволяя разработчикам приложений создавать новые программы, использующие технологию 31-разрядной адресации. Для обеспечения совместимости между разными схемами адресации MVS/XA не использовал старший разряд (high-order bit) адреса (бит 0) при адресации. Вместо этого MVS/XA зарезервировал этот разряд для обозначения количества разрядов, используемых для разрешения адреса: 31-разрядная адресация (бит 0 включен) или 24-разрядная адресация (бит 0 выключен).

С выходом мэйнфреймов zSeries в 2000 году IBM еще больше расширила адресуемость архитектуры до 64 разрядов. При 64-разрядной адресации потенциальный размер адресного пространства z/OS расширяется настолько, что нужны новые термины для его описания. Новое адресное пространство имеет 264 адресов (рис. 3.7).

Программа, выполняющаяся в z/OS на мэйнфрейме zSeries, может использовать 24-, 31- или 64-разрядную адресацию (и при необходимости может переключаться между ними). Для адресации больших объемов виртуальной памяти, доступных при использовании 64-разрядной архитектуры, программа использует 64 разрядные инструкции. Несмотря на то что архитектура поддерживает уникальные 64-разрядные инструкции, программа при необходимости может использовать как 31-разрядные, так и 64-разрядные инструкции.

В целях совместимости, структура областей ниже 2 Гб адресного пространства осталась такой же, что обеспечивает среду, которая может поддерживать и 24-разрядную, и 31-разрядную адресацию. Область, отделяющая область виртуальной памяти, расположенную ниже 2-гигабайтового адреса, от приватной области пользователя, называется «полосой» (bar), как показано на рис. 3.8. Приватная область пользователя выделяется для кода приложений, а не для кода операционной системы.

0 – 231 Схема такая же (см. рис. 3.8).

231 – 232 Область от 2 до 4 Гб называется «полосой». Все, что находится ниже «полосы», адресуется

с использованием 31-разрядного адреса. Все, что находится выше «полосы», требует

64-разрядной адресации.

232 – 241 Неразделяемая область (приватная область пользователя), начинается с 4 Гб

и продолжается до 241.

241 – 250 Разделяемая область (для совместного использования памяти) начинается с 241

и продолжается до 250 или выше, если требуется.

250 – 264 Верхняя неразделяемая область (приватная область пользователя), начинается с 250 или там, где заканчивается разделяемая область, и продолжается до 264.

В 16-экзабайтовом адресном пространстве с 64-разрядной адресацией виртуальной памяти существует три дополнительных уровня таблиц трансляции, называемых таблицами регионов: третья таблица регионов (region third table, R3T), вторая таблица регионов (region second table, R2T) и первая таблица регионов (region first table, R1T). Таблицы регионов имеют длину 16 Кб, и каждая таблица содержит 2 048 записей. Каждый регион имеет размер 2 Гб.

Форматы таблиц сегментов и таблиц страниц остались такими же, как и для виртуальных адресов ниже «полосы». При трансляции 64-разрядного виртуального адреса, после того как система определила соответствующую запись 2-гигабайтового региона, указывающую на таблицу сегментов, процесс идентичен описанному выше.

7.15. Системные адресные пространства и главный планировщик.

Многие системные функции z/OS выполняются в собственных адресных пространствах. Подсистема главного планировщика, например, выполняется в адресном пространстве *MASTER* и используется для установления связи между z/OS и его адресными пространствами.

При запуске z/OS главные подпрограммы инициализации выполняют инициализацию системных служб, таких, как системный журнал и задача связи, и запускают адресное пространство главного планировщика. Затем главный планировщик может запустить подсистему управления заданиями (JES2 или JES3). JES является первичной подсистемой управления заданиями. На многих рабочих системах JES не запускается сразу же; вместо этого пакет автоматизации запускает все задачи в контролируемой последовательности. Затем происходит запуск других подсистем.

Подсистемы определяются в специальном файле системных параметров, называемом библиотекой параметров (parameter library, PARMLIB). Эти подсистемы являются вторичыми подсистемами (secondary subsystems).

Каждое создаваемое адресное пространство имеет связанный с ним номер, называемый идентификатором адресного пространства (address space ID, ASID). Так как главный планировщик является первым адресным пространством, созданным в системе, он становится адресным пространством под номером 1 (ASID=1). Другие системные адресные пространства запускаются позже в процессе инициализации z/OS.

На данном этапе вам требуется понять лишь то, что z/OS и связанным с ней подсистемам нужны собственные адресные пространства для обеспечения функционирования операционной системы. Ниже приведены описания каждого типа адресного пространства.

· Системные адресные пространства. Запуск системных адресных пространств z/OS происходит после инициализации главного планировщика. Эти адресные пространства выполняют функции для всех других типов адресных пространств, запускаемых в z/OS.

· Адресные пространства подсистем. z/OS требует использования различных подсистем, таких, как первичная подсистема управления заданиями (job entry subsystem, JES; описание JES см. в главе 7, «Пакетная обработка и JES»). Кроме того, используются адресные пространства для программных продуктов промежуточного уровня, таких, как DB2, CICS и IMS.

Помимо системных адресных пространств, обычно используется много адресных пространств для пользователей и отдельно выполняющихся программ, например:

· Адресные пространства TSO/E создаются для каждого пользователя, подключающегося к z/OS (описание см. в главе 4, «TSO/E, ISPF и UNIX: интерактивные средства z/OS»).

· Адресное пространство создается для каждого пакетного задания, выполняющегося в z/OS. Адресные пространства пакетных заданий запускаются подсистемой JES.


7.16. Управление рабочей нагрузкой. Основные операции выполняемые WLM.

В z/OS за управление системными ресурсами отвечает компонент управления рабочей нагрузкой (Workload Management, WLM). WLM управляет обработкой рабочей нагрузки в системе в соответствии с бизнес-целями компании, такими, как время реагирования. Кроме того, WLM управляет использованием системных ресурсов, в частности процессорами и памятью, для достижения этих целей.

WLM пытается достичь целей производительности посредством динамического распределения ресурсов. WLM обеспечивает кластер Parallel Sysplex возможностями определения того, где и с каким приоритетом следует выполнять обработку задач. Приоритет определяется исходя из бизнес-целей клиента и управляется сисплекс-технологией.

WLM имеет три цели:

Достижение цели. Достижение бизнес-целей, определяемых инсталляцией, путем автоматического выделения ресурсов сисплекса рабочим задачам в зависимости от их важности и целей. Является первой и самой важной целью.

Пропускная способность. Достижение оптимального использования системных ресурсов с точки зрения системы.

Время реагирования. Достижение оптимального использования системных ресурсов с точки зрения отдельного адресного пространства.

Чтобы сбалансировать пропускную способность с показателями времени реагирования и оборотного времени, WLM выполняет следующие операции:

· мониторинг использования ресурсов различными адресными пространствами;

· мониторинг использования ресурсов в масштабе системы для определения полноты их использования;

· определение необходимости (и времени выполнения) свопинга адресных пространств;

· препятствование созданию новых адресных пространств или изъятие страниц при нехватке основной памяти;

· изменение диспетчерского приоритета адресных пространств, контролирующего коэффициент использования системных ресурсов адресными пространствами;

· выбор устройств для распределения, если есть выбор между устройствами, для балансировки использования устройств ввода-вывода.

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

Компонент WLM особенно хорошо подходит для использования в среде сисплекса.


7.17. Ввод-вывод данных, средства мониторинга в системе.

В мэйнфрейме использованием устройств ввода-вывода (дисков, принтеров и т.д.) управляет канальная подсистема. Операционная система должна связывать данные определенной задачи с устройством и управлять созданием, размещением, мониторингом, миграцией, резервным копированием, возвратом, восстановлением и удалением файлов.

Эти операции можно выполнять либо вручную, либо с использованием автоматизированных процессов. Основным средством управления хранением в z/OS является компонент DFSMS.

Средства мониторинга:

Средств обработки прерываний. Мультипрограммирование требует использования определенного метода переключения управления от одной программы к другой, чтобы, например, когда программа A ожидает выполнения запроса ввода-вывода, могла выполняться программа B. В z/OS такое переключение обеспечивается путем прерываний, представляющих собой события, изменяющие последовательность выполнения инструкций процессором. При возникновении прерывания система сохраняет состояние выполнения прерванной подпрограммы, после чего анализирует и обрабатывает прерывание.

Создания диспетчеризуемых единиц работы. Для идентификации и отслеживания своей работы операционная система z/OS представляет каждую единицу работы управляющим блоком. Диспетчеризуемые единицы работы представлены двумя типами управляющих блоков: блоками управления задачами (task control blocks, TCB), представляющими задачи, выполняющиеся в адресном пространстве; блоками запросов обслуживания (service request blocks, SRB), представляющими системные службы с более высоким приоритетом.

Диспетчеризации работы. После обработки прерываний операционная система определяет, какая единица работы (из всех единиц работы в системе) готова к выполнению и имеет наивысший приоритет, и передает управление этой единице работы.

Синхронизации использования ресурсов. В системе мультипрограммирования почти любую последовательность инструкций можно прервать с последующим возобновлением выполнения. Если этот набор инструкций осуществляет управление или изменение ресурса (например, управляющего блока или файла данных), операционная система должна не допустить использования ресурса другими программами до тех пор, пока прерванная программа не завершит работу с ресурсом.

Существует несколько методов синхронизации использования ресурсов; наиболее

распространенными являются организация очередей (enqueuing) и блокировка (locking); третий метод называется фиксацией (latching). Организация очередей доступна для всех пользователей, тогда как блокировка для синхронизации использования ресурсов доступна только подпрограммам с соответствующими полномочиями.


7.18. Назначение обработки прерывания.

Прерывание представляет собой событие, изменяющее последовательность выполнения инструкций процессором. Прерывание может быть запланированным (специально запрошенным выполняющейся программой) или незапланированным (вызванным событием, связанным или не связанным с выполняющейся программой);

z/OS использует шесть типов прерываний, в частности:

1. Вызовы супервизора или SVC-прерывания. Возникают, когда программа выдает SVC-прерывание для запрашивания определенной системной службы. SVC прерывает выполняемую программу и передает управление супервизору, чтобы он мог выполнять обслуживание. Программы запрашивают эти службы через макросы, такие, как OPEN (открытие файла), GETMAIN (получение памяти) или WTO (отправление сообщения оператору системы).

2. Прерывания ввода-вывода. Эти прерывания возникают, когда канальная подсистема сигнализирует об изменении состояния, например о завершении операции ввода-вывода, возникновении ошибки или готовности устройства ввода-вывода к работе.

3. Внешние прерывания. Могут указывать на некоторые события, например на завершение временного интервала, нажатие оператором клавиши прерывания на консоли или на получение процессором сигнала от другого процессора.

4. Прерывания рестарта. Возникают при выборе оператором команды рестарта на консоли или при получении инструкции перезапуска от другого процессора.

5. Программные прерывания. Вызываются ошибками программы (например, если программа пытается выполнить недопустимую операцию), событиями отсутствия страницы (если программа обращается к странице, отсутствующей в основной памяти) или запросами мониторинга события.

6. Прерывания от схем контроля работы машины. Вызываются неисправностями машины.

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


7.19. Слово состояния программы PSW, регистры

Слово состояния программы (program status word, PSW) представляет собой 128 разрядную область данных в процессоре, которая наряду со множеством других типов регистров (управляющих регистров, регистров времени и регистров префикса), содержит сведения, критически важные как для аппаратного, так и для программного обеспечения. Текущее слово состояния программы содержит адрес следующей программной инструкции и контрольную информацию о выполняющейся программе. Каждый процессор имеет только одно текущее слово состояния программы. Таким образом, процессор может одновременно выполнять только одну задачу.

PSW контролирует порядок подачи инструкций в процессор и отображает состояние системы относительно текущей выполняющейся программы. Несмотря на то что каждый процессор имеет только одно слово состояния программы, для понимания обработки прерываний полезно рассматривать три типа PSW:

• текущее PSW,

• новое PSW,

• старое PSW.

Текущее PSW указывает следующую выполняемую инструкцию. Оно также указывает, включена ли в процессоре поддержка прерываний ввода-вывода, внешних прерываний, прерываний от схем контроля работы машины и некоторых программных прерываний. Если поддержка прерываний включена, могут возникать эти прерывания. Если поддержка прерываний отключена, эти прерывания игнорируются или остаются в режиме ожидания.

Существуют также новое PSW и старое PSW, связанные с каждым из шести типов прерываний. Новое PSW содержит адрес подпрограммы, которая может обрабатывать соответствующее прерывание. Если в процессоре включена поддержка прерываний, тогда при возникновении прерывания происходит переключение PSW с использованием следующего метода:

1. Сохранение текущего PSW в старом PSW, связанном с типом возникшего прерывания.

2. Загрузка содержимого нового PSW для возникшего прерывания в текущее PSW.

Текущее PSW, указывающее следующую выполняемую инструкцию, теперь содержит адрес требуемой подпрограммы для обработки прерывания. Это переключение вызывает передачу управления требуемой подпрограмме обработки прерываний.

Регистры. Архитектура мэйнфрейма содержит регистры для слежения за происходящими событиями. PSW, например, представляет собой регистр, используемый для записи информации, необходимой для выполнения текущей активной программы. Мэйнфреймы содержат и другие регистры, в частности:

регистры доступа – используются для определения адресного пространства, в котором находятся данные;

общие регистры – используются для адресации данных в памяти, а также для хранения пользовательских данных;

регистры с плавающей точкой – используются для хранения численных данных в формате с плавающей точкой;

управляющие регистры – используются самой операционной системой, например для ссылки на таблицы трансляции.


7.20. Диспетчеризуемые единицы работы z/OS: TCB, SRB. Вытесняемые и не вытесняемые единицы работы.

В z/OS диспетчеризуемые единицы работы представлены двумя видами управляющих блоков:

• блоками управления задачами (task control blocks, TCB). Представляют задачи, выполняющиеся в адресном пространстве, в частности пользовательские программы и системные программы, поддерживающие пользовательские программы.

• блоками запросов обслуживания (service request blocks, SRB). Представляют запросы на выполнение подпрограммы системного сервиса. SRB обычно создаются, когда одно адресное пространство обнаруживает событие, влияющее на другое адресное пространство; они обеспечивают единый механизм связи между адресными пространствами.

TCB – управляющий блок, представляющий задачу, например вашу программу, при ее выполнении в адресном пространстве. TCB содержит информацию о запущенной задаче, в частности адрес всех созданных ею областей памяти. Задача управления регионом (region control task, RCT), отвечающая за подготовку адресного пространства к загрузке и выгрузке, является задачей наивысшего приоритета в адресном пространстве. Все задачи в адресном пространстве являются подзадачами RCT.

SRB – управляющий блок, представляющий подпрограмму, выполняющую определенную функцию или службу в заданном адресном пространстве. Подпрограмма, выполняющая функцию или службу, называется SRB-подпрограммой; инициация процесса называется планированием SRB); SRB-подпрограмма выполняется в операционном режиме, называемом режимом SRB.

SRB подобен TCB в том, что он определяет единицу работы в системе. В отличие от TCB SRB не может «владеть» областями памяти. SRB-подпрограммы могут получать, обращаться, использовать и освобождать области памяти, но этими областями должен владеть TCB. В многопроцессорной среде SRB-подпрограмма после планирования может быть передана на другой процессор и выполняться одновременно с программой, ее запланировавшей. Программа, запланировавшая SRB, может продолжать выполнять обработку других задач параллельно с подпрограммой SRB. Как говорилось выше, SRB представляет средство асинхронной связи между адресными пространствами для программ, выполняющихся в z/OS.

Вытесняемые и не вытесняемые единицы работы.

То, какая подпрограмма получит управление после обработки прерывания, зависит от того, была ли прерванная единица работы вытесняемой. Если была, тогда операционная система определяет, какую единицу работы нужно выполнять следующей. Другими словами, система определяет, какая единица работы из всей работы в системе имеет наивысший приоритет, и передает управление в эту единицу работы.

Невытесняемая единица работы может быть прервана, но должна получить управление после обработки прерывания. Например, SRB часто являются невытесняемыми. Другими словами, если подпрограмма, представленная невытесняемым SRB, прервана, после обработки прерывания она получит управление. С другой стороны, подпрограммы, представленные TCB, например пользовательские программы, обычно являются вытесняемыми. Если ее выполнение прерывается, тогда после обработки прерывания управление возвращается операционной системе. Затем z/OS определяет, какая задача из всех готовых задач будет выполняться следующей.


7.21. Назначение компонента диспетчер в z/OS.

В z/OS компонент диспетчера отвечает за передачу управления единице работы

с наивысшим приоритетом, готовой к выполнению. Процессы диспетчера работают в следующем порядке:

1. Специальные «выходы». Представляют собой «выходы» на подпрограммы, имеющие высокий приоритет из-за особых условий в системе. Например, при отказе одного из процессоров в многопроцессорной системе вызывается процесс восстановления альтернативного CPU посредством специального «выхода» для восстановления работы, выполнявшейся на отказавшем процессоре.





Дата публикования: 2015-02-03; Прочитано: 390 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.017 с)...