Проблема замещения страниц
Для предотвращения переполнения памяти, подпрограмма обслуживания отказов страниц дополняется поддержкой замещения страниц.
Для сокращения времени передачи страниц используется бит модификациив таблице страниц: только модифицированные страницы откачиваются на диск.
Замещение страниц дополняет картину и стратегию разделения между виртуальной и физической памятью – большая виртуальная память может быть отображена на небольшую физическую память.
Пример замещения страниц приведен на рис.6.
Рис. 6.Пример замещения страниц.
В примере имеются два пользовательских процесса, каждый из которых использует по 4 страницы виртуальной памяти. Однако имеется только 6 фреймов в основной памяти, выделенных для пользовательских процессов, (начальные фреймы занимает резидентный монитор ОС). В процессе 1 происходит обращение к данным M, расположенным на странице 3 виртуальной памяти, отсутствующей в основной памяти. В процессе 2 точно так же может произойти обращение к данным Bна странице виртуальной памяти 1, которой также нет в основной памяти. Следовательно, ОС должна выполнить замещение страниц, т.е. решить две задачи:
· по какому принципу выбирать "жертвы", т.е. страницы для откачки, находящиеся в оперативной памяти, для освобождения необходимых фреймов?
· в каком порядке обслужить процессы 1 и 2, в каждом из которых возникла необходимость в свободном фрейме?
Кратко алгоритм замещения страниц можно сформулировать следующим образом:
1. Найти, где размещается требуемая страница на диске.
2. Найти свободный фрейм:
o Если есть свободный фрейм, использовать его.
o Если нет свободных фреймов, использовать алгоритм замещения страниц для выбора фрейма -"жертвы".
3. Прочитать содержимое требуемой страницы во вновь освобожденный фрейм. Модифицировать таблицы фреймов и страниц.
4. Продолжить выполнение процесса.
На рис. 7 иллюстрируется момент замещения страниц, с предварительной откачкой страницы-жертвы на диск.
Рис.7.Замещение страниц с откачкой жертвы на диск.
Этапы замещения страниц: 1 – откачка жертвы; 2 – изменение ее элемента таблицы страниц (бит valid заменяется на invalid); 3 – подкачка на освободившееся место желаемой страницы; 4 – изменение элементатаблицы страниц для новой страницы (бит invalid заменяется на valid; запоминается физический адрес подкачанной страницы).
Дата добавления: 2016-03-15; просмотров: 740;