Цитата(yuri_t @ Aug 24 2005, 22:10)
IMHO,не стоит играться с изменениями приоритетов "на лету"
в real-time OS т.к. решая таким образом проблему блокировок,
можно словить весьма неприятные проблемы с приоритетом -
задачи которые должны получать наибольшее время процессора
будут получать малопредсказуемый piece of time ).
Всегда считал с точностью до наоборот, и практические результаты это подтверждают. Это уже механизмы ОС должны следить за корректностью изменений приоритетов.
А как быть в этом случае ?
"The high priority task must block until the low priority task releases the resource. This
problem is exacerbated when the low priority task is prevented from executing by one or
more medium priority tasks. Because the low priority task is not executing, it cannot
complete its interaction with the resource and release that resource. The high priority task
is effectively prevented from executing by lower priority tasks."
В приложениях со сложной логикой такие проблемы сплошь и рядом.
И вручную их трудно предугадать и разрешить, приходится надеятся на правильность ОС.
IMHO простейший Mutex как в UCOS многим не помешал бы, если не сейчас, так на вырост, по мере усложнения программы.