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