Интернет магазин китайских планшетных компьютеров



Компьютеры - Slab - Slab

15 мая 2011


Оглавление:
1. Slab
2. Реализация
3. Slab
4. Системы, использующие распределение slab



Slab – объём памяти, за счет которого кэш может увеличиваться или уменьшаться. Он представляет собой распределение памяти в кэш, а его размер обычно кратен размеру страницы памяти. Slab должен содержать список свободных буферов, а также список буферов, которые были выделены.

Большие slab’ы

Предназначены для кэшей, хранящих объекты, размер которых не менее 1/8 размера страницы памяти данной машины. Причина, по которой большие slab’ы имеют структуру, отличную от небольших slab’ов, заключается в том, что так они могут лучше умещаться на страницах памяти, таким образом избегая фрагментации. Slab содержит список буферов, которые являются контроллерами для каждого буфера, который может быть выделен.

Малые slab’ы

Содержат объекты, которые не превышают 1/8 размера страницы памяти данной машины. Они должны быть оптимизированы отдельно от логической структуры, избегая использования буферов. Небольшие slab’ы занимают точно одну страницу, и имеют определенную структуру, позволяющую им избежать буферизации. Последняя часть страницы содержит «заголовок slab», представляющий собой информацию, необходимую для хранения slab’а. Начиная с первого адреса страницы, есть столько буферов, сколько может быть выделено без использования заголовка slab в конце страницы.

Вместо обычного использования буферов, используется буфер для хранения списка свободных ссылок. Это позволяет обходиться без использования буферов в небольших slab’ах.



Просмотров: 3588


<<< Malloc
Дескрипторные таблицы >>>