Шрифт:
Рис. 11.1. Взаимоотношения между кэшами, слябами и объектами
Каждый кэш представляется структурой
Дескриптор сляба выделяется или за пределами сляба, в кэше общего назначения, или в начале самого сляба. Дескриптор хранится внутри сляба, либо если общий размер сляба достаточно мал, либо если внутри самого сляба остается достаточно места, чтобы разместить дескриптор.
Слябовый распределитель создает новые слябы, вызывая интерфейс ядра нижнего уровня для выделения памяти
Первый параметр этой функции указывает на определенный кэш, для которого нужны новые страницы памяти. Второй параметр содержит флаги, которые предаются в функцию
Для образовательных целей можно убрать код, рассчитанный на NUMA-системы, и получить более простой вариант функции
Память освобождается с помощью функции