Рассмотрим более подробно результат работы операционной системы реального времени.
В системе есть три задачи. Две, из которых работают с семафором (Task1, Task3) и одна задача устанавливает события (Task2).
После запуска операционной системы происходит запуск первой задачи с нулевым приоритетом. Запуск включает в себя: активизацию, проверку задачи, планирование и диспетчеризацию. Во время проверки задачи происходит проверка номера задачи, её приоритета. В случае если какой-либо элемент задачи является неправильным, то произойдет экстренное завершение ОСРВ.
Первая задача запускает задачу 2 и 3 с приоритетами 1 и 2 соответственно. Так как реализован невытесняемый тип планирования, то задачи, запускаемые другой задачей не начинают выполняться сразу, а только активизируются, проверяются и планируются. Далее задача 1 захватывает семафор, так как он свободен перехода в состояние waiting не происходит. В маске ожидаемых событий устанавливаются события с номерами 1 и 2, т. е. задача начинает ждать их появления, при этом происходит перевод данной задачи в состояние waiting, сохранение контекста и стека вызовов. Вслед з…