Опубликовано : adminas в (Новости)
Зональный распределитель в системе Mach-OSF/1563
7 Ноябрь 2015
Сбор мусора производится в фоновом режиме, поэтому не замедляет выполнение отдельных операций. Распределитель поддерживает массив, называемый картой страниц зоны, где каждый элемент относится к одной из страниц зоны. Вхождение карты содержит два счетчика:
♦ in_free_list — количество объектов из списка свободных объектов на странице;
♦ alloc_count — общее количество объектов страницы.
Зональный распределитель
Значение alloc_count устанавливается при запросе страницы зоной от страничного распределителя памяти. Так как размер страницы может не быть равен размеру одного или нескольких объектов, существует возможность занятия одним объектом сразу двух страниц. В этом случае объект учитывается в счетчиках aUoc_count обеих страниц. Счетчик in_free_list не изменяется при каждой операции выделения или освобождения. Вычисление его значения происходит при каждом вызове операции сбора мусора. Такой подход позволяет свести до минимума запаздывание обработки отдельных запросов.
Процедура сбора мусора zone_gc() запускается задачей swapper при каждом ее выполнении. Процедура просматривает все списки зон и для каждой из них дважды обходит список свободных объектов. При первом просмотре происходит выявление всех свободных элементов и инкрементирование счетчика in_free_count той страницы, к которой относится такой объект. Если к моменту завершения сканирования значения in_free_list и alloc_count окажутся равными, то это означает, что все объекты страницы свободны и страница может быть использована вновь. На втором этапе просмотра zone_gc() удаляет все такие объекты из списка. После этого происходит вызов kmemfree(), выполняющий передачу свободных страниц распределителю страничного уровня. Сейчас мобильный телефон — это целое многофункциональное устройство. На нем можно слушать музыку, смотреть фильмы, устанавливать различные приложения. Для облегчения работы с телефоном используются виджеты http://android-smartfon.ru. С их помощью в одно касание можно запустить дополнительные сервисы (например погода, будильник, контроль за батареей и т.д.) Так им образом работа с телефоном станет удобнее и полезнее.
Процедура требует, чтобы клиенты освобождали объекты целиком, а также знали, какой зоне такие объекты принадлежат. Методика не предоставляет возможности освобождения лишь части выделенного ранее объекта.