Может ли кто-нибудь помочь мне привести пример MRU и CLOCK?
Как название.
Существует буферный пул с 3 страницами, который принимает запросы на следующие номера страниц:
2,4,4,2,5,2,1,1,3,1
Политика замены - MRU и CLOCK. Я запутался в том, как они работают. Может ли кто-нибудь показать мне? Большое спасибо ~
Обновить:
Вот мое решение, следующее политике MRU:
2
2 4
2 4
2 4
2 4 5
2 4 5
1 4 5
3 4 5
1 4 5
Это правильно?
И следуя политике LRU:
hit/miss?
2 м
2 4 м
2 4 ч
2 4 ч
2 4 5 м
2 4 5 ч
2 1 5 м
2 1 5 ч
2 1 3 м
2 1 3 ч
Это правильно?
2 ответа
Есть мое решение, следуя политике MRU... Это правильно?
Согласно указанному вами определению MRU, ваша политика замены страниц MRU выглядит правильной.
Политика замены - MRU и CLOCK. Я запутался в том, как они работают. В этом случае (для номеров 2,4,4,2,5,2,1,1,3,1):
В политике замены страниц синхронизации, ОС циркулирует по страницам, очищая контрольные биты и находя страницу с контрольным битом, установленным в 0.
Page number Reference bit
2 1
2,4 1,1
2,4 1,1
2,4 1,1
2,4,5 1,1,1
2,4,5 1,1,1
1,4,5 1,0,0
1,4,5 1,0,0
1,3,5 1,1,0
1,3,5 1,1,0
И следуя политике LRU: ударить / пропустить? Это правильно?
ДА, для замены страницы LRU, порядок страниц, а также количество попаданий и пропусков являются правильными.
Для политики выселения MRU, давайте держать страницу MRU впереди. С данным списком запросов, следующим будет состояние буферов:
2 -> 2
4 -> 2 4
4 -> 2 4
2 -> 4 2
5 -> 4 2 5
2 -> 4 5 2
1 -> 4 5 1
1 -> 4 5 1
3 -> 4 5 3
1 -> 4 5 1
Для политики вытеснения CLOCK список страниц будет ( * представляет местоположение буфера, которое будет заполнено при возникновении ошибки страницы):
2 -> 2 *
4 -> 2 4 *
4 -> 2 4 *
2 -> 2 4 *
5 -> 2* 4 5
2 -> 2* 4 5
1 -> 1 4* 5
1 -> 1 4* 5
3 -> 1 3 5*
1 -> 1 3 5*
Следуя политике LRU, давайте оставим страницу LRU сзади. Состояние буферов будет:
2 -> 2
4 -> 2 4
4 -> 2 4
2 -> 4 2
5 -> 4 2 5
2 -> 4 5 2
1 -> 5 2 1
1 -> 5 2 1
3 -> 2 1 3
1 -> 2 3 1