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

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

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

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

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

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

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

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

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

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

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

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

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


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

Из книги Справочное руководство по C++ автора Страустрап Бьярн

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


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

Из книги Win2K FAQ (v. 6.0) автора Шашков Алексей

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


1. Самый старый виртуал

Из книги Ощупывая слона [Заметки по истории русского Интернета] автора Кузнецов Сергей Юрьевич


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

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

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


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

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Программа измерения задержки очередей сообщений 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


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

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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


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

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

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


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

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

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


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

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

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


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

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

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


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

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

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