В развернутом приложении переключение между потоками требует конечного количества времени в зависимости от текущего состояния потока, встраиваемого процессора, и OS. Задержка ядра определяет время, необходимое операционной системе, чтобы ответить на триггерный сигнал, остановить выполнение любых текущих потоков и начать выполнение потока, ответственного за триггерный сигнал.
Модели SoC Blockset™ моделируют задержку ядра как задержку в начале выполнения задачи при первом переходе задачи из ожидающего в выполняемое состояние. Следующая схема показывает время выполнения высокоприоритетной и низкоприоритетной задачи в системе, которая имитирует одно ядро процессора.
Другие факторы, влияющие на задержку ядра, такие как время переключения контекста, могут считаться незначительными по сравнению с другими эффектами и не моделируются в симуляции.
Примечание
Задержка ядра требует продвинутых знаний спецификаций процессора и обычно может быть установлена на 0
без влияния на симуляцию.
Этот пример показывает эффект задержки ядра на поведение и таймирование двух задач, управляемых таймером, в приложении СоК.
Следующая модель моделирует программное обеспечение с двумя задачами, управляемыми таймером. Характеристики задачи, заданные в блоке Task Manager, следующие:
При таких условиях синхронизации задача с высоким приоритетом прерывает задачу с низким приоритетом. В диалоговом окне model Параметры Конфигурации задается значение Аппаратная реализация > Операционная система/планировщик > Задержка ядра 0.002
.
Запустите модель и откройте Данные Моделирования Inspector. Выбор двух сигналов задачи приводит к следующему отображению.
Проверка Данные Моделирования Inspector, изменение состояния задачи с Ожидание на Выполнение показывает задержку 0.002
секунд. Однако, когда задача изменяется с Упрежденная на Выполняемая, задержка не происходит. Это время совпадает с ожидаемым поведением задачи, испытывая задержку при запуске этого образца выполнения задачи, но не тогда, когда образец задачи уже существует.