Потоки в пространстве ядра

Потоки в пространстве ядра

Часто в ядре полезно выполнить некоторые операции в фоновом режиме. В ядре такая возможность реализована с помощью потоков пространства ядра (kernel thread) — обычных процессов, которые выполняются исключительно в пространстве ядра. Наиболее существенным отличием между потоками пространства ядра и обычными процессами является то, что потоки в пространстве ядра не имеют адресного пространства (значение указателя mm для них равно NULL). Эти потоки работают только в пространстве ядра, и их контекст не переключается в пространство пользователя. Тем не менее потоки в пространстве ядра планируются и вытесняются так же, как и обычные процессы.

В ядре Linux потоки пространства ядра выполняют определенные задания, наиболее часто используемые, — это pdfush и ksoftirq. Эти потоки создаются при загрузке системы другими потоками пространства ядра. В действительности поток в пространстве ядра может быть создан только другим потоком, работающим в пространстве ядра. Интерфейс для запуска нового потока в пространстве ядра из уже существующего потока следующий:

int kernel_thread(int (*fn)(void*), void* arg, unsigned long flags);

Новая задача создается с помощью обычного системного вызова clone() с соответствующими значениями флагов, указанными в параметре flags. При возврате из системного вызова родительский поток режима ядра завершается и возвращает указатель на структуру task_struct порожденного процесса. Порожденный процесс выполняет функцию, адрес которой указан в параметре fn, в качестве аргумента этой функции передается параметр arg. Для указания обычных флагов потоков пространства ядра существует флаг CLONE_KERNEL, который объединяет в себе флаги CLONE_FS, CLONE_FILES и CLONE_SIGHAND, так как большинство потоков пространства ядра должны указывать эти флаги в параметре flags.

Чаще всего поток пространства ядра продолжает выполнять свою функцию вечно (или, по крайней мере, до перегрузки системы, но когда она произойдет в случае ОС Linux- неизвестно). Функция потока обычно содержит замкнутый цикл, в котором поток пространства ядра по необходимости возобновляет выполнение, исполняет свои обязанности и снова переходит в приостановленное состояние.

В следующих главах более детально будут рассмотрены конкретные примеры потоков пространства ядра.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

ПИСЬМОНОСЕЦ: Прикол в пространстве Лобачевского!

Из книги Журнал «Компьютерра» N 31 от 29 августа 2006 года автора Журнал «Компьютерра»

ПИСЬМОНОСЕЦ: Прикол в пространстве Лобачевского! Автор: Леонид Левкович-МаслюкЖиву в глуши, Интернет через дайлап, качаю да читаю «Компьютерру»! Красота! Да, о чем это я? Ах, да! Жил был один англичанин и состряпал сайт на миллион!!! Долларов почему-то, а не фунтов. Ну да ладно,


ГОСТИНАЯ: Взрыв в замкнутом пространстве

Из книги Журнал «Компьютерра» № 23 от 19 июня 2007 года автора Журнал «Компьютерра»

ГОСТИНАЯ: Взрыв в замкнутом пространстве Автор: Губайловский ВладимирВ марте 2007 года компания IDC опубликовала глобальный прогноз роста цифровой информации до 2010 года [The Expanding Digital Universe: A Forecast of Worldwide Information Growth Through 2010]. Согласно отчету, объем цифровой информации, созданной


4.3. Состояния в пространстве пользователя

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

4.3. Состояния в пространстве пользователя Как вы уже наверняка заметили, в пространстве ядра, в зависимости от типа протокола, пакеты могут иметь несколько различных состояний. Однако, вне ядра пакеты могут иметь только 4 состояния. В основном состояние пакета


Окна просмотра в пространстве листа

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Окна просмотра в пространстве листа Пространство листа используется для размещения на одном чертеже нескольких видов построенной модели. Работа в пространстве листа аналогична работе конструктора за кульманом, так как любая вкладка листа имитирует бумажный лист.


Видовые экраны в пространстве листа

Из книги ArchiCAD 11 автора Днепров Александр Г

Видовые экраны в пространстве листа Чтобы просмотреть чертеж в пространстве листа, необходимо создать видовые экраны. По умолчанию на существующих листах уже присутствует по одному видовому экрану. Обычно одного видового экрана не хватает для точного представления


Объектная привязка в трехмерном пространстве

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Объектная привязка в трехмерном пространстве Как в двухмерных, так и в трехмерных чертежах привязка к существующим объектам значительно упрощает построение модели. Использование объектной привязки позволяет однозначно указать нужную точку, причем сделать это с


Глава 8 Редактирование объектов в пространстве

Из книги AutoCAD 2009. Учебный курс автора Соколова Татьяна Юрьевна

Глава 8 Редактирование объектов в пространстве • Инструменты выбора объектов• Редактирование трехмерных объектов• Дополнительные инструменты редактированияВ предыдущих главах мы уже рассматривали возможности ArchiCAD по редактированию объектов. В гл. 3 были подробно


Редактирование в трехмерном пространстве

Из книги AutoCAD 2008 для студента: популярный самоучитель автора Соколова Татьяна Юрьевна

Редактирование в трехмерном пространстве Одни операции легче и проще делать в окне плана этажа, другие – в окне просмотра и редактирования трехмерного отображения объектов. Работа в трехмерном пространстве дает максимальное представление о форме и взаимном


Видовые экраны в пространстве листа

Из книги Антимозг [Цифровые технологии и мозг] автора Шпитцер Манфред

Видовые экраны в пространстве листа Чтобы просмотреть чертеж в пространстве листа, необходимо создать видовые экраны. По умолчанию на существующих листах уже присутствует по одному видовому экрану. Обычно одного видового экрана не хватает для точного представления


Объектная привязка в трехмерном пространстве

Из книги Разработка ядра Linux автора Лав Роберт

Объектная привязка в трехмерном пространстве Как в двухмерных, так и в трехмерных чертежах привязка к существующим объектам намного упрощает построение модели. Использование объектной привязки позволяет однозначно указать нужную точку, причем сделать это с абсолютной


Выбор пользовательской системы координат в пространстве

Из книги Человеческий фактор. Успешные проекты и команды автора Листер Тимоти

Выбор пользовательской системы координат в пространстве Для изменения положения ПСК применяются следующие способы:• указание новой плоскости XY или новой оси Z ;• ввод нового начала координат;• совмещение ПСК с имеющимся объектом;• совмещение ПСК с гранью тела;•


Выбор пользовательской системы координат в пространстве

Из книги автора

Выбор пользовательской системы координат в пространстве Для изменения положения ПСК применяются следующие способы:• указание новой плоскости XY или новой оси Z;• ввод нового начала координат;• совмещение ПСК с имеющимся объектом;• совмещение ПСК с гранью


Ориентация в пространстве

Из книги автора

Ориентация в пространстве Итак, поиски связки ключей и забытые фамилии вы можете спокойно отнести к разряду нормальных явлений: никаких причин для беспокойства, и в первую очередь никаких оснований предполагать начинающуюся деменцию. Но как обстоит дело с умением


Структура mm_struct и потоки пространства ядра

Из книги автора

Структура mm_struct и потоки пространства ядра Потоки пространства ядра не имеют своего адресного пространства процесса и, следовательно, связанного с ним дескриптора памяти. Значение поля mm для потока пространства ядра равно NULL. Еще одно определение потока ядра — это