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

7.9. Организация адресации виртуальной памяти в z/os. Фреймы, страницы и слоты.

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

На рис. 3.3 представлена концепция виртуальной памяти, реализованная в z/OS, в действии:

  • Адрес является идентификатором нужного фрагмента информации, но не описанием того, где в основной памяти находится этот фрагмент информации. Благодаря этому размер адресного пространства (т. е. все адреса, доступные программе) может превышать размер доступной основной памяти.

  • В большинстве пользовательских программ во всех ссылках на основную память используются адреса виртуальной памяти.

  • Для преобразования виртуального адреса в физическое расположение в основной памяти используется механизм динамической трансляции адреса (DAT). Как показано на рис. 3.3, может существовать несколько виртуальных адресов 10254000, так как эти виртуальные адреса соответствуют различным адресам в основной памяти.

  • Если запрашиваемого адреса нет в основной памяти, в z/OS возникает аппаратное прерывание и операционная система выполняет загрузку нужных инструкций и данных в основную память.

Фреймы, страницы и слоты

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

Фрагменты программы, выполняющиеся в виртуальной памяти, необходимо перемещать между основной и вспомогательной памятью. Для этого z/OS при управлении хранением работает с блоками размером 4 Кб. Определены следующие блоки:

  • блок в основной памяти называется фреймом (frame);

  • блок в виртуальной памяти называется страницей (page);

  • блок во вспомогательной памяти называется слотом (slot).

Страница, фрейм и слот имеют одинаковый размер – 4 Кб. Активная страница виртуальной памяти находится во фрейме основной памяти. Страница виртуальной памяти, которая становится неактивной, находится в слоте вспомогательной памяти (в страничном наборе данных).

На рис. 3.4 показано, каким образом z/OS выполняет загрузку страниц для программы, выполняющейся в виртуальной памяти. Квадраты, обозначенные буквами, представляют части программы. В этом упрощенном представлении части программы A, E, F и H активны и выполняются во фреймах основной памяти, тогда как части B, C, D и G неактивны и перемещены в слоты вспомогательной памяти. Тем не менее, все части программы находятся в виртуальной памяти и имеют виртуальные адреса.

7.10. Страничный обмен в z/os. Изъятие страницы.

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

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

Как выполняется страничный обмен в z/OS

Помимо DAT-оборудования и таблиц сегментов и страниц, нужных для трансляции адресов, при страничном обмене используется множество системных компонентов для управления перемещением страниц, а также несколько дополнительных таблиц для определения наиболее актуальной версии каждой страницы. Для того чтобы понять принцип выполнения страничного обмена, рассмотрим ситуацию, когда DAT при трансляции адресов обнаруживает недопустимую запись в таблице страниц; это указывает на то, что необходима страница, не находящаяся во фрейме основной памяти. Чтобы разрешить ошибку отсутствия страницы, система должна перенести страницу из вспомогательной памяти. Однако прежде она должна найти свободный фрейм в основной памяти. Если такого фрейма нет, необходимо сохранить запрос и освободить выделенный фрейм. Для освобождения фрейма система копирует его содержимое во вспомогательную память и помечает соответствующую запись в таблице страниц как недействительную. Эта операция называется вытеснением страницы (page-out).

После нахождения фрейма для требуемой страницы содержимое страницы копируется из вспомогательной памяти в основную память и бит недействительности записи таблицы страниц сбрасывается. Эта операция называется подкачкой страницы (page-in).

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

Изъятие страницы

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

Когда этот запас становится недостаточным, z/OS выполняет изъятие страницы (page stealing) для его пополнения; другими словами, выбирается фрейм, выделенный для активного пользователя, который делается доступным для других задач. Решение об изъятии определенной страницы основано на истории активности каждой страницы, находящейся во фрейме основной памяти. Страницы, которые относительно долгое время были неактивны, являются подходящими кандидатами для изъятия.

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