Компоненты и технологии • №2 '2011 компоненты


КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 2 '2011



Pdf көрінісі
бет5/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   2   3   4   5   6   7   8   9   ...   129
Kurniz

98
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 2 '2011
компоненты
микроконтроллеры
задача выполнила свои действия, она завер‑
шает свою работу или переходит в состояние 
ожидания, и управление снова получает за‑
дача с низким приоритетом. Переключение 
между задачами осуществляется через рав‑
ные кванты времени работы планировщи‑
ка, то есть высокоприоритетная задача, как 
только она стала готова к выполнению, ожи‑
дает окончания текущего кванта, после чего 
управление получает планировщик, который 
передает управление высокоприоритетной 
задаче.
Таким образом, время реакции FreeRTOS 
на внешние события в режиме вытесняющей 
многозадачности — не больше одного кванта 
времени планировщика, который можно за‑
давать в настройках. По умолчанию он равен 
1 мс.
Если готовы к выполнению несколько за‑
дач с одинаковым приоритетом, то в таком 
случае планировщик выделяет каждой из них 
по одному кванту времени, по истечении 
которого управление получает следующая 
задача с таким же приоритетом, и так далее 
по кругу.
Кооперативная многозадачность отлича‑
ется от вытесняющей тем, что планировщик 
самостоятельно не может прервать выполне‑
ние текущей задачи, даже если появилась го‑
товая к выполнению задача с более высоким 
приоритетом. Каждая задача должна само‑
стоятельно передать управление планиров‑
щику. Таким образом, высокоприоритетная 
задача будет ожидать, пока низкоприоритет‑
ная завершит свою работу и отдаст управле‑
ние планировщику. Время реакции системы 
на внешнее событие становится неопреде‑
ленным и зависит от того, как долго текущая 
задача будет выполняться до передачи управ‑
ления. Кооперативная многозадачность при‑
менялась в семействе ОС Windows 3.x.
Вытесняющая и кооперативная концеп‑
ции многозадачности объединяются вместе 
в гибридной многозадачности, когда вызов 
планировщика происходит каждый квант 
времени, но, в отличие от вытесняющей 
многозадачности, программист имеет воз‑
можность сделать это принудительно в теле 
задачи. Особенно полезен этот режим, ког‑
да необходимо сократить время реакции си‑
стемы на прерывание. Допустим, в текущий 
момент выполняется низкоприоритетная за‑
дача, а высокоприоритетная ожидает насту‑
пления некоторого прерывания. Далее про‑
исходит прерывание, но по окончании ра‑
боты обработчика прерываний выполнение 
возвращается к текущей низкоприоритетной 
задаче, а высокоприоритетная ожидает, пока 
закончится текущий квант времени. Однако 
если после выполнения обработчика преры‑
вания передать управление планировщику, 
то он передаст управление высокоприори‑
тетной задаче, что позволяет значительно со‑
кратить время реакции системы на прерыва‑
ние, связанное с внешним событием.
Для оценки затрат времени, вносимых 
планировщиком FreeRTOS, можно срав‑
нить два распространенных семейства МК: 
PIC и AVR. Затраты времени складываются 
из времени переключения контекста, когда 
планировщик определяет задачу для выпол‑
нения в следующем кванте времени, и вре‑
мени сохранения/восстановления контекста, 
когда текущее состояние задачи (регистры 
процессора) сохраняется/извлекается из сте‑
ка (таблица 2). Замеры приведены для ком‑
пиляторов MPLAB PIC18 compiler и WinAVR 
соответственно, уровень оптимизации — 
максимальный по скорости.
Для того чтобы оценить объем ОЗУ, тре‑
буемый для работы FreeRTOS, достаточно 
привести расчет расхода ОЗУ для следующей 
конфигурации:
1. Порт для процессоров ARM7, среда раз‑
работки IAR STR71x.
2. Полная оптимизация (Full optimization) 
включена.
3. Все компоненты FreeRTOS, кроме сопро‑
грамм и трассировки, включены.
4. 4 приоритета задач.
Объемы расхода ОЗУ для такой конфигу‑
рации приведены в таблице 3.
Расход ОЗУ будет существенно ниже при 
работе FreeRTOS на 8‑ и 16‑битных архитек‑
турах.
Кроме самой FreeRTOS, существуют 
также ее коммерческие версии: SafeRTOS 
и OpenRTOS. SafeRTOS — это ОСРВ, соот‑
ветствующая уровню функциональной без‑
опасности SIL3, имеющая такую же функ‑
циональную модель, что и FreeRTOS, и ори‑
ентированная на применение в системах 
с высокими требованиями к безопасности, 
например в медицинской и аэрокосмической 
отраслях. OpenRTOS отличается от FreeRTOS 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет