<<
>>

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

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

Однако поскольку 64-разрядные компьютеры встречаются все чаще, ситуация радикально меняется. Если адресное пространство увеличивается до 264 байт с размером страницы 4 Кбайт, нам требуется таблица страниц с числом записей 252. Если каждая запись равна 8 байт, таблица займет больше 30 Тбайт. Выделение 30 Тбайт только для таблицы страниц не реально уже сейчас и не будет реальным когда-либо в будущем. Следовательно, для 64-разрядного страничного виртуального пространства необходимо другое решение.

Одним из таких решений является инвертированная таблица страниц.

В этой модели таблица содержит по одной записи на страничный блок в реальной памяти, а не на страницу в виртуальном адресном пространстве. Например, при 64-раз- рядных виртуальных адресах, размере страниц 4 Кбайт и оперативной памяти

объемом 256 Мбайт инвертированная таблица страниц потребует всего лишь 65 536 записей. Каждая запись позволяет отслеживать, что (процесс, виртуальная страница) расположено в данном страничном блоке.

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

Более того, этот поиск должен выполняться при каждом обращении к памяти, а не только при ошибке отсутствия страницы. Операция поиска в таблице размером 64 К записей при каждом обращении к памяти вовсе не повысит быстродействие вашей машины.

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

Инвертированные таблицы страниц в настоящее время используются на некоторых рабочих станциях компаний IBM, Sun и Hewlett-Packard и будут встречаться все чаще, так как 64-разрядные машины получают все большее распространение.

О других методах управления виртуальной памятью большого размера можно узнать в [62, 113, 114]. Некоторые проблемы реализации виртуальной памяти, связанные с аппаратным обеспечением, рассмотрены в [65].

4.4.

<< | >>
Источник: Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание. 2007

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

  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. Таблица последствий смещения позвонков и дисков
  19. Таблица контент-критериев для анализа показаний