С конечными ресурсами обработки, доступными в системе, экземпляр выполнения задачи не может смочь завершиться перед запуском следующего экземпляра задачи. Эта задача превышает результаты в запуске следующего экземпляра выполнения задачи, которое будет задержано. В результате следующая задача должна кетчуп, чтобы избежать другого переполнения. Эта схема показывает упрощенное выполнение двух задач: высокоприоритетная событийно-управляемая задача и низкий приоритет управляемая таймером задача.
Из-за долгого времени выполнения событийно-управляемой задачи, первый экземпляр выполнения управляемой таймером задачи переполняется в запуск следующего экземпляра выполнения. Это переполнение помещает второй экземпляр выполнения в режим кетчупа.
Когда задачи неоднократно переполняются, отставание выполнения может разработать в приложении, потенциально повредив систему. Эти разделы обсуждают типичные контрмеры, чтобы или уменьшать шанс переполнений задачи или ситуаций с указателем когда превышенные задачи, предотвращая отставание выполнения.
Для управляемых таймером задач уменьшайте шанс переполнений путем предоставления задаче больше времени выполнения. Увеличьте доступное время выполнения путем уменьшения уровня задачи, который эквивалентен увеличению времени между экземплярами выполнения задачи. Это дополнительное время обеспечивает, каждое выполнение задачи инстанцируют лучший шанс выполнение до завершения, даже в присутствии других задач. Уровень управляемой таймером задачи может быть настроен в блоке Task Manager путем установки параметра Period.
Сокращение интервала выполнения задачи не может быть гарантировано во всех случаях. Некоторые из этих случаев включают:
Для событийно-управляемых задач несколько событий могут иметь место одновременно, в зависимости от приоритета событийно-управляемой задачи. Этот случай обеспечивает другие задачи переполниться из-за отсутствия ресурсов.
Требования в реальном времени, где задача, таймер или управляемый событиями, должна ответить на триггерный сигнал последнего события и новые данные независимо от ли предыдущие завершенные экземпляры задачи. Этот случай прикрепляет интервал выполнения задачи к значению, определенному конструктивными требованиями.
В этих случаях распределительные задачи через несколько ядер процессора или задачи разрешения понизиться могут быть выгодными в зависимости от конструктивных требований.
Большинство современных встраиваемых процессоров обеспечивает несколько ядер, где задачи могут быть выполнены. Распределительными задачами через эти несколько ядер процессора задачи могут запуститься одновременно, непосредственно не конкурируя за обработку ресурсов и сокращение шанса переполнений задачи. В SoC Blockset™ задача может поставиться, чтобы работать на определенном ядре процессора в блоке Task Manager путем установки параметра Core на базовый номер. Для получения дополнительной информации о выборе выполнение и визуализация задач на нескольких ядрах, видят Многожильное Выполнение и Базовую Визуализацию.
В некоторых проектах должна выполниться задача, когда триггерный сигнал задачи происходит или с последним состоянием системы. Если задача была инициирована, и новый триггер задачи происходит, новый экземпляр может быть удален или пропущен. После отбрасывания экземпляра выполнения задачи, которая превысила следующий экземпляр выполнения, запускается, когда триггерный сигнал события прибывает. Чтобы пропустить задачи, когда переполнение происходит в блоке Task Manager, включают параметр Drop task that overrun.
В этом примере показано, как сконфигурировать задачу в блоке Task Manager, чтобы понизиться, когда превышенная задача происходит в процессе моделирования.
Задача, превышенная без отбрасываний задачи
Эта модель симулирует программное обеспечение, работающее на процессоре ARM. Блок Task Manager планирует выполнение Таймера Управляемая Подсистема в блоке Software Application Model Reference. Блок Random Number симулирует источник данных что управляемые таймером выборки задачи.
В этой модели длительность задачи 0,6 секунд превышает период задачи 0.5
секунды вызывая задачу переполниться. Щелкните по кнопке Run, чтобы создать и запустить модель. Когда модель закончила запускаться, Инспектор Данных моделирования показывает синхронизацию выполнения задачи.
Осмотр синхронизации выполнения задач показывает, что запуск каждого после экземпляра задачи задерживается от ожидаемого 0.5
- второй интервал переполнением предыдущей задачи. Даже когда задачи Отбрасывания, которые переполняются, поставились к off
, не больше, чем 2 экземпляра задачи могут превысить выполнение. Как показано в Timer_Task_drop
сигнал, дополнительные экземпляры задачи, которые превышают отбрасывание автоматически.
Задача, превышенная с отбрасываниями задачи
Используя ту же ранее показанную модель, вместо того, чтобы превысить управляемую таймером задачу, отбрасывания задачи, таким образом, следующий экземпляр задачи запускается в 0.5
- второй интервал. Откройте диалоговую маску блока Task Manager и выберите задачи Drop, которые переполняются. Запустите модель снова. Откройте Инспектора Данных моделирования, чтобы просмотреть выполнение задачи и пропущенные экземпляры задачи.