Безопасность операционных систем. Безбогов А.А - 47 стр.

UptoLike

Рис. 4.7. Отображения адресов при странично-сегментной организации виртуальной памяти
Таблица сегментов процесса содержит в своих строках информацию о количестве страниц в сегменте и о начальных ад-
ресах s размещения таблиц страниц сегментов в первичной памяти ЭВМ.
Каждая страница таблиц сегмента содержит в своих строках информацию о начальном адресе p размещения в первич-
ной памяти страничного кадра для данной страницы виртуальной памяти.
Динамическое преобразование виртуальных адресов в системах со странично-сегментной организацией отличается от
преобразования по схеме наличием еще одного уровня вычисления адреса (см. рис. 4.7) и появлением таблиц страниц для
каждого сегмента процесса.
4.4. УПРАВЛЕНИЕ ВИРТУАЛЬНОЙ ПАМЯТЬЮ
4.4.1. Стратегии управления виртуальной памятью
Стратегии управления виртуальной памятью так же, как и стратегии управления физической памятью, разделяются на
три категории: стратегии вталкивания, стратегии размещения и стратегии выталкивания.
Целью
стратегий вталкивания является определить, в какой момент следует переписать страницу или сегмент из
вторичной памяти в первичную.
Целью
стратегий размещения является определить, в какое место первичной памяти помещать поступающую страни-
цу или сегмент.
Целью
стратегий выталкивания является решить, какую страницу или сегмент следует удалить из первичной памяти,
чтобы освободить место для помещения поступающей страницы или сегмента, если первичная память полностью занята.
Большинство стратегий управления виртуальной памятью базируется на концепции
локальности.
Суть концепции локальности заключается в том, что распределение запросов процессов на обращение к памяти имеет,
как правило, неравномерный характер с высокой степенью локальной концентрации.
Свойство локальности проявляется как во времени, так и в пространстве.
Локальность во времени означает, что к ячейкам памяти, к которым недавно производилось обращение, с большой ве-
роятностью будет обращение в ближайшем будущем.
Локальность в пространстве означает, что обращения к памяти, как правило, концентрируются так, что в случае об-
ращения к некоторой ячейке памяти с большой вероятностью можно ожидать обращение к близлежащим ячейкам.
Свойство локальности наблюдается не только в прикладных программах, но и в работе программ операционной систе-
мы. Свойство это скорее эмпирическое (наблюдаемое на практике), чем теоретически обоснованное. Локальность никак
нельзя гарантировать, однако ее вероятность достаточно велика. Самым важным следствием локализации является то, что
программа может эффективно работать, если в первичной памяти находится подмножество, включающее наиболее "попу-
лярные" ее страницы или сегменты.
4.4.2. СТРАТЕГИИ ВТАЛКИВАНИЯ (подкачки)
Для управления вталкиванием применяются следующие стратегии:
вталкивание (подкачка) по запросу (по требованию);
вталкивание (подкачка) с упреждением (опережением).
Вталкивание (подкачка) по запросу предполагает, что система ждет ссылки на страницу или сегмент от выполняюще-
гося процесса и только после появления такой ссылки начинает переписывать данную страницу или сегмент в первичную
память. Подкачка по запросу имеет положительные и отрицательные стороны.
К положительным сторонам относятся:
1)
гарантировано, что в первичную память будут переписываться только те страницы (сегменты), которые необходимы
для работы процесса;
s
Виртуальный адрес
v
=(s, p, d)
p ds
Виртуальный адрес
v
=(s, p, d)
p d
Таблица сегментов
процесса
s’
Таблица сегментов
процесса
s’
s’
b
Регистр начального адреса
таблицы сегментов
b
Регистр начального адреса
таблицы сегментов
+
ss
+
s’s’
pp
p’
Таблица
страниц
p’
Таблица
страниц
s’+ps’+p
+
p’p’
p’+dp’+d
r
Реальный адрес
r
Реальный адрес
dd
b+sb+s
b
b
b
b
d
d ps
s
p
r
p
+ d
s
+ p
s
s
b + s
b
b
p
p
Таблица
страниц
Таблица сегментов
процесса
Реальный адрес
Виртуальный адрес
ν
= (s, p, d)
Регистр
начального адреса
таблицы сегментов