СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-1
ПРОГРАММИРОВАНИЕ жен прервать её, сообщить об ошибке и переключиться на другую задачу, чтобы остальные задачи были выпол нены к своим конечным срокам. Обыч но конечный срок у задачи совпадает с её периодом. Описанные выше вре менные характеристики задачи пока заны на рисунке 1. Показано [4], что RMS является опти мальным алгоритмом для планирова ния независимых периодических за дач на одном процессоре; оптималь ным в том смысле, что если имеется набор задач, каждая из которых может быть выполнена в свой срок, RMS осу ществит планирование этого набора задач. Естественно, не все наборы за дач могут быть выполнены в свой срок. Простойпример: задача1спериодом20 и временем выполнения 10 и задача 2 с периодом 10 и временем выполне ния 6 потребуют более чем 100 % ис пользования процессора. Ключевым параметром для RMS является исполь зование процессора – сумма времени выполнения задач, поделенная на пе риод для каждой задачи: Очевидно, никакой алгоритм не обеспечит успешное планирование для U > 1. Главное правило алгорит ма RMS состоит в том, что он может успешно планировать набор из n за дач, если U < n (2 1/ n – 1). Для одной задачи ( n = 1) граница для U равна 100%, для двух задач 83%, и т.д. При неограниченном увеличении чис ла задач верхняя граница для U стре мится к 69%: Таким образом, если набор задач ис пользует процессор менее чем на 69%, RMS гарантирует успешное планиро вание этого набора. Если же уровень использования процессора превышает 69%, то RMS также может планировать данный набор задач, но без гарантии. Некоторые приложения имеют за дачи как с жёсткими (hard deadlines), так и с мягкими сроками выполнения (soft deadlines). Набор задач с жёстки ми сроками выполнения является критичным и может планироваться с помощью RMS, при этом некритич ные задачи не будут выполняться при полной загрузке системы. Это дости гается тем, что задача мягкого реаль ного времени с наивысшим приори тетом будет иметь приоритет ниже, чем задача жёсткого реального вре мени с самым низким приоритетом. Хотя RMS может быть использован и для того, чтобы назначить периоды и приоритеты задачам мягкого време ни, это не является необходимым. По сути в этом случае RMS может гаран тировать только выполнение задач жёсткого времени. Для них RMS позво ляет определить гарантированное время ответа, – даже при наихудших условиях оно будет меньше конечно го срока для этой задачи. Я ДРО РАСШИРЕНИЯ МОНОТОННОЙ ЧАСТОТЫ RMEX В качестве примера использования алгоритма RMS для планирования в системе жёсткого реального времени рассмотрим работу расширения мо нотонной частоты RMEX (Rate Mono tonic EXtension) для микроконтрол лера Microchip PIC18F2550 [6]. Расши рение монотонной частоты RMEX берёт на себя функции планирования задач жёсткого реального времени, управления прерываниями и возмож ности подключения задачи мягкого реального времени. Микроконтрол лер имеет раздельную память про граммы (флэш) 32 Кб и данных (ОЗУ) 2048 байт, 31 уровневый стек, один 8 битный таймер и три 16 битных таймера. Приложение будет работать следу ющим образом. Все задачи разделя ются на задачи, работающие в жёст ком реальном времени (планируются при помощи алгоритма RMS), и задачи мягкого времени (планируются при помощи кооперативной многозадач ности без использования таймера в фоновом режиме, прерывания выпол няются на переднем плане). Ядро RMEX написано на языке C и состоит из исходного и заголовочного фай лов ( rmex.c , rmex.h ), которые включа ются в компоновку вместе с програм мой пользователя. Задачи пользова теля представляют собой простые функции. Написание приложения сводится к разделению приложения на задачи, деление этих задач на кри тичные и некритичные по времени наборы, созданию таблицы конфигу рации планировщика. В отдельном заголовочном файле конфигурации планировщика ука затели на задачи жёсткого реаль ного времени заносятся в таблицу RMEX_TASKS , некритичные по време ни задачи вызываются в функции SOFT_TASK . В простейшем варианте некритичные по времени задачи вы полняются в суперцикле. Для задач реального времени информация о периоде и времени выполнения для каждой задачи заносится в таблицу RMEX_TCB . Структура RMEX_TCB состо ит из следующих полей: период зада чи; время, прошедшее с начала перио да; максимальное время выполнения задачи; текущее время выполнения за дачи: struct { unsigned char period_time; unsigned char period_elapsed; unsigned char exec_time; unsigned char exec_elapsed; } RMEX_TCB[CONFIGURE_RMEX_TASKS] Если конечное время у задачи боль ше её периода, то необходимо взять за период задачи срок её выполнения, а если время выполнения задачи варьи руется, то следует взять время при наи худших условиях. Алгоритм RMS предполагает вытес нение задач, т.е. необходимо сохранять контекст задач (регистры WREG, STA TUS, BSR, FSR1, FSR2, STKPTR и стек) при вытеснении задачи. Один адрес в стеке микроконтроллера занимает 3 байта памяти, так что для сохранения, напри мер, 10 адресов возврата в стеке пона добится 30 байт плюс 6 байт для ре гистров. При этом вполне вероятно, что задача мягкого реального време ни будет постоянно вытесняться и работа планировщика будет замед ляться сохранением стека фоновой задачи. Для ускорения работы планировщи ка кооперативные задачи и задачи мо нотонной частотыиспользуют разные области стека микроконтроллера, бла годаря чему планировщику не прихо 1 lim 2 1 log2=0,69. n n n →∞ ⎛ ⎞− = ⎜ ⎟ ⎝ ⎠ . i i i c U p = ∑ 57 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2011 0 1 2 3 4 5 Период задачи Время выполнения Инициализация задачи 6 7 8 9 10 Конечный срок Рис. 1. Временные характеристики задачи © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy