Вычисление физического адреса по логическому (виртуальному)

Виртуальный адрес – порядковый номер виртуальной страницы + смещение в ней.

Физический адрес – порядковый номер физической страницы + смещение в ней.

Т.к. размер страниц выбирается кратным степени 2 (4Кб - 212) то смещение – это последние разряды в виртуальном адресе (в данном случае – последние 12 бит.)

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

Механизм преобразования виртуальных адресов в физические:

1. Загружается адрес таблица страниц процесса (AT – адрес таблицы страниц).

2. От виртуального адреса отбрасываются младшие разряды (9 для страницы в 512байт)

Оставшиеся старшие разряды – номер виртуальной страницы (р)

3. По данным адресам таблицы страниц и виртуальной страницы на находится нужная запись: АТ+р*(длина записи).

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: