2013-04-02 2 views
0

Почему у RTOS нет реализации, чтобы предотвратить инверсию приоритета для семафора, даже если она существует для мьютекса.инверсия приоритета семафора

Семафоры не должны предотвращать инверсию приоритета?

Такая же ситуация происходит как на UC/OS, так и на ОСРВ GreenHills.

Заранее спасибо.

ответ

0

Приоритет инверсия происходит при низкой первоочередной задачи принадлежит семафор, и приоритетная задача вынужден ждать семафора до тех пор, низким приоритетом выпусками задач его. Если до освобождения семафора задача с низким приоритетом вытеснена одной или несколькими задачами с приоритетным приоритетом, , то происходит инверсия неограниченного приоритета, поскольку задержка приоритетной задачи более не предсказуема. Это поражает конечный срок Монотонный анализ (DMA), потому что невозможно предсказать, будет ли приоритетная задача выполнить ее предельный срок.

Обмен критическим ресурсом между задачами с высоким и низким приоритетом не является желательной практикой проектирования. Лучше разделить ресурс только среди равных приоритетных задач или ограничить доступ ресурсов к одной задаче сервера ресурсов . Примерами являются задача сервера печати и задание сервера . Мы давно выступаем за эту практику. Тем не менее, с использованием слоев все более разнообразного и сложного промежуточного программного обеспечения на ОСРВ становится нецелесообразным применять такие простые стратегии. Следовательно, в интересах безопасности лучше всего реализовать какой-либо метод для предотвращения неограниченной инверсии приоритета.

Проверить полную ссылку на http://www.smxrtos.com/articles/techppr/mutex.htm

С уважением,

Отакон

+1

Я понимаю, семафор используется для подсчета ресурса в то время как мьютекс предназначен для критической области блокировки. вот почему, благодаря вашей информации. –

Смежные вопросы