Как использовать таблицу страниц для преобразования виртуального адреса в физический адрес - PullRequest
0 голосов
/ 27 марта 2011

рассмотрим следующую таблицу страниц для исполняемой программы

Виртуальная страница #: 0 1 2 3 4 5
Кадр страницы:: 8 3 9 x 0 1

Программа создает32-битные виртуальные адреса и состоят из страниц по 512 слов каждая.Программа генерирует следующий виртуальный адрес 1749. Какому физическому адресу он соответствует

1 Ответ

2 голосов
/ 27 марта 2011

Сначала вы выясняете, к какой виртуальной странице относится этот адрес, смещение от этой виртуальной страницы, а затем используете свою таблицу страниц для поиска эквивалентного физического адреса.

Предполагая, что виртуальное адресное пространство линейно сбез дырок, преобразование адреса в страницу может быть сделано путем деления на размер страницы (512 в вашем случае).Смещение на странице - это разница между виртуальным адресом и начальным адресом виртуальной страницы.

В приведенном выше примере виртуальной страницей будет страница 3 со смещением 213.

Затем вы ищите физическую страницу, которая соответствует виртуальной странице 3 в вашей таблице страниц.Здесь это x.Таким образом, физический адрес будет (физический адрес начала страницы x + смещение в страницу), т. Е. (Начало страницы X) + 213.

начало страницы X, опять-таки в предположении линейного отображениябез отверстий будет (размер страниц * x).

Таким образом, физический адрес будет:

(page_size * x) + offset

Здесь:

(512 * x) + 213
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...