Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС колоквиум.docx
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
70.55 Кб
Скачать

10) Виртуализация памяти. Классы виртуальной памяти

· Виртуализация оперативной памяти осуществляется совокупностью аппаратных

средств процессора и программных средств ОС и включает решение следующих задач:

· размещение данных (образов процессов или их частей) в запоминающих устрой-

ствах разного типа: частично – в оперативной памяти, частично – на диске;

· выбор образов процессов или их частей для перемещения из оперативной памя-

ти на диск и обратно;

· перемещение данных между памятью и диском;

· преобразование виртуальных адресов в физические.

Решение этих задач осуществляется автоматически, без участия программиста, и

не отображаются в логике работы приложений.

· Виртуализация памяти может быть осуществлена на основе двух подходов –

свопинга и механизма виртуальной памяти.

Свопинг (swapping). Между оперативной памятью и диском перемещаются образы

процессов Более простой в реализации способ, чем виртуальная память. Однако обла-

дает избыточностью при подкачке или выгрузке: часто для активизации процесса или

освобождения памяти не требуется перемещение всего образа процесса. Избыточность

приводит к замедлению работы системы и неэффективному использованию памяти.

Кроме того, невозможно загрузить для выполнения процесс, виртуальное адресное про-

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

Как основной механизм управления памятью в современных ОС почти не использует-

ся. В некоторых ОС, например, версиях Unix, основанных на коде SVR4, свопинг приме-

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

перегрузках системы.

Виртуальная память (virtual memory). Между оперативной памятью и диском пе-

ремещаются части (сегменты, страницы – см. ниже) образов процессов.

В зависимости от способа структуризации виртуального адресного пространства, опре-

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

виртуальной памяти.

· Страничное распределение. Единицей перемещения между памятью и диском

является страница – часть виртуального адресного пространства фиксированного и

небольшого объема.

· Сегментное распределение. Единицей перемещения между памятью и диском

является сегмент – часть виртуального адресного пространства произвольного объе-

ма, содержащая осмысленную с некоторой точки зрения совокупность данных (под-

программу, массив и т.д.).

· Сегментно-страничное распределение. Объединяет элементы предыдущих клас-

сов. Виртуальное адресное пространство структурируется иерархически: делится на сег-

менты, а затем сегменты делятся на страницы. Единицей перемещения между памятью

и диском является страница.

Для временного хранения вытесненных на диск сегментов и страниц отводится

либо специальная область, либо специальный файл, обычно называемые странич-

ным файлом (page file, paging file) или, по традиции, файлом свопинга.

Текущий размер страничного файла влияет на возможности работы ОС следую-

щим образом: чем больше файл, тем больше одновременно работающих приложе-

ний, но тем медленнее их работа из-за многократной перекачки перемещаемых эле-

ментов на диск и обратно.

Размер страничного файла в современных ОС является настраиваемым парамет-

ром, который выбирается администратором системы для достижения компромисса

между числом одновременно выполняемых приложений и быстродействием системы.

Этот размер устанавливается в панели управления, пункт «система», вкладка «до-

полнительно» – «параметры быстродействия».

Страничное распределение

· Общая схема

Виртуальное адресное пространство каждого процесса делится на части одинако-

вого, фиксированного для данной системы размера, называемые виртуальными стра-

ницами (virtual pages). В общем случае размер виртуального адресного пространства

не является кратным размеру страницы, поэтому последняя страница каждого про-

цесса дополняется фиктивной областью.

Вся оперативная память машины также делится на части такого же размера, на-

зываемые физическими страницами (блоками, кадрами).

Для каждого процесса ОС создает таблицу страниц – информационную структу-

ру, содержащую записи обо всех виртуальных страницах процесса.

Схема страничного распределения памяти приведена на рис. 3.3.

При создании процесса его виртуальные страницы загружаются в оперативную па-

мять; в случае нехватки последней часть виртуальных страниц может быть вытесне-

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

физических страницах.