Как Linux справлялся с фрагментацией памяти при использовании реализации SLOB? - PullRequest
0 голосов
/ 01 августа 2020

В Википедии мы читаем:

Распределитель SLOB (простой список блоков) является одним из трех доступных распределителей памяти в ядре Linux. (Два других - SLAB и SLUB.) Распределитель SLOB разработан так, что требует небольшого количества памяти для реализации и обслуживания, для использования в небольших системах, таких как встроенные системы. К сожалению, основным ограничением распределителя SLOB является то, что он сильно страдает от внутренней фрагментации. выделенные данные в виде списка.

Когда мы free указатель, блок, соответствующий этому указателю, я также думаю, не удаляется и остается на месте, пока ядро ​​не найдет новый выделенные данные, которые могут поместиться внутри освобожденного блока.

Но если данные помещаются внутри блока, они могут просто занять, скажем, 50% от ранее выделенного размера блока, и это оставляет нам 50 % неиспользуемого пространства, на которое невозможно сослаться.

Как разработчики справились с этой проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...