Ядро использует распределитель для создания различных временных объектов, таких как индексные дескрипторы, структуры ргос и сетевые буферы. Последовательность действий над объектом сводится к нижеперечисленным операциям.
1. Выделение памяти.
2. Создание (инициализация) объекта.
3. Использование объекта.
4. Уничтожение объекта.
5. Освобождение памяти.
Объекты ядра обычно являются достаточно сложными и содержат в себе дополнительные объекты, такие как счетчики ссылок, заголовки связанных списков, взаимные исключения и условные переменные. В момент создания объектов их поля устанавливаются в некое фиксированное, начальное состояние. При уничтожении объектов распределитель снова обращается к этим объектам и, как правило, перед освобождением памяти восстанавливает начальное состояние.
Также вам может показаться, что такая тема как http://krd.mr-right.ru/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт krd.mr-right.ru. Тема барбершоп в Краснодаре там представлена весьма широко. На том сайте можно узнать много интересного на тему барбершоп в Краснодаре. Что означает вообще тема барбершоп в Краснодаре, где найти барбершоп в Краснодаре - про это написано на сайте krd.mr-right.ru. Это очень важная для многих людей тема - барбершоп в Краснодаре. Спасибо сайту krd.mr-right.ru за информацию на тему барбершоп в Краснодаре.
Приведем пример. Объект vnode содержит заголовок связанного списка резидентных страниц. При инициализации vnode список является пустым. Во многих реализациях UNIX [3] ядро производит сброс vnode только после того, как все его страницы были удалены из памяти. Следовательно, перед освобождением vnode (на стадии уничтожения) его связанный список снова становится пустым.
Если ядро заново использует объект для другого объекта vnode, ему не нужно повторно инициализировать заголовок связанного списка, так как это уже было выполнено на стадии уничтожения. Тот же принцип относится и к другим инициализированным полям. Например, ядро размещает объекты с первоначальным значением счетчика ссылок, равным единице, и удаляет их при освобождении последней ссылки, при этом счетчик ссылок снова становится равным единице. Взаимные исключения первично устанавливаются в разблокированное состояние, при освобождении для таких объектов блокировка также должна быть отменена.
Эти примеры показывают преимущества кэширования и повторного использования объектов по сравнению с выделением и инициализацией областей памяти. Кэши объектов эффективно используют доступное пространство, так как методика не прибегает к округлению до следующей степени числа 2. Зональный распределитель (раздел 12.8) также базируется на кэшировании объектов и использует память с высокой эффективностью. Он, однако, не изменяет состояние объектов, что не позволяет избавиться от дополнительных действий по их повторной инициализации.
Опубликовал katy
June 20 2015 07:48:17 ·
0 Комментариев ·
2952 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.