Страничная организация по требованию
Принцип реализации виртуальной памяти в виде страничной организации по требованиюзаключается в том, что каждая страница загружается в память, только если она реально требуется при выполнении программы – содержит код или данные, к которым произошло обращение.
Преимущества данного подхода:
· Меньший объем ввода-вывода: В память подкачивается только минимально необходимый объем данных (например, одна страница большого массива, а не весь многостраничный массив);
· Меньший объем памяти: При данном способе расходуется минимально необходимый объем физической памяти;
· Более быстрая реакция системы: Поскольку объем пересылаемых данных меньше, система в среднем быстрее реагирует на каждый запрос к памяти;
· Система может обслуживать большее число пользователей: Ввиду экономии физической памяти и времени обращения, система в состоянии при данном подходе обслуживать большее числопользовательских процессов.
Основные принципы страничной организации по требованию:
1. Если страница требуется программе, на нее имеется ссылка из программы.
2. Если ссылка на страницу неверна (например, страницы с данным номером не существует), происходит прерывание.
3. Если требуемая страница отсутствует в памяти, то она подкачивается в память. Механизм подкачки реализуется через прерывание (page fault – отказ страницы).
Рис.2 иллюстрирует размещение виртуальной памяти на диске и ее откачку и подкачку.
Рис.2.Преобразование страничной памяти в непрерывное дисковое пространство.
Из схемы видно, что, с точки зрения каждой программы, пространство ее виртуальной памяти непрерывно. Оно преобразуется в непрерывную область дисковой памяти. С помощью механизма откачки – подкачки в нужный момент страница виртуальной памяти размещается в основной памяти.
С каждым элементом таблицы страниц связывается бит "valid/invalid",однако, в отличие от организации логической памяти, он играет несколько иную роль – он указывает на присутствие или отсутствие страницы в основной памяти. Значение бита равно 1, если страница в памяти, и 0, если страница отсутствует в памяти.
Первоначально для всех элементов таблицы страниц бит valid/invalid полагается равным 0.
Если в процессе трансляции адреса бит "valid/invalid" в таблице страниц оказыется равным 0, то происходит прерывание по отсутствию страницы в памяти (page fault).
На рис.3 приведен пример таблицы страниц, в которой не все страницы присутствуют в основной памяти.
Рис.3.Пример таблицы страниц, в которой не все страницы в памяти.
На схеме логическия память процесса состоит из 6 страниц с номерами от 0 до 5. Однако только страницы 0, 2, 5 размещены в основной памяти (бит valid/invalid имеет значение v = 1). Страницы 1, 3, 4 в основной памяти отсутствуют (бит valid/invalid равен i = 0).
Дата добавления: 2016-03-15; просмотров: 783;