Инвертированные таблицы страниц

Альтернатива постоянно растущим уровням иерархии страничной адресации называется инвертированными таблицами страниц. Впервые они использовались такими процессорами, как PowerPC, UltraSPARC и Itanium (которые иногда называли Itanic, поскольку успех, на который в связи с их выходом надеялась компания Intel, так и не был достигнут).
В данной конструкции имеется одна запись для каждого страничного блока в реальной памяти, а не одна запись на каждую страницу в виртуальном адресном пространстве. Например, при использовании 64-разрядных виртуальных адресов, страниц размером 4 Кбайт и оперативной памяти размером 4 Гбайт инвертированные таблицы требовали только 1 048 576 записей. В каждой записи отслеживается, что именно находится в страничном блоке (процесс, виртуальная страница).

Хотя инвертированные таблицы страниц экономят значительное количество пространства, по крайней мере в том случае, когда виртуальное адресное пространство намного объемнее физической памяти, у них есть один серьезный недостаток: преобразование виртуальных адресов в физические становится намного сложнее. Когда процесс n обращается к виртуальной странице р, аппаратура уже не может найти физическую страницу, используя р в качестве индекса внутри таблицы страниц. Вместо этого она должна провести поиск записи (n, р) по всей инвертированной таблице страниц. Более того, этот поиск должен быть проведен при каждом обращении к памяти, а не только при ошибках отсутствия страницы. Вряд ли можно признать просмотр таблицы размером 256 K записей при каждом обращении к памяти способом сделать ваш компьютер самым быстродействующим.

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

Рис. 3.13. Сопоставление традиционной таблицы страниц с инвертированной


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

Инвертированные таблицы страниц нашли широкое применение на 64-разрядных машинах, поскольку даже при очень больших размерах страниц количество записей в обычных таблицах страниц будет для них просто гигантским. К примеру, при размере страниц 4 Мбайт и 64-разрядных виртуальных адресах понадобится 242 записей в таблице страниц. Другие подходы к работе с большими объемами виртуальной памяти можно найти в работе Таллури (Talluri et al., 1995).

3.4.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Инвертированные таблицы страниц:

  1. ПОВЕДЕНИЕ ИНВЕРТИРОВАННОЕ
  2. Первая страница
  3. Таблица 2 Таблица баллов лучей мандалы
  4. ТАБЛИЦА ИЗОХРОМАТИЧЕСКАЯ
  5. Таблица. Иерархия функций
  6. Таблица типов
  7. Таблица 5. Диапазоны излучений патогенных микрооганизмов
  8. таблица болезней и их причин
  9. Периодическая таблица переживаний
  10. Таблица 3.1. Виды нарушений в когнитивном процессе
  11. Таблица №1 На что мы тратим свое время?
  12. ВВЕДЕНИЕ: ТАБЛИЦА РЕЗУЛЬТАТОВ НАБЛЮДЕНИЯ ЗА ЛЮДЬМИ
  13. ВВЕДЕНИЕ: ТАБЛИЦА РЕЗУЛЬТАТОВ НАБЛЮДЕНИЯ ЗА ЛЮДЬМИ
  14. 4. Таблица кратности сроков лишения свободы
  15. Таблица 6. Русский алфавит в девятиарканной системе
  16. Таблица 8. Энергетические свойства продуктов питания
  17. Таблица 3 Некоторые энергослоги числовой мандалы
  18. Таблица последствий смещения позвонков и дисков