The design of the UNIX Operating System 52 страница



 

Таблица, состоящая из 220 строк, разбивается на 210 таблиц второго уровня по 210 строк. Эти таблицы второго уровня объединены в общую структуру при помощи одной таблицы первого уровня, состоящей из 210 строк. 32-разрядный адрес делится на 10-разрядное поле p1, 10-разрядное поле p2 и 12-разрядное смещение d. Поле p1 указывает на нужную строку в таблице первого уровня, поле p2 – второго, а поле d локализует нужный байт внутри указанного страничного кадра (см. рис. 9.1).

 

 

Рис. 9.1. Пример двухуровневой таблицы страниц

 

При помощи всего лишь одной таблицы второго уровня можно охватить 4 Мбайт (4 Кбайт x 1024) опера-тивной памяти. Таким образом, для размещения процесса с большим объемом занимаемой памяти доста-точно иметь в оперативной памяти одну таблицу первого уровня и несколько таблиц второго уровня.

 

Очевидно, что суммарное количество строк в этих таблицах много меньше 220. Такой подход естествен-ным образом обобщается на три и более уровней таблицы.

 

Наличие нескольких уровней, естественно, снижает производительность менеджера памяти. Несмотря на то что размеры таблиц на каждом уровне подобраны так, чтобы таблица помещалась целиком внутри од-ной страницы, обращение к каждому уровню – это отдельное обращение к памяти. Таким образом, трансляция адреса может потребовать нескольких обращений к памяти.

 

Количество уровней в таблице страниц зависит от конкретных особенностей архитектуры. Можно при-вести примеры реализации одноуровневого (DEC PDP-11), двухуровневого (Intel, DEC VAX), трехуров-невого (Sun SPARC, DEC Alpha) пейджинга, а также пейджинга с заданным количеством уровней (Motorola). Функционирование RISC-процессора MIPS R2000 осуществляется вообще без таблицы стра-ниц. Здесь поиск нужной страницы, если эта страница отсутствует в ассоциативной памяти, должна взять на себя ОС (так называемый zero level paging).


Основы операционных систем 86

Ассоциативная память

 

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

 

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

 

Естественное решение проблемы ускорения – снабдить компьютер аппаратным устройством для отобра-жения виртуальных страниц в физические без обращения к таблице страниц, то есть иметь небольшую, быструю кэш- память, хранящую необходимую на данный момент часть таблицы страниц. Это устройст-во называется ассоциативной памятью, иногда также употребляют термин буфер поиска трансляции

 

(translation lookaside buffer – TLB).

 

Одна запись таблицы в ассоциативной памяти (один вход) содержит информацию об одной виртуальной странице: ее атрибуты и кадр, в котором она находится. Эти поля в точности соответствуют полям в таб-лице страниц.

 

Так как ассоциативная память содержит только некоторые из записей таблицы страниц, каждая запись в TLB должна включать поле с номером виртуальной страницы. Память называется ассоциативной, потому что в ней происходит одновременное сравнение номера отображаемой виртуальной страницы с соответ-ствующим полем во всех строках этой небольшой таблицы. Поэтому данный вид памяти достаточно до-рого стоит. В строке, поле виртуальной страницы которой совпало с искомым значением, находится но-мер страничного кадра. Обычное число записей в TLB от 8 до 4096. Рост количества записей в ассоциа-тивной памяти должен осуществляться с учетом таких факторов, как размер кэша основной памяти и ко-личества обращений к памяти при выполнении одной команды.


Дата добавления: 2021-01-21; просмотров: 91; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!