Как записать измененные страницы во вторичную память с использованием буферизации страниц? - PullRequest
0 голосов
/ 04 июня 2019

Я готовлюсь к своему последнему экзамену по ОС и в настоящее время застрял в вопросе:

Предположим, что система использует подкачку запросов в качестве политики выборки.

Размер резидента составляет 2 страницы.

Политика замены является наименее недавно использованной (LRU).

Начальный список свободных кадров: 10, 20. 30, 40, 50

Предположим, что программа работает со следующей последовательностью ссылок на страницы:
3 (чтение), 2 (чтение), 3 (запись), 1 (запись), 1 (запись), 0 (запись), 3 (чтение)

Меня просят показать окончательное содержимое списка свободных кадров, измененного списка и таблицы страниц.

Здесь - модельный ответ.

Это - это то, что мне удалось сделать.

Окончательный резидентный набор правильный, но список свободных кадров и измененный список - нет. Я просто не могу понять, как измененный список не содержит страницы с номером 0 (поскольку она была записана в память), а страница с номером 1 не была записана, даже если на нее ссылались до этого.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 июня 2019

Почему вы перерабатываете 3 (10) в свободный список на шаге 4? Он использовался реже всего (и он грязный), поэтому вы захотите сохранить его и избавиться от 2 (20). Похоже, именно на этом основан ответ модели.

...