Вопрос

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

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

Например, мой обработчик прерываний вызывается во время t1 и время t2, каждый вызов выполняется tasklet_schedule(&customTasklet);.Теперь, могу ли я быть уверен, что тасклет, который был запланирован вовремя t1 будет выполнен первым?

Это было полезно?

Решение

Планируемый tasklet хранятся в списке;система прочитала этот список в ФИФО порядок, так что:да t1 выполняется до t2.

Здесь какой-то код чтобы понять механизм.

редактировать

Как напоминает cl, существует список задачлетов для каждого процессора;таким образом, когда вы распределяете тасклет, вы планируете его на активном процессоре.Таким образом, тасклеты сериализуются на одном и том же процессоре.Если вы запланируете t1 CPU1 оон и t2 на CPU2 может случиться так, что t2 выполняется до t1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top