Как реализуется LFR / LRU? - PullRequest
0 голосов
/ 13 апреля 2020

Как применяются политики замены страниц, такие как LRU / LFU? Аппаратный MMU отслеживает количество ссылок (в случае LFU)? Возможно ли его реализовать как часть ядра?

1 Ответ

0 голосов
/ 13 апреля 2020

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

Например, Fox на x86 MMU будет установите бит «A» в PTE (запись таблицы страниц) при каждом обращении к странице. Таким образом, ядро ​​непрерывно перебирает всю используемую память, проверяет и очищает этот бит. Любая страница, для которой установлен бит, была доступна с момента последней развертки, и любая страница, на которой этот бит (все еще) очищен со времени последней развертки, не была. Эти страницы являются кандидатами на замену. Детали варьируются от ОС к ОС, но, как правило, существует какая-то структура очереди, в которой отслеживаются эти страницы и заменяются самые старые.

...