exponenta event banner

Разработка пользовательского планировщика многоядерной системы управления

Обзор

В этом примере показано, как моделировать планировщик клиента с использованием блока системы дискретных событий SimEvents MATLAB. Модель включает блок планировщика, который может моделировать многоядерную систему с произвольным количеством ядер, задач и взаимоисключающих ресурсов.

Модель конфигурирует блок планировщика для обработки задач систем управления с замкнутым контуром. Моделирование измеряет производительность этих систем управления и предоставляет метрики среды выполнения, такие как задержки и непредвиденные ситуации с ресурсами. Эти результаты могут помочь проектировщикам систем управления разработать архитектурные спецификации для их функциональных компонентов.

Создание пользовательского планировщика в MATLAB

Блок планировщика корневой модели разрабатывается главным образом как система дискретных событий MATLAB. Файл MATLAB seSchedulerClass содержит реализацию соответствующего объекта системы с дискретным событием.

В этом примере контроллер моделируется как экспортированная функциональная модель Simulink. Выполнение контроллера сопоставляется с программной задачей, которая запланирована для периодического выполнения. Задача может быть разделена на несколько сегментов (или подзадач). Из-за зависимостей данных эти сегменты должны выполняться в последовательном порядке.

Блок планировщика включает в себя следующие параметры:

  • Количество ядер: количество ядер, доступных для использования операционной системой.

  • Политика планирования: в качестве политики планирования операционной системы выберите «На основе приоритета» или «Циклический». Планирование на основе приоритетов сортирует и выполняет задачи в порядке приоритетов. Циклическая политика позволяет одинаково выполнять задачи по очереди.

  • Количество задач: количество задач в этой операционной системе.

  • Периоды задач: как часто каждая задача создается для выполнения.

  • Приоритеты задачи: Приоритет каждой задачи (меньшее значение указывает на более высокий приоритет).

  • Количество сегментов в каждой задаче: количество сегментов (подзадач), имеющихся в задаче.

  • Функция Simulink для каждого сегмента: исполняемые файлы, связанные с каждым сегментом задачи. Эти исполняемые файлы представлены функциями Simulink экспортируемой модели функций.

  • Продолжительность выполнения каждого сегмента: время завершения сегмента задачи, если он выполняется на процессоре без прерывания.

  • Количество взаимоисключающих ресурсов: Количество взаимоисключающих ресурсов операционной системы. Одна задача за один раз может получить и использовать ресурс. Для управления этими ресурсами операционная система использует такие механизмы, как мутексы.

  • Использование ресурсов каждой задачей: Cell vector. Каждый элемент вектора указывает на использование ресурсов задачей.

Сравнение различных назначений ядра

Блок планировщика позволяет назначать произвольное количество ядер и исследовать, как это влияет на производительность системы. Мы начинаем со сценария, в котором два ядра были назначены для выполнения двух задач управления. При достаточной мощности обработки обе системы управления с замкнутым контуром работают хорошо в ответ на изменения уставок.

Временная диаграмма планировщика показывает, что задачи управления одновременно обрабатываются обоими ядрами, причем ядра имеют среднее и сбалансированное использование.

Для сравнения, когда назначается только одно ядро, производительность Controller1 ухудшается из-за перерасхода задач (см. Plant1). Временная диаграмма четко показывает такие перерасходы задач и значительно увеличенные задержки.

Обратите внимание, что выполнение задачи управления 2 остается неизменным. Это происходит потому, что планировщик применяет политику, основанную на приоритете, где мощность обработки максимально назначается высокоприоритетным задачам.

Сравнение различных политик планирования

В этот момент, если планировщик переключается на использование политики циклического планирования, система управления работает по-другому. По сравнению с предыдущим случаем, когда обрабатывающая способность остается прежней, установка 1 становится стабильной, что приводит к снижению производительности установки 2. Это изменение связано с тем, что циклическая политика равномерно распределяет производительность обработки между всеми задачами.

Сравнение различных назначений ресурсов

Теперь давайте снова настроим планировщик на использование двух ядер и изучим различные схемы распределения ресурсов. Мы добавляем ресурс, который может совместно использоваться задачами взаимоисключающим образом.

Как показано на временной диаграмме, хотя одновременное выполнение разрешено с двумя ядрами, задачи обрабатываются последовательно. Используется только одно ядро. Это связано с тем, что задача должна дождаться требуемого ресурса, прежде чем его можно будет обработать.

Вы можете устранить такие непредвиденные обстоятельства, назначив больше ресурсов. Настройте блок планировщика, чтобы использовать 2 ресурса, и разрешите задаче иметь выделенный ресурс.

С каждой задачей, имеющей свой собственный ресурс, задачи обрабатываются одновременно.

Связанные примеры

См. также

| | | | |

Связанные темы