- •1)Основные функции операционных систем, сред и оболочек
- •2) Классификация ос
- •3) Требования к современным ос
- •4) Мультипрограммирование и распределение ресурсов
- •5) Понятие процессов и потоков
- •6) Алгоритмы планирования процессов и потоков
- •7) Синхронизация процессов
- •9) Функции ос по управлению памятью
- •10) Виртуализация памяти. Классы виртуальной памяти
- •11) Кэширование данных
10) Виртуализация памяти. Классы виртуальной памяти
· Виртуализация оперативной памяти осуществляется совокупностью аппаратных
средств процессора и программных средств ОС и включает решение следующих задач:
· размещение данных (образов процессов или их частей) в запоминающих устрой-
ствах разного типа: частично – в оперативной памяти, частично – на диске;
· выбор образов процессов или их частей для перемещения из оперативной памя-
ти на диск и обратно;
· перемещение данных между памятью и диском;
· преобразование виртуальных адресов в физические.
Решение этих задач осуществляется автоматически, без участия программиста, и
не отображаются в логике работы приложений.
· Виртуализация памяти может быть осуществлена на основе двух подходов –
свопинга и механизма виртуальной памяти.
Свопинг (swapping). Между оперативной памятью и диском перемещаются образы
процессов Более простой в реализации способ, чем виртуальная память. Однако обла-
дает избыточностью при подкачке или выгрузке: часто для активизации процесса или
освобождения памяти не требуется перемещение всего образа процесса. Избыточность
приводит к замедлению работы системы и неэффективному использованию памяти.
Кроме того, невозможно загрузить для выполнения процесс, виртуальное адресное про-
странство которого превышает имеющуюся в наличии свободную память.
Как основной механизм управления памятью в современных ОС почти не использует-
ся. В некоторых ОС, например, версиях Unix, основанных на коде SVR4, свопинг приме-
няется как дополнительный к виртуальной памяти, включающийся только при серьезных
перегрузках системы.
Виртуальная память (virtual memory). Между оперативной памятью и диском пе-
ремещаются части (сегменты, страницы – см. ниже) образов процессов.
В зависимости от способа структуризации виртуального адресного пространства, опре-
деляющего преобразование виртуальных адресов в физические, выделяется три класса
виртуальной памяти.
· Страничное распределение. Единицей перемещения между памятью и диском
является страница – часть виртуального адресного пространства фиксированного и
небольшого объема.
· Сегментное распределение. Единицей перемещения между памятью и диском
является сегмент – часть виртуального адресного пространства произвольного объе-
ма, содержащая осмысленную с некоторой точки зрения совокупность данных (под-
программу, массив и т.д.).
· Сегментно-страничное распределение. Объединяет элементы предыдущих клас-
сов. Виртуальное адресное пространство структурируется иерархически: делится на сег-
менты, а затем сегменты делятся на страницы. Единицей перемещения между памятью
и диском является страница.
Для временного хранения вытесненных на диск сегментов и страниц отводится
либо специальная область, либо специальный файл, обычно называемые странич-
ным файлом (page file, paging file) или, по традиции, файлом свопинга.
Текущий размер страничного файла влияет на возможности работы ОС следую-
щим образом: чем больше файл, тем больше одновременно работающих приложе-
ний, но тем медленнее их работа из-за многократной перекачки перемещаемых эле-
ментов на диск и обратно.
Размер страничного файла в современных ОС является настраиваемым парамет-
ром, который выбирается администратором системы для достижения компромисса
между числом одновременно выполняемых приложений и быстродействием системы.
Этот размер устанавливается в панели управления, пункт «система», вкладка «до-
полнительно» – «параметры быстродействия».
Страничное распределение
· Общая схема
Виртуальное адресное пространство каждого процесса делится на части одинако-
вого, фиксированного для данной системы размера, называемые виртуальными стра-
ницами (virtual pages). В общем случае размер виртуального адресного пространства
не является кратным размеру страницы, поэтому последняя страница каждого про-
цесса дополняется фиктивной областью.
Вся оперативная память машины также делится на части такого же размера, на-
зываемые физическими страницами (блоками, кадрами).
Для каждого процесса ОС создает таблицу страниц – информационную структу-
ру, содержащую записи обо всех виртуальных страницах процесса.
Схема страничного распределения памяти приведена на рис. 3.3.
При создании процесса его виртуальные страницы загружаются в оперативную па-
мять; в случае нехватки последней часть виртуальных страниц может быть вытесне-
на на диск. Смежные виртуальные страницы не обязательно располагаются в смежных
физических страницах.