Приоритет задач сообщает операционной системе о важности задачи и порядка, в котором должна выполниться группа ожидающих задач. Путем установки приоритетов задач в блоке 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 секунды.