Пример: Когда мы наблюдали по телевидению феноменальную игру в гольф Лесного Тигра (Matt Christopher, прим. переводчика), то были заинтригованы тем, как же обслуживающий персонал поля для гольфа способен проследить за состоянием большого числа игроков в гольф (задач) на турнире, чтобы предоставлять им лунки (ресурсы). В процессе передачи, мы увидели большое табло, на котором отслеживалось состояние игроков и лунок. Обслуживающий персонал поля для гольфа мог сообщить состояние данного игрока или лунки. Табло состояния постоянно изменялось в течение турнира. ОСРВ использует тот те же методы (TCB и DCB) чтобы проследить состояние задач, ресурсов и услуг в процессе выполнения программы.
Диспетчер/планировщик. Диспетчер/планировщик — другая ключевая часть ядра ОСРВ. Первичная его функция состоит в том, чтобы определить, какая из задач является очередной. Планировщик может использовать ряд алгоритмов, чтобы принять это решение. В следующем разделе обсуждаются различные алгоритмы и свойственные им недостатки и преимущества.
8.5. Типы операционных систем реального
времени
Обычно, операционные системы реального времени характеризуются типом алгоритма, используемого звеном диспетчера/планировщика, имеющимся в ядре ОСРВ. Уже название каждого типа ОСРВ дает достаточно хорошее описание работы его алгоритма. Проведем сравнительный обзор различных типов ОСРВ. Мы должны подчеркнуть, что ни один из рассматриваемых алгоритмов планирования ОСРВ не лучше любого другого. Выявление алгоритма, наиболее подходящего для конкретного применения является задачей программиста, создающего систему ОСРВ.
8.5.1. Системы с циклическим опросом
Система с циклическим опросом является наиболее простым ядром планирования ОСРВ, как для разработки, так и для исполнения. Как подразумевается самим названием, оно использует механизм последовательного опроса, чтобы определить, требует ли данная задача процессорного времени. Когда задача его требует, оно предоставляется ей от начала до конца выполнения. Как только задача заканчивается, операционная система продолжает опрос других задач, требующих процессорного времени.
Системы с циклическим опросом используются при управлении многозадачными системами с равным приоритетом для всех задач. Она должна также использоваться для систем с задачами, которые вряд ли потребуют процессорного времени одновременно. Так как одиночная задача выполняется до завершения, межзадачная связь в таких операционных системах обычно не требуется.
Основное преимущество системы с циклическим опросом — простота. С этим типом системы просто определить время срабатывания специфической задачи, систему просто написать и отладить. Основной недостаток такой системы — также простота. Система с циклическим опросом не может обрабатывать пакет событий — то есть несколько задач, требующих процессорного времени одновременно.
Следует подчеркнуть, что система с циклическим опросом — не лучший выбор сценария работы операционной системы реального времени. Она имеет существенные ограничения, однако идеально подходит для некоторых приложений, в чем мы убедимся на следующем примере.
Пример: В главе 2 мы обсуждали встроенную систему управления, предназначенную для обработки входных сигналов дистанционного управления или группового ввода для стерео усилителей. В этом специфическом примере, операционная система инициализировала систему усилителя и затем непрерывно опрашивала входные сигналы от пульта дистанционного управления и переключателей на лицевой панели. Интерфейс дистанционного управления связан с портом А, а переключатели на лицевой панели — портом B. Для этого применения, опрос был наилучшим метод для реализации операционной системы. Он был выбран в качестве предпочтительного, потому что 1) как только усилитель инициализирован, операционная система, выполняет только опрос сигналов на входах, 2) входы от дистанционного управления и переключателей лицевой панели имеют равный приоритет и 3) время реакции на изменение входных сигналов не критично.
8.5.2. Циклический опрос с прерываниями
Что же будет, если наше прикладная программа в основном хорошо соответствует системе с опросом, но содержит несколько задач, которые требуют непосредственного доступа к процессору? Необходимо ли отказываться от простой системы с опросом в пользу намного более сложного алгоритма планирования ОСРВ? Ответ будет отрицательным. Как мы указывали в главе 4, микроконтроллер 68HC12 имеет мощную, гибкую систему прерывания с приоритетным управлением. Чтобы обрабатывать простые текущие задачи может применяться алгоритм опроса, в то же время для внеочередной обработки задач требующих немедленного вмешательства может использоваться система прерываний.