У меня есть опыт работы с несколькими RTOS (pSOS, VxWorks, QNX), однако я новичок в MicroC/OS II (ucos ii). Я вижу, что что-то уникальное в ucos ii вместо того, чтобы иметь уникальный идентификатор для задач, он использует приоритет для уникальной идентификации задач и что все задачи должны быть с разными приоритетами, и поэтому циклическое планирование ролей не поддерживается. Я так понимаю. Возникает вопрос:Изменение приоритета в MicroC/OS II (ucos ii) Изменение идентификатора задачи?
Если я изменяю приоритет задачи с помощью OSTaskChangePrio(), это не вызывает проблем для любого кода или других задач, которые сохранили приоритет (идентификатор задачи) задачи, которая только что изменила свой приоритет. Фактически изменение приоритета изменяет идентичность задачи. Как это не проблема?
Как раз один пример, я могу захотеть, чтобы задача, запускающая другие задачи, уменьшала ее приоритет, когда это было сделано. Разрешение задачи эффективно изменять свой идентификатор задачи означает, что я не могу зависеть от использования этого как способа идентификации задачи. Я также обнаружил, что неясно, когда ucos ii делает инверсию приоритета, действительно ли она изменяет идентификатор задачи (приоритет), как видно из других задач. То есть, если я пытаюсь использовать исходный идентификатор задачи (приоритет), в то время как происходит инверсия приоритета, чтобы идентифицировать, что задача вызывает вызов ОС, поскольку в этот момент ни одна задача не имеет идентификатор задачи (приоритет)? – JonN