Введение в аппаратно-независимый уровень управления виртуальной памятью

УПРАВЛЕНИЕ ПАМЯТЬЮ. АППАРАТНО-НЕЗАВИСИМЫЙ УРОВЕНЬ УПРАВЛЕНИЯ ВИРТУАЛЬНОЙ ПАМЯТЬЮ

Контрольные вопросы

Размер страницы

Дизайнеры ОС для существующих машин редко имеют возможность влиять на размер страницы. Однако для вновь создаваемых компьютеров решение относительно оптимального размера страницы является актуальным. Как и можно было ожидать нет одного наилучшего размера. Скорее есть набор факторов, влияющих на размер. Обычно размер страницы это степень двойки от 2**9 до 2**14 байт.

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

Как следует выбирать размер страницы? Во-первых, нужно учитывать размер таблицы страниц, здесь желателен большой размер страницы (страниц меньше, соответственно и таблица страниц меньше). С другой стороны память лучше утилизируется с маленьким размером страницы. В среднем половина последней страницы процесса пропадает. Необходимо также учитывать объем ввода-вывода для взаимодействия с внешней памятью и другие факторы. Проблема не имеет хорошего ответа. Историческая тенденция состоит в увеличении размера страницы. Как правило, размер страниц задается аппаратно, например, на Intel - это 4096 байт (или 4 Кбайт), на DEC PDP-11 - 8 Кбайт, на DEC VAX - 512 байт, на других архитектурах, таких как Motorola 68030, размер страниц может быть задан программно.

Итак, в данной теме рассмотрены аппаратные особенности поддержки виртуальной памяти. Перейдем к ее программной поддержке.

1) Опишите две задачи, решаемые с помощью виртуальной памяти

2) Назовите модели виртуальной памяти

3) Охарактеризуйте страничную память

4) Охарактеризуйте сегментную память

5) Охарактеризуйте сегментно-страничную память

6) Опишите структуру таблицы страниц

7) Опишите ассоциативную память

8) Опишите иерархию памяти

9) Опишите, как следует выбирать размер страницы памяти

 


На лекции рассматриваются следующие вопросы:

1) Введение в аппаратно-независимый уровень управления виртуальной памятью

2) Исключительные ситуации при работе с памятью.

3) Стратегии управления страничной памятью

4) Алгоритмы замещения страниц (алгоритмы FIFO, оптимальный, LRU, NFU)

5) Thrashing. Свойство локальности. Модель рабочего множества

6) Демоны пейджинга

7) Аппаратно-независимая модель памяти процесса

8) Отдельные аспекты функционирования менеджера памяти

 

Обычно ОС опирается на некоторое собственное представление организации виртуальной памяти, которое используется в аппаратно-независимой части подсистемы управления виртуальной памятью и связывается с конкретной аппаратной реализацией с помощью аппаратно-зависимой части.

Как же достигается возможность наличия виртуальной памяти с размером, существенно превышающим размер оперативной памяти? В элементе таблицы страниц может быть установлен специальный флаг (означающий отсутствие страницы), наличие которого заставляет аппаратуру вместо нормального отображения виртуального адреса в физический прервать выполнение команды и передать управление соответствующему компоненту операционной системы. Когда программа обращается к виртуальной странице, отсутствующей в основной памяти, т.е. "требует" доступа к данным или программному коду, операционная система удовлетворяет это требование путем выделения страницы основной памяти, перемещения в нее копии страницы, находящейся во внешней памяти, и соответствующей модификации элемента таблицы страниц. Здесь имеем дело с частным случаем исключительной ситуации (exception) при работе с памятью, так называемым страничным нарушением (page fault).

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