Старый механизм очередей заданий

Старый механизм очередей заданий

Так же как и в случае интерфейса BH, который дал начало интерфейсам отложенных прерываний (softirq) и тасклетов (tasklet), интерфейс очередей действий возник благодаря недостаткам интерфейса очередей заданий (task queue). Интерфейс очередей заданий (который еще называют просто tq), так же как и тасклеты, не имеет ничего общего с заданиями (task), в смысле с процессами[41]. Все подсистемы, которые использовали механизм очередей заданий, были разбиты на две группы еще во времена разработки серии ядер 2.5. Первая группа была переведена на использование тасклетов, а вторая— продолжала использовать интерфейс очередей заданий. Все, что осталось от интерфейса очередей заданий, перешло в интерфейс очередей отложенных действий. Краткое рассмотрение очередей заданий, которым пользовались в течение некоторого времени, — это хорошее упражнение по истории.

Интерфейс очередей заданий позволял определять набор очередей. Очереди имели имена, такие как scheduler queue (очередь планировщика), immediate queue (немедленная очередь) или timer queue (очередь таймера). Каждая очередь выполнялась в определенных местах в ядре. Поток пространства ядра keventd выполнял работу, связанную с очередью планировщика. Эта очередь была предшественником интерфейса очередей отложенных действий. Очередь таймера выполнялась при каждом импульсе системного таймера, а немедленная очередь выполнялась в нескольких местах, чтобы гарантировать "немедленное" выполнение. Были также и другие очереди. Кроме того, можно было динамически создавать новые очереди.

Все это может показаться полезным, но на практике интерфейс очередей заданий приносил только неприятности. Все очереди были, по сути, оторваны от действительности. Единственной ценной очередью оказалась очередь планировщика, которая предоставляла единственную возможность, чтобы выполнять отложенные действия в контексте процесса.

Еще одним преимуществом механизма очередей заданий была простота интерфейса. Несмотря на большое количество очередей и разнообразие правил, по которым они выполнялись, интерфейс был максимально прост. Все остальное, что касается очередей заданий, необходимо было убрать.

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

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

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

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

Старый способ: дополнительная разметка

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

Старый способ: дополнительная разметка Как это сделать? В начале 2008 года в статье для Think Vitamin Пол Аннетт написал о приемах, которые он использовал для создания эффекта параллакса именно на сайте Silverback (http://bkaprt.com/css3/10/)[13].Чтобы наслоить отдельные PNG одну поверх другой, нужно


Старый механизм BH

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

Старый механизм BH Хотя старый интерфейс BH, к счастью, уже отсутствует в ядрах серии 2.6, тем не менее им пользовались очень долгое время — с первых версий ядра. Учитывая, что этому интерфейсу удалось продержаться очень долго, он, конечно, представляет собой историческую


Реализация очередей отложенных действий

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

Реализация очередей отложенных действий В своей наиболее общей форме подсистема очередей отложенных действий — это интерфейс для создания потоков пространства ядра, которые выполняют некоторые действия, где-то поставленные в очередь. Эти потоки ядра называются


Использование очередей отложенных действий

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

Использование очередей отложенных действий Использовать очереди действий просто. Сначала мы рассмотрим рабочие потоки, используемые по умолчанию, — events, а затем опишем создание новых типов рабочих потоков.Создание отложенных действийПервый этап — это создание самого


(7.19) Как завести под W2k старый CD рекордер? Например, CD-recorder Yamaha CDR-100 (SCSI) определяется, но никаких драйверов на него не ставится.

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

(7.19) Как завести под W2k старый CD рекордер? Например, CD-recorder Yamaha CDR-100 (SCSI) определяется, но никаких драйверов на него не ставится. Для этого достаточно выбрать драйвер вручную, из списка. Вполне подойдёт стандартный драйвер CD-ROM. Привод будет виден в Explorer, и записывающий CD-R софт


Старый продающий текст

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

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


5.5. Ограничения очередей сообщений

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

5.5. Ограничения очередей сообщений Мы уже сталкивались с двумя ограничениями, устанавливаемыми для любой очереди в момент ее создания:? mq_maxmsg — максимальное количество сообщений в очереди;? mq_msgsize — максимальный размер сообщения.Не существует каких-либо ограничений на


Программа измерения задержки очередей сообщений Posix

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

Программа измерения задержки очередей сообщений Posix Пpoгрaммa измерения задержки для очередей сообщений Posix приведена в листинге А.15.Листинг А. 15. Программа измерения задержки для очереди сообщений Posix//bench/lat_pxmsg.с1  #include "unpipc.h"2  #define NAME1 "lat_pxmsg1"3  #define NAME2 "lat_pxmsg2"4  #define MAXMSG 4 /*


Измерение задержки очередей сообщений System V

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

Измерение задержки очередей сообщений System V В листинге А.16 приведен текст программы измерения времени задержки для очередей сообщений System V.Листинг А.16. Программа измерения времени задержки для очередей сообщений System V//bench/lat_svmsg.c1  #include "unpipc.h"2  struct msgbuf p2child = { 1, { 0 } }; /* type = 1


R.18.3.2 Старый стиль задания инициализатора базового класса

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

R.18.3.2 Старый стиль задания инициализатора базового класса В конструкции инициализатор-памяти (§R.12.6.2) можно не указывать имя-класса, обозначающее базовый класс при условии, что существует только один прямой (непосредственный) базовый класс. Поэтому в описанииclass B


Старый друг лучше

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

Старый друг лучше Автор: Козловский ЕвгенийИзобретение позапрошлого века (в нынешнем году ей исполняется ни много ни мало – 110 лет), детище немецкого физика Карла Фердинанда Брона, представляет собой колбу, из которой откачан воздух и передняя поверхность которой


Администрирование заданий

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

Администрирование заданий Администрирование заданий имеет дело с выпуском определений, расписаний, исполнений, мониторингов и управлением фоновыми задачами. Фоновые задачи относятся к пакетным процессам, которые рассматривались в одноименном разделе главы 7.