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


is running”) (рис. 10), после чего выполняет  API-функцию vTaskDelay()



Pdf көрінісі
бет26/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   22   23   24   25   26   27   28   29   ...   129
Kurniz

is running”) (рис. 10), после чего выполняет 
API-функцию vTaskDelay(), в результате чего 
Задача 2 переходит в блокированное состоя-
ние. После вызова функции vTaskDelay() вы-
полняемая в данный момент Задача 2 пере-
шла в блокированное состояние и не нуж-
дается в процессорном времени, поэтому 
для того чтобы занять процессор другой за-
дачей, функция vTaskDelay() вызывает пла-
нировщик. Теперь в списке готовых к вы-
полнению задач осталась только Задача 1, 
которой планировщик и отдает управление 
(момент времени (2)). Задача 1 выполня-
ет свою полезную работу: также вызыва-
ет API-функцию vTaskDelay() и переходит 
в блокированное состояние (момент вре-
мени (3)). В этот момент нет ни одной зада-
чи, готовой к выполнению, поэтому плани-
ровщик вызывает системную задачу, которая 
не выполняет никакой полезной работы, — 
задачу Бездействие (4). Подробнее о задаче 
Бездействие будет сказано ниже.
На протяжении времени, когда Задача 1 
и Задача 2 находятся в блокированном состоя-
нии, кроме выполнения задачи Бездействие, 
ядро FreeRTOS отсчитывает кванты време-
ни, прошедшие с моментов вызовов API-
функции vTaskDelay(). Как только ядро от-
считает 1000 квантов (1000 мс), оно переведет 
Задачу 1 из блокированного в состояние готов-
ности к выполнению (момент времени (5)). 
Планировщик отдаст ей управление, она вы-
полнит полезную работу и снова перейдет 
в блокированное состояние на время 1000 мс 
и т. д. Задача 2 будет находиться в блокирован-
ном состоянии на протяжении 3000 мс. В мо-
мент времени (7) из блокированного состоя-
ния в состояние готовности к выполнению 
перейдут обе задачи, однако планировщик 
запустит (переведет в состояние выполнения) 
Задачу 2, так как приоритет у нее выше.


Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   129




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

    Басты бет