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


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



Pdf көрінісі
бет101/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   97   98   99   100   101   102   103   104   ...   129
Kurniz

100
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 9 '2011
компоненты
микроконтроллеры
void vApplicationIdleHook(void) {
/* Так как задача Бездействие не выполняет других действий,
то вызов vCoRoutineSchedule() размещен внутри бесконечного 
цикла.*/
for (;;) {
vCoRoutineSchedule();
}
}
Результаты работы учебной программы 
№ 1 приведены на рис. 2. На рис. 2 видно, что 
сообщения на дисплей выводят обе сопро-
граммы, следовательно, каждая из них по-
лучает процессорное время. На рис. 3 пред-
ставлено разделение процессорного вре-
мени между сопрограммами.
Сопрограммы выполняются в режиме 
кооперативной многозадачности, поэтому 
текущая сопрограмма выполняется до тех 
пор, пока не произойдет явное переключе-
ние на другую сопрограмму. На протяжении 
времени 0…t1 будет выполняться только 
Сопрограмма 1, а именно будет выполняться 
продолжительный по времени пустой цикл 
(рис. 3). Как только пустой цикл Сопрограммы 
1 будет завершен, в момент времени t1 прои-
зойдет явное переключение на другую сопро-
грамму. В результате чего управление получит 
Сопрограмма 2 на такой же продолжительный 
промежуток времени — t1…t2.
Следует обратить внимание на обязатель-
ный вызов API-функции crDELAY(xHandle, 0)
благодаря которому происходит принуди-
тельное переключение на другую сопрограм-
му и, таким образом, реализуется принцип 
кооперативной многозадачности.
Продемонстрировать важность «ручного» 
переключения на другую сопрограмму можно, 
если исключить из функции Сопрограммы 1 
вызов API-функции crDELAY(). В таком слу-
чае результаты работы программы (рис. 4) 
будут свидетельствовать о том, что процес-
сорное время получает только Сопрограмма 
1. Причиной этому является тот факт, что 
Сопрограмма 1 не выполняет принудительно-
го переключения на другую сопрограмму, что 
является необходимым условием корректной 
работы кооперативной многозадачной среды.


Достарыңызбен бөлісу:
1   ...   97   98   99   100   101   102   103   104   ...   129




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

    Басты бет