Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Страничная организация виртуальной памяти



При страничной организации виртуальное адресное пространство каждого про­цесса делится на части одинакового, фиксированного для данной системы размера, на­зываемые виртуальными страницами (Virtual pages). В общем случае размер виртуального адресного пространства не кратен размеру страницы, поэтому последняя страница дополняется фиксированной областью.

Вся оперативная память машины также делится на части такого же размера, называе­мые физическими страницами (или блоками, или кадрами). Размер страницы выбира­ется равным степени двойки: 1024, 2408,4096 байт и т. д. Это позволяет упростить меха­низм преобразования адресов.

При создании процесса ОС загружает в операционную память несколько его вирту­альных страниц (начальные страницы кодового сегмента и сегмента данных). Копия всего виртуального адресного пространства процесса находится на диске. Смежные виртуальные страницы не обязательно находятся в смежных физических страницах. Для каждого процесса ОС создает таблицу страниц - информационную структуру, со­держащую записи обо всех виртуальных страницах процесса (рис. 3.12).

Запись таблицы (дескриптор страницы) включает следующую информацию:

· номер физической страницы (N ф.с), в которую загружена данная виртуальная страница;

· признак присутствия Р, устанавливаемый в единицу, если данная страница находится в оперативной памяти;

· признак модификации страницы D, который устанавливается в единицу всякий раз, когда производится запись по адресу, относящемуся к данной страницы;

· признак обращения А к странице, называемый также битом доступа, который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице;

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

Перечисленные признаки в большинстве моделей процессов устанавливаются ап­паратно схемами процессора при выполнении операций с памятью. Информация из таблицы страниц используется для решения вопроса о необходимости перемещения той или иной страницы между памятью и диском, а также для преобразования вирту­ального адреса в физический. Сами таблицы страниц, так же как и описываемые ими страницы размещаются в оперативной памяти.

Поскольку процесс может использовать большой объем виртуальной памяти (на­пример, в Windows 2000 он равен 23 2= 4 Гбайт), при использовании страницы объемом 4 Кбайт (212) потребуется 220записей в таблице страниц для каждого процесса. Понят­но, что выделять такое количество оперативной памяти под таблицы страниц нецелесо­образно. Для преодоления этой проблемы большинство схем виртуальной памяти хра­нит таблицы страниц не в реальной, а в виртуальной памяти. Это означает, что сами таблицы страниц становятся объектами страничной организации. При работе процесса как минимум часть его таблицы страниц должна располагаться в основной памяти, в том числе запись о странице, выполняющейся в настоящий момент. Адрес таблицы страниц включается в контекст процесса. При активизации очередного процесса ОС за­гружает адрес его таблицы страниц в специальный регистр.

При каждом обращении к памяти выполняется поиск номера виртуальной страницы, содержащей требуемый адрес, затем по этому номеру определяется нужный элемент таблицы страниц, и из него извлекается описывающая страницу информация. Далее анализируется признак присутствия, и если данная виртуальная страница нахо­дится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск, то происходит страничное прерывание.

Выполняющийся процесс переводится в состояние ожидания, и активизируется процесс из очереди процессов, находящихся в состояние готовности. Параллельно про­грамма обработки страничного прерывания находит на диске требуемую виртуальную страницу и пытается ее загрузить в оперативную память. Если в памяти имеется сво­бодная физическая страница, то загрузка выполняется немедленно. Если же свободных страниц нет, то на основании принятой в данной системе стратегии замещения страниц решается вопрос о том, какую страницу следует выгрузить из оперативной памяти.

После того как выбрана страница, которая должна покинуть оперативную память, обнуляется ее бит присутствия и анализируется ее признак модификации. Если уда­ляемая страница за время последнего требования в оперативной памяти была модифи­цирована, то ее новая версия должна быть переписана на диск. Если нет, то принимает­ся во внимание, что на диске уже имеется предыдущая копия этой виртуальной страни­цы, и никакой записи на диск не производится. Физическая страница объявляется свободной. Из соображений безопасности в некоторых системах освобождаемая стра­ница обнуляется, чтобы невозможно было использовать содержимое выгруженной страницы. Для хранения информации о положении вытесненной страницы в странич­ном файле ОС может использовать специальные поля таблицы страниц.

Виртуальный адрес при страничном распределении может быть представлен в виде пары (Р, Sv), где Р - номер виртуальной страницы процесса (нумерация страниц начи­нается с 0), a Sv- смещение в пределах виртуальной страницы. Физический адрес также может быть представлен в виде пары (N, Sf), где N - номер физической страницы, a Sf - смещение в пределах физической страницы. Задача подсистемы вирту­альной памяти состоит в отображении пары значений (Р, Sv) в пару (N, Sf).

Практика использования виртуальной памяти показала, что для нее справедлив за­кон локализации большинства обращений в небольшое количество недавно использо­ванных страниц.





Дата публикования: 2014-11-04; Прочитано: 634 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...