Требования к функциональности 543
Распределитель страничного уровня изначально запрашивает часть пространства у КМА, который должен эффективно использовать этот пул (pool) памяти. Некоторые реализации не позволяют изменять общее количество памяти, зарезервированное КМА. Другие разрешают распределителю памяти ядра забирать дополнительные объемы памяти у страничной подсистемы. В некоторых системах допускается даже двунаправленный обмен, разрешающий КМА передавать обратно освободившуюся память, ранее запрошенную у страничной подсистемы.
Если распределитель КМА сталкивается с отсутствием свободной памяти, то он блокирует вызывающий процесс до тех пор, пока некоторый объем памяти не освободится. Вызывающий процесс может передавать КМА флаг, указывающий на необходимость возврата с ошибкой (обычно NULL) вместо блокировки. Такая операция чаще всего применяется обработчиками прерываний, которые могут предпринять некоторые корректирующие действия при неудачном выполнении запроса. Например, если сетевое прерывание не может получить память для хранения входящего пакета, оно вправе просто пропустить такой пакет, надеясь на то, что отправитель повторно перешлет его позже.
Распределитель памяти ядра должен отслеживать, какие части пула в данный момент заняты или свободны. Освободившаяся часть памяти должна быть доступна для других запросов. В идеале обработка запроса на выделение памяти может не завершиться успешно только в том случае, если память действительно вся занята, то есть только когда общее количество свободной памяти, доступной распределителю, меньше, чем объем, указанный в запросе. В реальности сбой выделения происходит чаще в результате фрагментации памяти: даже если ее общего количества достаточно для удовлетворения запроса, доступная память чаще всего представляет собой непоследовательные фрагменты.
Как известно на любом празднике кроме разнообразия блюд всегда присутствует и алкоголь. Если вы хотите сэкономить, но при этом быть уверены в качестве напитка алкоголь из Дьюти фри в Москве -это то, что вам нужно. При этом не нужно никуда ехать, курьер привезет заказ в удобное для вас время.