В портале Duetgroup Вы будете проинформированы о технологии и программирования на базе Linux.
А также о комплектации программ, о процессе разработки ПО, о скорости обработки данных и решении практических задач.

Размер запрашиваемого блока

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