8. Стратегии подкачек и вытеснения страниц памяти
И виртуальная и физическая (ОП) памяти разбиваются на страницы– это блок фиксированного размера.
Поэтому виртуальную память называют еще и страничной виртуальной памятью.
Передача информации между памятью и диском всегда осуществляется целыми страницами. Так виртуальным адресам ставится в соответствие некий адрес физической памяти. Система отображения виртуальных адресов в физические сводится к системе отображения виртуальных страниц в физические и представляет собой таблицу дескрипторов (таблицу страниц).
Однажды может случится, что ОП закончится, тогда делается следующее:
-
если ОС поддерживает виртуальную память, то она имеет файл-подкачки (хранится на жестком диске). Среди страниц, которые заняты (в физической памяти) ядро произвольно выбирает страницу, копирует её в файл-подкачки, а страница становится свободной и тогда виртуальная память отображает страницу на освободившуюся.
Если нам нужна страница, которая уже выброшена, то выбрасывается новая «жертва», а на освободившуюся страницу копируется страница из файла-подкачки (т.е. с жесткого диска).
Windows – pagefile.sys является файлом-подкачки.
Linux – раздел диска swap. (жесткий диск работает медленнее ОП, поэтому это нежелательно)
Алгоритмы выбора жертвы
-
Не требующий поддержки процессора (основан на запоминании выделения страниц)
Например, последовательное (жертвой делаем первого) и кольцевое (меняем расположение головы-начала).
-
С историей: дополнительными битами
Предполагается, что в каждой странице вирт. памяти есть 2 дополнительных бита R и M.
R – выставляется 1, если страницу хоть раз читали
M - выставляется 1, если в нее хоть раз записывали (00-идеальная жертва, 11-худший вариант)
-
Комбинированный вариант (с битами и по времени)
При выгружении не могут выгрузиться:
-
Обработчик прерываний
-
Менеджер безопасности
-
Менеджер процессов
-
Менеджер виртуальной памяти
-
Менеджер потоков
Это тот минимум, который нужен для работы процессора