Uploaded by Minter

Lektsia 10 Podsistema upr-ya pamyatyu Svoping i virtualnaya pamyat

advertisement
Цель: познакомиться с особенностями организации
оперативной памяти с использованием внешней памяти
Задачи:
• изучить два подхода к виртуализации памяти
• стратегии управления памятью
• алгоритмы распределения памяти
Где почитать: https://studopedia.su/2_27764_svoping-ivirtualnaya-pamyat.html
СВОПИНГ И ВИРТУАЛЬНАЯ
ПАМЯТЬ
1
Понятие виртуальной памяти
Виртуальным называется ресурс, который пользователю или
пользовательской
программе
представляется
обладающим
свойствами, которыми он в действительности не обладает.
Виртуальное адресное пространство — это максимально доступное
приложению адресное пространство. Объём виртуального адресного
пространства зависит от архитектуры компьютера и операционной
системы.
Виртуальная память — схема адресации памяти, при которой память
представляется программному обеспечению непрерывной и
однородной, в то время как в реальности для фактического хранения
данных используются отдельные (разрывные) области различных
видов памяти, включая и долговременную память (жёсткие диски и
т.п.)
2
Основные задачи, решаемые
подсистемой виртуальной памяти
размещение данных в запоминающих устройствах разного
типа
выбор образов процессов или их частей для перемещения
из оперативной памяти на диск и обратно
перемещение по мере необходимости данных между
памятью и диском
преобразование виртуальных адресов в физические.
3
Два подхода к виртуализации
памяти
виртуальная память
свопинг (swapping), или
(virtual memory) –
подкачка, – образы
между оперативной
процессов выгружаются
памятью и диском
на диск и возвращаются
перемещаются части
в оперативную память
(сегменты, страницы и
целиком
т. п.) образов процессов
4
Достоинства и недостатки свопинга
Достоинство – относительная простота реализации
Недостаток – избыточность откачиваемой информации:
Когда ОС решает активизировать процесс, для его
выполнения не требуется загружать в оперативную память
все его сегменты полностью - достаточно загрузить
небольшую часть кодового сегмента с подлежащей
выполнению инструкцией и частью сегментов данных, с
которыми работает эта инструкция, а также отвести место
под сегмент стека.
5
Реализации виртуальной памяти
Страничная
виртуальная память
организует
перемещение данных
между памятью и
диском страницами –
частями виртуального
адресного
пространства,
фиксированного и
сравнительно
небольшого размера.
Сегментная
виртуальная
память
предусматривает
перемещение
данных сегментами
– частями
виртуального
адресного
пространства
произвольного
размера,
полученными с
учетом смыслового
значения данных.
Сегментно-страничная
виртуальная память
использует
двухуровневое деление:
виртуальное адресное
пространство делится на
сегменты, а затем
сегменты делятся на
страницы. Единицей
перемещения данных
здесь является страница.
Этот способ управления
памятью объединяет в
себе элементы обоих
предыдущих подходов.
6
Страничный файл (файл подкачки)
Для временного хранения сегментов и страниц на диске
отводится специальная область: специальный файл
(Windows) или раздел (Linux), называемые файлом
(разделом) подкачки.
Употребляется также термин страничный файл, т.к.
используется работа со страницами (page file, или paging
file).
7
Страничное распределение памяти
8
Виртуальная страница (определение)
Виртуальное адресное пространство каждого процесса
делится на части одинакового, фиксированного для
данной системы размера. Такая область называется
виртуальной страницей (virtual page).
Вся оперативная память машины также делится на части
такого
же
размера,
называемые
физическими
страницами
(или
страничными
фреймами).
В
процессорах Intel Pentium он равен 4 кбайтам.
11
Таблица страниц
•
•
•
•
Для каждого процесса операционная система создает
таблицу страниц – информационную структуру, содержащую
записи обо всех виртуальных страницах процесса.
Запись таблицы, называемая дескриптором страницы,
включает следующую информацию:
номер физической страницы, в которую загружена данная
виртуальная страница;
признак присутствия, устанавливаемый в единицу, если
виртуальная страница находится в оперативной памяти;
признак модификации страницы, который устанавливается
в единицу всякий раз, когда производится запись по адресу,
относящемуся к данной странице;
признак обращения к странице, называемый также битом
доступа, который устанавливается в единицу при каждом
обращении по адресу, относящемуся к данной странице.
12
Алгоритм работы виртуальной памяти
•
•
•
•
выполняется поиск номера виртуальной страницы,
определение нужного элемента таблицы страниц
извлечение описывающей страницу информации
анализ присутствия данной виртуальной страницы в
оперативной памяти
присутствует
отсутствует
преобразование её
виртуального
адреса в физический.
страничное прерывание
13
Алгоритм работы виртуальной памяти в
случае отсутствия страницы
страничное прерывание
поиск на диске требуемой страницы и попытка загрузить ее в ОП
есть свободное место
немедленная загрузка в
память
при
наличии
свободной
физической
страницы.
нет свободного места
выбор страницы для выгрузки
из ОП для загрузки нужной
страницы
обнуление бита присутствия
выгружаемой страницы
запись на диск новой версии
выгружаемой
страницы
в
случае ее модификации в ОП
14
Базисные свойства страничной
виртуальной памяти
• объем страницы выбирается равным степени двойки – 2k
(это значит - смещение может быть получено простым
отделением k младших разрядов в двоичной записи
адреса, а оставшиеся старшие разряды адреса
представляют собой двоичную запись номера страницы);
• в пределах страницы непрерывная последовательность
виртуальных адресов однозначно отображается в
непрерывную последовательность физических адресов (
значит, смещения в виртуальном и физическом адресах sv
и sf равны между собой).
16
Сегментное распределение
• Виртуальное адресное пространство процесса делится на
части — сегменты, размер которых определяется с учетом
смыслового значения содержащейся в них информации.
• Отдельный сегмент может представлять собой
подпрограмму, массив данных и т. п. Максимальный
размер сегмента определяется разрядностью
виртуального адреса  при 32-разрядной организации
процессора он равен 4 Гбайт.
• Деление виртуального адресного пространства на
сегменты осуществляется по умолчанию, в соответствии с
принятыми в ОС соглашениями.
18
Распределение памяти сегментами
19
Недостаток сегментного распределения
• Фрагментация, которая возникает из-за
непредсказуемости размеров сегментов:
– в процессе работы системы в памяти образуются
небольшие участки свободной памяти, в которые не
может быть загружен ни один сегмент;
– суммарный объем, занимаемый фрагментами, может
составить существенную часть общей памяти системы,
приводя к ее неэффективному использованию.
20
Загрузка образа процесса в ОП
• На этапе создания процесса во время загрузки его образа
в оперативную память система создает таблицу сегментов
процесса (аналогичную таблице страниц), в которой для
каждого сегмента указывается:
• базовый физический адрес сегмента в оперативной
памяти;
• размер сегмента;
• правила доступа к сегменту;
• признаки модификации, присутствия и обращения к
данному сегменту, а также некоторая другая информация.
Сегментное распределение памяти имеет очень много
общего со страничным распределением.
21
Сравнение сегментной и страничной
организации.
• Общее: при каждом обращении к оперативной памяти
выполняется преобразование виртуального адреса в
физический, время от времени происходят прерывания,
связанные с отсутствием нужных сегментов в памяти, при
необходимости освобождения памяти некоторые
сегменты выгружаются.
• Преимущество сегментной модели : возможность задания
дифференцированных прав доступа процесса к его
сегментам. Например, один сегмент данных,
содержащий исходную информацию для приложения,
может иметь права доступа «только чтение», а
сегмент данных, представляющий результаты, —
«чтение и запись».
22
Сегментно-страничное распределение
• представляет собой комбинацию страничного и
сегментного механизмов управления памятью и сочетает
в себе достоинства обоих подходов.
• виртуальное адресное пространство процесса разделено
на сегменты  можно определять разные права доступа к
разным частям кодов и данных программы.
• перемещение данных между памятью и диском
осуществляется страницами. Для этого каждый
виртуальный сегмент и физическая память делятся на
страницы равного размера, что позволяет более
эффективно использовать память, сократив до минимума
фрагментацию.
23
Download