2012-05-04 8 views
0

Я работал по следующей программе и чувствует, что не хватает какой-то информации или а) и б) немного трюк:виртуальная память, LRU и Page Разломы - Домашнее задание

Петля является выполненный как часть программы в системе виртуальной памяти, в которой используются страницы 4 КБ. Предположим, что алгоритм замены LRU используется для выбора страниц, которые необходимо заменить в памяти, когда это необходимо. Инструкция, обозначенная «Пуск», начинается с границы страницы, а тело цикла содержит 4601 пар команд сдвига (sll & srl).

Start: addi $3,$0,32 

Loop: sll $4,$4,1 

srl $4,$4,1 

...   # previous two instructions are 

...   # repeated 4600 times 

addi $3,$3,-1 

bne $3,$0,loop 

а) Сколько страницы ошибок будет происходить во время выполнения цикла, если память содержит восемь 4KB кадров?

b) Сколько ошибок страницы произойдет во время выполнения цикла, если память содержит девять кадров 4 КБ?

Не было бы а) и b) оба должны быть 5-страничными ошибками? Каждый раз, когда мы контактируем 4602 инструкций, инструкции MIPS равны 4B, а размер страницы - 4 КБ. 4KB/4B = 1024 инструкции на страницу, поэтому первый раз через петлю:

инструкция 0 - +1023 кадр 0 страницы неисправности да

инструкцию 1024 - 2047 кадр 1 страницу неисправности да

инструкция 2048 - 3071 рама 2 страницы неисправности да

инструкция 3072 - 4096 рамы 3 страницы неисправности да

инструкция 4096 - 4602 кадра неисправности 4 стр да

Итак, когда мы возвращаемся в цикл на втором этапе, страницы еще не были заменены политикой LRU, поэтому мы можем ссылаться на них снова. Почему это изменится, есть ли у нас 8 или 9 кадров для 32 итераций цикла?

ответ

0

Корпус петли содержит 4601 пары инструкции по смене. Наряду с инструкциями addi и bne имеется инструкций для каждой петли.

+0

Я вижу, я могу видеть, как тогда будут иметь значение 8 или 9 кадров. Формулировка немного запутанна, я воспринял ее как означающую, что предыдущие две инструкции были повторены в общей сложности 4600. Наверное, я должен был внимательно прочитать проблему. Благодаря! – MARK48ADCAP