Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ ВСЕ.docx
Скачиваний:
31
Добавлен:
16.04.2019
Размер:
1.69 Mб
Скачать

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-гигабайтового региона, указывающую на таблицу сегментов, процесс идентичен описанному выше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]