Available Languages?:

OSA : Планировщик

Сервис OS_Run() - это макрос, который содержит бесконечный цикл с работой планировщика. Этот сервис вызывается в самом конце функции main() и полностью передает управление ядру OSA. Планировщик отвечает за проверку готовности задач к выполнению, определение задачи с наивысшим приоритетом (из готовых) и за запуск задач. Вызов сервиса OS_Run() может располагаться только в одном месте программы, т.к. он содержит глобальные метки для возврата из задач.

Планировщик по очереди перебирает все активные задачи, проверяя их готовность и одновременно вычисляя задачу с высшим приоритетом. Если была найдена одна или несколько готовых задач, то из них выбирается та, у которой приоритет выше, и ей передается управление. Подробнее о приоритетах см. "События и проиритетность".

Исключение составляет работа в критической секции. OSA допускает передачу управления планировщику из задачи, выполняющейся в критической секции. Планировщик, определив, что находится в критической секции, не осуществляет поиск готовых задач, а сразу же передает управление последней выполнявшейся задаче.

 
osa/ref/description/scheduler.txt · Последние изменения: 18.01.2011 16:47 От osa_chief
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki