exponenta event banner

Приоритет и приоритетность задачи

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

Задачи, перечисленные в блоке Диспетчер задач, выполняются в монотонном порядке. Rate-monotonic order требует от задачи с наивысшим статическим приоритетом в состоянии вытеснения немедленного вытеснения всех других задач и перехода в рабочее состояние. Задачи, управляемые таймером, с более короткими периодами получают более высокие статические приоритеты. Если две задачи с одинаковым приоритетом в состоянии вытеснения, когда другой выполняющейся задачи не существует, то задачи выполняются в порядке «первый вход - первый выход» (FIFO).

Каждая управляемая событиями задача, перечисленная в блоке диспетчера задач, может быть задана с явным приоритетом выполнения. Задачи, управляемые таймером, наследуют свой приоритет от приоритета задачи базовой скорости модели. В параметрах конфигурации приоритет задачи базовой скорости задается параметром Hardware Implementation > Hardware board settings > Operating system/scheduler > Base rate task priority. В следующем примере показано взаимодействие между двумя конкурирующими задачами.

Вытеснение низкоприоритетной задачи по высокоприоритетной задаче

В этом примере показано, как диспетчер задач изменяет состояние двух задач, предотвращая выполнение задачи с более низким приоритетом.

Диспетчер задач с задачами высокого и низкого приоритета

Следующая модель моделирует программное приложение с задачей высокого и низкого приоритета. Блок диспетчера задач планирует выполнение подсистем задач внутри блока ссылок на модель приложения программного обеспечения.

Задача с низким приоритетом, управляемая таймером, должна выполняться каждые 0,5 секунды с длительностью 0,2 секунды. Высокоприоритетная, управляемая событиями, задача запланирована на выполнение при поступлении нового пакета данных UDP, которое происходит каждые 1,1 секунды и требует длительности задачи 0,5 секунды. В результате этих условий синхронизации задача с низким приоритетом вытесняется, чтобы разрешить выполнение задачи с высоким приоритетом.

Моделирование, показывающее приоритет задачи

Нажмите кнопку Выполнить (Run), чтобы построить и запустить модель. По завершении работы модели откройте инспектор данных моделирования для просмотра результатов моделирования. Выберите формы сигналов задач HighPriority и LowPriority, чтобы увидеть приоритет задачи.

При проверке инспектора данных моделирования в момент времени 1.0 задача с низким приоритетом начинает выполняться до момента времени 1.1, будучи вытесненной задачей с высоким приоритетом. Задача с низким приоритетом запускается до завершения через 1,7 секунды, что приводит к переполнению следующего экземпляра задачи с низким приоритетом, которая должна была начаться через 1,5 секунды.

См. также

Связанные темы