Организация Виртуальной памяти при меньшем размере оперативной памяти.
Demand paging (Листание по требованию), в этом случае в таблице сегментов предусматривается наличие признака, сигнализирующего о том, что страница или сегмент выгружены на диск. Установка этого признака позволяет при обращении к указанной странице позволяет передать управление операционной системе, она в свою очередь загружает требуемую страницу в память и продолжает выполнение программы с прерванного места. Этим обеспечивается и прозрачность работы виртуальной памяти для программ. Достаточно часто возникает проблема, когда в памяти не остаётся свободного места, в этом случае операционная система выгружает ненужную страницу на диск. Существуют критерии на основании которых определяется ненужность страницы. Они называются АЛГОРИТМЫ ПОДКАЧКИ.
Алгоритмы подкачки. Делятся на два типа: Локальные и глобальные.
Локальные алгоритмы ищут ненужную страницу или сегмент только в рамках этого процесса.
Глобальные алгоритмы ищут в рамках всей системы.
Первые и самые простые алгоритмы можно описать словом FIFO (Первый пришёл, первый ушёл) в таком методе выгрузке подлежат страницы которые дольше всего находятся в оперативной памяти.
Второй самый известный алгоритм – это алгоритм LRU (Last Recently Used) – Наименее часто используемые страницы. В этом случае выгрузке подлежат те страницы, к ктоторым дольше всего не было обращений.
Реализация этих методов предусматривает наличие аппаратной поддержки. Потому что всё это реализовывать программным методом НЕРЕАЛЬНО.
Метод LRU
В этом случае каждой странице присваивается дополнительной признак, соответственно при обращении к какой-либо странице этот признак устанавливается и специальный процесс периодически пробегает по всем страницам и проверяет этот признак, если признак установлен, счётчик обращений к странице сбрасывается и признак обнуляется. Если признак не установлен, то счётчик увеличивается. Таким образом компьютер будет знать, к какой странице дольше всего не было обращения – это вариант номер один практической реализации.
Второй вариант практической реализации заключается в следующем: К каждой странице добавляется 64-разрядное поле, внутри компьютера существует аппаратный счётчик команд, соответственно в это дополнительное 64-разрядное поле записывается текущее значение этого аппаратного счётчика. Соответственно та страница, у которой значение этого дополнительного поле минимальна – не востребована.
Теоретическая реализация метода LRU.
В памяти организуется односвязный или двусвязный список страниц. При обращении к какой-либо странице она должна в этом списке передвинуться в начало. Такие передвижения должны происходить при каждом обращении к физическим адресам памяти. На практике реализация названного алгоритма невозможна. Из за больших накладных расходов.