
Министерство образования российской федерации
Московский Государственный Институт Электроники и Математики
(технический университет)
Кафедра вычислительных систем и сетей.
МОДЕЛЬ ВИРТУАЛЬНОЙ ПАМЯТИ
Методические указания к лабораторной работе
по курсу «Организация ЭВМ, комплексов и систем».
Москва 2001
Составители: канд.техн.наук, доцент Е.М.Иванова
канд.техн.наук, доцент И.Е.Сафонова
ст.преподаватель С.В.Жарков
инженер А. Н. Лапаев
УДК 681.325
Модель виртуальной памяти: Методические указания к лабораторным работам по курсу «Организация ЭВМ, комплексов и систем» /Московский государственный институт электроники и математики; Сост.: Е.М.Иванова, И.Е.Сафонова, С.В.Жарков, А. Н. Лапаев. М., 2001 - 14 с.
Данная лабораторная работа направлена на изучение модели вирутальной памяти, выбора организации памяти, преобразования адресов и откачки страниц.
Для студентов 4 курса факультета АВТ и технических факультетов, изучающих курс «Организация ЭВМ, комплексов и систем».
ISBN
ВВЕДЕНИЕ
ЦЕЛЬ РАБОТЫ
Реализовать модель виртуальной памяти. Выбор организации, преобразования адресов и стратегии откачки свободный.
Для моделирования виртуальной памяти выбраны следующие параметры:
а) организация памяти - страничная (т.к. такая организация более проста и для понимания, и для реализации);
б) преобразование адресов страниц прямым
отображением (т.к. ассоциативная память дороже, чем кэш-память);
в) метод откачки страниц - LRU(т.к. этот метод использовался в системах фирмы Intel).
г)метод подкачки страниц по требованию.
Теоретические сведения.
1. Организация памяти может быть страничной, сегментной или странично-сегментной.
1.1. Страничная организация памяти означает, что вся память разделена на равные части (страницы). Виртуальный адрес в страничной системе - это упорядоченная пара (p,d), где р -номер страницы в виртуальной памяти, d- смещение в рамках страницы р.
-
Номер страницы
Смещение
Виртуальный адрес, указанный в выпол-няющемся процессе
p
d
Процесс может выполнятся, если его текущая страница находится в первичной памяти. Страницы переписываются из внешней памяти в первичную и размещаются в ней в блоках, называемых страничными кадрамии имеющими точно такой же размер, как поступающие страницы. Поступающая страница может быть помещена в любой свободный страничный кадр.
Поскольку обычно не все страницы процесса находятся в первичной памяти одновременно, таблица отображения страниц должна указывать, есть ли адресуемая страница в первичной памяти, и если есть, то где именно, а если нет, то в каком месте внешней памяти ее можно найти. Здесь представлена типичная строка отображения страниц.
-
Бит-признак присутствия страницы
Адрес внешней памяти (если страницы в реальной памяти нет)
Номер страничного кадра (если страница находится в реальной памяти)
R
S
p’
г=0, если страницы в реальной памяти нет
г=1, если страница находится в реальной памяти
Если страницы в реальной памяти нет, то s - ее адрес во внешней памяти. Если страница есть в первичной памяти, то р' - номер ее страничного кадра. Но р' - это не действительный адрес первичной памяти. Адрес первичной памяти а, с которого начинается страничный кадр р'(если размер страницы равняется р), определяется произведением а=(р) (р'). Вцелях экономии емкости первичной памяти в таблицу отображения страниц можно не включать адреса страниц во внешней памяти.
1.2. Сегментная организация памяти означает, что вся память может быть разделена на части (блоки) разных размеров. Виртуальный адрес в сегментной системе представляет собой упорядоченную пару v=(s,d), где s - номер сегмента виртуальной памяти, ad- смещение в рамках этого сегмента.
1.3. Странично-сегментная организация памяти представляет собой сегментную систему, в которой каждый сегмент разбит на страницы равной длины. Виртуальный адрес в странично-сегментной системе представляет собой упорядоченную тройку v=(s, p, d), где s - номер сегмента, р - номер страницы в сегменте, a d - смещение в рамках страницы.
2. Преобразование адресов страниц. Рассмотрим преобразование адресов для страничной организации виртуальной памяти.
2.1. Преобразование адресов страниц прямым отображением.
Выполняющий процесс делает ссылку по виртуальному адресу v=(p,d). Прежде чем процесс начнет выполнятся, операционная система загружает адрес первичной памяти для таблицы отображения страниц в регистр начального адреса этой таблицы. Этот базовый адрес bтаблицы прибавляется к номеру страницыр,образуя адрес первичной памятиb+рдля строки страницырв таблице. В этой строке указано, что виртуальной страницеpсоответствует страничный кадр p'. Затем к значениюр' приформировывается (путем конкатенации) смещениеd,так что образуется реальный адрес г.Такой подход называется способом прямого отображения потому, что таблица отображения страниц содержит отдельную строку для каждой страницы виртуальной памяти данного процесса.
Как преобразуемый виртуальный адрес, так и базовый адрес таблицы отображения страниц хранятся в высокоскоростных регистрах управляющего процессора, так что операции с их участием можно выполнять очень быстро внутри командного цикла. Однако таблица прямого отображения страниц, которая может быть довольно большой, обычно находится в первичной памяти. Следовательно, для обращения к этой таблице требуется один полный цикл выборки из первичной памяти. Это означает, что использование метода прямого отображения для преобразования адресов страниц может вызвать снижение скорости вычислительной машины почти вдвое. Этого можно избежать, если размещать целиком всю таблицу в сверхвысокоскоростной кэш-памяти.