Книга: Разработка ядра Linux
Внизу обработки нижних половин
Внизу обработки нижних половин
В этой главе были рассмотрены три механизма, которые используются для реализации отложенных действий в ядре Linux, — отложенные прерывания (softirq), тасклеты (tasklet) и очереди отложенных действий (work queue). Было показано, как эти механизмы работают и как они реализованы. Также обсуждались основные моменты, связанные с использованием этих механизмов в собственном программном коде, и было показано, какие у них неподходящие названия. Для того чтобы восстановить историческую справедливость, мы также рассмотрели те механизмы обработки нижних половин, которые существовали в предыдущих версиях ядра Linux: механизмы BH и task queue.
Очень часто в главе поднимались вопросы, связанные с синхронизацией и параллельным выполнением, потому что эти моменты имеют прямое отношение к обработке нижних половин. В эту главу специально был включен раздел, который касается запрещения обработки нижних половин для защиты от конкурентного доступа, Теперь настало время углубиться в эти моменты с головой. В следующей главе будут рассмотрены особенности синхронизации и параллельного выполнения кода в ядре: основные понятия и соответствующие проблемы. Далее будут рассмотрены интерфейсы, которые позволяют осуществлять синхронизацию в ядре и решать указанные проблемы. Вооруженные следующими двумя главами, вы сможете покорить мир.
- Глава 7 Обработка нижних половин и отложенные действия
- 1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- Методы грамотной обработки возражений изменению
- B1.7. Функции обработки ошибок
- Подпрограмма обработки прерывания
- Основные сведения о базах данных и программах для их обработки
- Г.3. Стандартные функции обработки ошибок
- Способы обработки возражений
- Последний глобальный шанс для обработки исключений
- Сформировать прозрачный для клиента бизнес-процесс обработки жалоб
- Атомы обработки исключений в .NET
- Глава 25 Настройка средств обработки пакетов с помощью iptables