Планирование потоков для структурs программного обеспечения

Используемая в блоке регистрации аппаратная платформа включает 4-ядерный микропроцессор Intel Core 2 Quad Q9300, а загрузочный образ системы поддерживает режим симметричного мультипроцессирования (SMP), поэтому для программного обеспечения выбрана структура, выделяющая описанные ранее задачи в отдельные потоки, каждый со своим приоритетом.

По умолчанию каждый поток при запуске наследует приоритет и дисциплину планирования от потока-родителя. Изменить атрибуты потока можно при помощи специальных функций. Пример иллюстрирует инициализацию потока maththread с приоритетом 20, дисциплиной планирования RR, выполняющего процедуру startroutine. В случае если создаётся поток для обработки прерывания, одновременно инициализируется соответствующая структура event (листинг 1).

Процесс (1) — поддержка графического человеко-машинного интерфейса — не имеет критических требований ко времени реакции на события и является фоновым для остальных процессов системы, поэтому оставим для него приоритет, определяемый по умолчанию, — 10.

Процесс (2) — обмен с КУ — должен выполняться с более высоким приоритетом, так как по информации от КУ актуализируется текущее состояние сепаратора, выберем для него приоритет 15.

Процесс (3) — анализ (обработка) данных от АЦП — должен выполняться синхронно с чтением данных, и ни один пакет данных не должен быть пропущен, поэтому назначаем ему приоритет 20 (выше, чем у большинства процессов в системе).

Процессы (4) и (5) — обработка прерываний от АЦП — должны быть с ещё более высоким приоритетом, выбираем 22 и 23.

Процесс (6) — обмен с АСУ — также является фоновым в нашей системе, и переназначать ему более высокий приоритет не будем.

09.02.2014

Добавить страницу в мои закладки:

Смотрите также:

Что вы чаще всего делаете в Интернете?

Загрузка ... Загрузка ...