Читайте также:
|
|
Это другая дисциплина отображения виртуальных адресов, которая исключает фрагментацию путем разбиения оперативной памяти на единицы одинакового размера и распределения этих единиц. Такой единицей является страница фиксированной длины.
Виртуальный адрес операнда памяти в команде при страничной организации имеет вид (p:i), где p - номер страницы, а i - смещение относительно начала страницы (индекс). Обычно размер страницы кратен степени 2.
Виртуальным адресом является одно число, старшие биты которого определяют р, а младшие i. Например: адрес 05FD85h имеет p=05h, а i=FD85h, страница имеет размер FFFFh, что соответствует 216.
Физические страницы имеют тот же размер, что и в виртуальном адресе. Для нашего примера это 216. Номер физической страницы f определяется во время исполнения программы отображением p в f. Индекс i остается неизменным.
Отличия страничной организации от сегментной приведены в таблице 5.3.
Число виртуальных страниц может превышать число физических страниц. Непоместившиеся страницы ОС размещает во внешней памяти, служащей расширением ОП. Во внешней памяти находятся и ненужные в данный момент страницы.
Таблица 5.3
Сегментная организация | Страничная организация |
Блоки переменной длины | Страницы фиксированной длины |
Разбиение на сегменты осуществляет пользователь в соответствии с логикой программы (сегмент данных, сегмент команд 1, сегмент команд 2 и т.д.) | Разбиение на страницы не зависит от логики. Транслятор формирует виртуальные адреса как будто память непрерывна |
Физический адрес операнда формируется сложением смещения с началом сегмента | Индекс в виртуальном и физическом адресе один и тот же |
Схема реализации страничной организации памяти представлена на рис. 5.6.
Элементы таблицы страниц состоят из двух полей:
- признак наличия страницы в ОП;
- номер физической страницы, если признак указывает на наличие страницы в ОП, в противном случае - местонахождение страницы во внешней памяти.
При каждом обращении к памяти ЦП прибавляет p к содержимому регистра таблицы страниц, получая адрес элемента таблицы для страницы p. Затем проверяется признак в этом элементе. Если страницы нет в памяти, то аппаратура генерирует прерывание, по которому вызывается программа подкачки страниц. Эта программа запускает считывание необходимой страницы в память и переключает ЦП с данной работы на другую, находящуюся в состоянии "готово".
Если страница уже в ОП, то адрес физической страницы f из элемента таблицы страниц приписывается (выполняется конкатенация) к индексу i, формируя физический адрес.
Обращение к странице, которая не была выделена работе, вызывает прерывание, приводящее через программу ОС планировщика страниц к созданию новой страницы.
Дата добавления: 2015-10-02; просмотров: 43 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Сегментная организация памяти | | | Сегментно-страничная организация |