Приоритет задачи информирует операционную систему о важности задачи и порядке, в котором должна выполняться группа ожидающих задач. Путем установки приоритетов задач в блоке Task Manager, задачи, которые должны реагировать на критические или чувствительные ко времени события, могут превентировать более низкие приоритеты и фоновые задачи.
Задачи, перечисленные в Task Manager блоке, выполняются в монотонном порядке скорости. Скорость-монотонный порядок требует, чтобы задача с наивысшим статическим приоритетом в превентивном состоянии немедленно прервала все другие задачи и вошла в рабочее состояние. Управляемые таймером задачи с более короткими периодами получают более высокие статические приоритеты. Если две задачи с равным приоритетом в превентивном состоянии, когда другой выполняемой задачи не существует, то задачи выполняются в порядке первого выхода (FIFO).
Каждая событийно-управляемая задача, перечисленная в блоке Task Manager, может быть установлена с явным приоритетом выполнения. Управляемые таймером задачи наследуют свой приоритет от приоритета задачи базовой скорости модели. В параметрах конфигурации приоритет задачи базовой скорости устанавливается параметром Hardware Implementation Hardware board settings > Operating system/scheduler > Base rate task priority >. В следующем примере показано взаимодействие между парой конкурирующих задач.
В этом примере показано, как менеджер задач изменяет состояние двух задач, прерывая задачу с более низким приоритетом, чтобы разрешить выполнение задачи с высоким приоритетом.
Диспетчер задач с высокими и низкоприоритетными задачами
Следующая модель моделирует программное обеспечение с высокой и низкой приоритетной задачей. Блок Task Manager планирует выполнение подсистем задач внутри блока Программное Обеспечение Model Reference.
Задача с низким приоритетом, управляемая таймером, должна запускаться каждые 0,5 секунды с длительностью 0,2 секунды. Задача с высоким приоритетом, управляемая событиями, должна запускаться при поступлении нового пакета данных UDP, который происходит каждые 1,1 секунды и требует длительности задачи 0,5 секунды. В результате этих условий синхронизации низкоприоритетная задача переизбирается, чтобы позволить высокоприоритетной задаче выполняться.
Симуляция, показывающая прерывание задачи
Нажмите кнопку Run, чтобы создать и запустить модель. Когда модель закончит работать, откройте Данные моделирования Inspector, чтобы увидеть результаты симуляции. Выберите форму задачи HighPriority и LowPriority, чтобы увидеть прерывание задачи.
При проверке Данных моделирования Inspector в момент 1.0 низкоприоритетная задача начинает выполняться до времени 1.1, прерываясь высокоприоритетной задачей. Задача низкого приоритета затем запускается до своего завершения через 1,7 секунды, переполняя следующий образец задачи низкого приоритета, которая должна была начаться через 1,5 секунды.