Алгоритмы замены страницы

у меня есть вопрос, и я не уверен в нем. Я был бы признателен, если бы кто-то мог помочь. Вопрос такой:

Из программы размером 460 байт берется следующая последовательность запросов программы: 10, 11, 104, 170, 73, 309, 185, 245, 246, 434, 458, 364 ((т.е. в памяти находится одна программа, которая имеет длину 460 байт и ссылается на байты в своем тексте, а 10 означает, что имеется ссылка на 10-й байт программы, где 10 — относительный адрес). Основная память может содержать в общей сложности 200 байт для этой программы. Укажите, какой результат запроса в ошибках страницы, и каково количество ошибок страницы с использованием алгоритмов FIFO (первым пришел — первым обслужен) и оптимального алгоритма замены страницы для страницы размером 50 байт.

Вот что я подумал. Во-первых, поскольку в памяти ничего нет, первый запрос (10) вызывает ошибку страницы. Затем, когда байты с 10 по 60 загружаются в память, поскольку размер страницы составляет 50 байт. Когда приходит второй запрос (11), это не ошибка страницы, так как он уже находится в памяти. Затем 104 вызывает ошибку страницы, и байты между 104-154 загружаются в память. 170 тоже вызывает page fault и 170-220 загружаются в память и т.д. и т.п. это происходит так. Верна ли моя логика?

Заранее спасибо.


person Community    schedule 01.01.2013    source источник
comment
Вероятно, это зависит от того, нужно ли выравнивать страницы по 50-байтовым границам...   -  person Oliver Charlesworth    schedule 01.01.2013
comment
Кроме того, существует предварительная выборка/упреждающая выборка инструкций, поэтому предварительная выборка может происходить параллельно с фактическим выполнением. (вот почему (условные) переходы так дорого обходятся.)   -  person wildplasser    schedule 01.01.2013


Ответы (1)


Нет. Третий запрос вызовет загрузку байтов 100-149 в память, потому что двоичный файл виртуально разделен на 50-байтовые фрагменты, а 104-й байт попадет в 3-й фрагмент.

Вы также должны учитывать, что физическая память может содержать только 4 страницы. В определенный момент вам может понадобиться отбросить страницу и повторно вызвать ошибку страницы при ее загрузке.

person Sedat Kapanoglu    schedule 01.01.2013