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

Недавно, когда я изучал основные понятия операционных систем, в подразделении «Управление виртуальной памятью» (7-е издание Альберта Зильбершаца) я натолкнулся на эту концепцию для замены страницы -

Например, если мы проследимВ конкретном процессе мы можем записать следующую последовательность адресов: 0100,0432,0101,0612,0102,0103,0104,0101,0611,0102,0103, 0104,0101,0610,0102,0103,0104,0101,0609,0102,0105 При скорости 100 байт на страницу эта последовательность сокращается до следующей ссылочной строки: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6,

Я не мог понятькак записанная адресная последовательность может быть преобразована в справочную строку.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Я где-то читал, что 2-ая цифра из MSB - это строка ссылки на страницу, например: если это 0100, то строка ссылки равна 1, аналогично 0323 дает 3 и т. Д., И если вы найдете комбинацию 01000102 0113 тогда все три вместе дают одну ссылочную строку, т. Е. 1. Но у меня нет никаких надлежащих доказательств в поддержку этой логики или именно того, что авторы хотели сделать вывод.

0 голосов
/ 03 февраля 2019

Ух ты, еще один смущенный читатель этой книги.Начнем с того, что размер страницы всегда будет равен степени 2. Так что давайте сделаем ваш вопрос немного реалистичным и скажем, что это все шестнадцатеричные цифры.

То, что вы делаете здесь, - это преобразование байтовых обращений вссылки на страницы.Нулевая страница начинается в 0000 и заканчивается в 00FF.1-я страница начинается в 0100 и заканчивается в 01FF.Таким образом, ссылка на 0100 - это первый байт страницы 1.

Страница, которая начинается с 0400, расширяется до 04FF.Таким образом, адрес 0432 находится на 4-й странице.

Я не знаю, к чему стремятся авторы.

...