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


Гибридная многозадачность во FreeRTOS



Pdf көрінісі
бет43/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   39   40   41   42   43   44   45   46   ...   129
Kurniz

Гибридная многозадачность во FreeRTOS
Гибридная многозадачность сочетает 
в себе автоматический вызов планиров-
щика каждый квант времени, а также воз-
можность принудительного, явного вызова 
планировщика. Полезной гибридная мно-
гозадачность может оказаться, когда необ-
ходимо сократить время реакции системы 
на прерывание. В этом случае в конце тела 
обработчика прерывания производят вызов 
планировщика, что приводит к переключе-
нию на задачу, ожидающую наступления 
этого прерывания.
API-функция portYIELD_FROM_ISR() слу-
жит для вызова планировщика из тела обра-
ботчика прерывания. Более подробно о ней 
будет рассказано позже, при изучении двоич-
ных семафоров.
Какого-либо специального действия для 
включения режима гибридной многозадач-
ности не существует. Достаточно разрешить 
вызов планировщика каждый квант времени
(макроопределение configUSE_PREEMPTION
в файле FreeRTOSConf ig.h должно быть 
равным 1) и в явном виде вызывать плани-
ровщик в функциях, реализующих задачи, 
и в обработчиках прерываний с помощью 
API-функций taskYIELD() и portYIELD_
FROM_ISR() соответственно.
Вытесняющая многозадачность
без разделения времени
Ее идея заключается в том, что вызов 
планировщика происходит только в обра-
ботчиках прерываний. Задача выполняется 
до тех пор, пока не произойдет какое-либо 
прерывание. После чего она вытесняется за-
дачей, ответственной за обработку внешнего 
события, связанного с этим прерыванием. 
Таким образом, задачи не сменяют друг дру-
га по прошествии кванта времени, это про-
исходит только по внешнему событию.
Такой тип многозадачности более эффек-
тивен в отношении производительности, чем 
вытесняющая многозадачность с разделени-
ем времени. Процессорное время не тратится 
впустую на выполнение кода планировщика 
каждый квант времени.
Для использования этого типа много-
задачности макроопределение configUSE_


Достарыңызбен бөлісу:
1   ...   39   40   41   42   43   44   45   46   ...   129




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

    Басты бет