СИСТЕМЫ И СПОСОБЫ ДЛЯ РАЗДЕЛЕНИЯ ОДНОНАПРАВЛЕННЫХ СПИСКОВ ДЛЯ ВЫДЕЛЕНИЯ ЭЛЕМЕНТОВ ПАМЯТИ

1. Способ управления выделением множества элементов (206) памяти, хранимых в одной или более безблокировочных списковых структурах (204), причем эти безблокировочные списковые структуры доступны в среде операционной системы многоядерного процессора, при этом способ содержит этапы, на которых:
разделяют упомянутые одну или более безблокировочные списковые структуры (204);
изначально разделяют упомянутое множество элементов (206) памяти среди упомянутых одной или более безблокировочных списковых структур;
при запросе выделения элемента памяти ядерному процессору, ищут в упомянутых одной или более безблокировочных списковых структурах доступный элемент памяти;
по нахождении доступного элемента памяти выделяют этот доступный элемент (214) памяти ядерному процессору; и
динамически балансируют элементы памяти среди одной или более упомянутых безблокировочных списковых структур в соответствии с подходящей метрикой балансировки.
2. Способ по п. 1, в котором этап разделения упомянутых одной или более безблокировочных списковых структур дополнительно состоит в том, что разделяют упомянутые одну или более безблокировочные списковые структуры на первую структуру данных.
3. Способ по п. 2, в котором первая структура данных представляет собой одну из группы, содержащей хэш структуру
(202) и структуру данных динамического переключения списков (250).
4. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с архитектурой многоядерного процессора.
5. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с индексом процессора.
6. Способ по п. 3, в котором в упомянутой хэш структуре используются ключи в соответствии с номером узла NUMA.
7. Способ по п. 1, в котором упомянутые структуры данных динамической перестановки списков дополнительно содержат безблокировочную списковую структуру помещения и безблокировочную списковую структуру извлечения, при этом упомянутый этап разделения одной или более безблокировочных списковых структур дополнительно состоит в том, что переставляют указатели между упомянутой безблокировочной списковой структурой помещения и упомянутой безблокировочной списковой структурой извлечения в соответствии с метрикой для балансировки ресурсов памяти.
8. Система для управления выделением множества элементов (206) памяти, хранимых в одной или более безблокировочных списковых структурах (204), причем эти безблокировочные списковые структуры доступны в среде операционной системы многоядерного процессора, при этом упомянутая система содержит:
множество ядерных процессоров (106), причем эти ядерные процессоры разделены на множество сокетов (104) процессора;
набор совместно используемой памяти (108), при этом
упомянутая совместно используемая память доступна с по меньшей мере одним из упомянутых сокетов процессора;
каналы (110) связи между по меньшей мере двумя сокетами процессора;
набор из одной или более безблокировочных списковых структур (204), где каждая безблокировочная списковая структура приспособлена хранить по меньшей мере один элемент памяти, причем данный набор из одной или более безблокировочных списковых структур приспособлен быть разделенным так, чтобы обеспечить выделение элементов памяти ядерным процессорам при запросе на выделения элементов памяти;
модуль (202) выделения, при этом данный модуль выполнен с возможностью принимать запросы на выделения элементов памяти от упомянутого множества ядерных процессоров;
при этом модуль выделения выполнен с возможностью динамически регулировать элементы памяти между упомянутым набором из одной или более безблокировочных списковых структур в соответствии с подходящей метрикой балансировки.
9. Система по п. 8, в которой модуль выделения выполнен с возможностью исполнения на одном из упомянутых ядерных процессоров (106).
10. Система по п. 9, в которой упомянутая подходящая метрика балансировки является одной из группы, содержащей поддержку, по существу, числового равенства элементов памяти среди безблокировочных списковых структур и избежание избыточного выделения ресурсов памяти.