Старая хеш-таблица страниц

Старая хеш-таблица страниц

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

Использование глобальной хеш-таблицы приводило к четырем основным проблемам.

• Хеш-таблица защищалась одной глобальной блокировкой. Количество конфликтов при захвате этой блокировки было достаточно большим даже для не очень больших машин. В результате страдала производительность.

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

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

• Хеш-таблица требовала больше памяти, чем другие возможные решения.

Применение в ядрах серии 2.6 страничного кэша на основании базисных деревьев позволило решить эти проблемы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

3.1.3 Таблица имен

Из книги C++ автора Хилл Мюррей

3.1.3 Таблица имен К таблице имен доступ осуществляется с помощью одной функцииname* look(char* p, int ins =0);Ее второй параметр указывает, нужно ли сначала поместить строку символов в таблицу. Инициализатор =0 задает параметр, который надлежит использовать по умолчанию, когда look()


3.2. Таблица Mangle

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

3.2. Таблица Mangle Как уже упоминалось выше, эта таблица предназначена, главным образом для внесения изменений в заголовки пакетов (mangle – искажать, изменять. прим. перев.). Т.е. в этой таблице вы можете устанавливать биты TOS (Type Of Service) и т.д.ОСТОРОЖНО: Еще раз напоминаю вам, что в


3.3. Таблица Nat

Из книги Основы AS/400 автора Солтис Фрэнк

3.3. Таблица Nat Эта таблица используется для выполнения преобразований сетевых адресов NAT (Network Address Translation). Как уже упоминалось ранее, только первый пакет из потока проходит через цепочки этой таблицы, трансляция адресов или маскировка применяются ко всем последующим


Старая и новая структуры задания

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Старая и новая структуры задания С появлением модели процессов ILE, описанной ранее, изменилась и структура задания в AS/400. Как именно — можно понять, сравнив ресурсы приложений, доступные в старой и новой структурах заданий, а также особенности их использования. Как


Таблица сообщений

Из книги Создание шаблонов Joomla автора Автор неизвестен

Таблица сообщений В библиотеке классов MFC для обработки сообщений используется специальный механизм, который получил название Message Map – таблица сообщений .Таблица сообщений состоит из набора специальных макрокоманд, ограниченных макрокомандами BEGIN_MESSAGE_MAP и END_MESSAGE_MAP.


Таблица

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Таблица Чтобы создать таблицу можно воспользоваться главным меню Dremweaver, выбрав в нем Вставить | Таблица (Insert | Table). Опции Dreamweaver позволяют создавать таблицы любой сложности и структуры. Для примера мы продемонстрируем создание простой таблицы. Выберите цвет для таблицы по


Последовательности страниц и нумерация страниц

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Последовательности страниц и нумерация страниц Пока я использовал один и тот же шаблон страницы для всех страниц в рассмотренных нами документах XSL-FO. Если содержимое документа занимает более одной страницы, процессор XSL-FO использует тот же шаблон страницы для всех


«Старая» модель обработки сигнала

Из книги Знакомьтесь, информационные технологии автора Воловник Аркадий Авральевич

«Старая» модель обработки сигнала В ранних версиях UNIX была принята единственная модель обработки сигналов, основанная на функции signal(), которая подразумевает семантику так называемых «ненадежных сигналов», принятую в этих ОС. Позже эта модель была подвержена


Единая экономика – «старая» и «новая»

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Единая экономика – «старая» и «новая» Глобализация. Информационные технологии. Internet. Качественное изменение производства. Новые формы производственных отношений. Новый образ


Таблица блокировок

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Таблица блокировок Менеджер блокировок управляет таблицей блокировок для координации совместного использования ресурсов в клиентских потоках. Информация, предоставляемая здесь, может быть полезной при попытках исправить ситуации взаимных блокировок, например;* все в


Пример 25-6. Старая, добрая: "Пузырьковая" сортировка

Из книги FictionBook Editor V 2.66 Руководство автора Izekbis

Пример 25-6. Старая, добрая: "Пузырьковая" сортировка #!/bin/bash# bubble.sh: "Пузырьковая" сортировка.# На каждом проходе по сортируемому массиву,#+ сравниваются два смежных элемента, и, если необходимо, они меняются местами.# В конце первого прохода, самый "тяжелый" элемент


Файловая таблица

Из книги автора

Файловая таблица Поля файлового дескриптора u_ofile и u_pofile содержат начальную информацию, необходимую для доступа процесса к данным файла. Дополнительная информация находится в системной файловой таблице и таблице индексных дескрипторов. Для обеспечения доступа процесса