-
- Но задача, установившая семафор, потеряет управление в момент установки семафора, независимо от соотношения ее приоритета с приоритетом ожидающих? - AlexBi(29.10.2014 17:55)
- Конечно, т.к. семафор используется для синхронизации между задачами. Если семафор ожидают две задачи, то управление будет передано той, которая имеет более высокий приоритет - Alex B.(06.11.2014 22:48 - 22:50)
- Нет, условия другие, задача с большим приоритетом выполняется и устанавливает семафор, который ожидает задача с меньшим приоритетом, но задача с большим приоритетом все равно теряет управление, не смотря на соотношение приоритетов, и запускается AlexBi(417 знак., 07.11.2014 10:44)
- Догадка верна. Я не понимаю, что вас смущает. Синхронизация между задачами важнее их приоритетов. Приоритеты задач вступают в силу, когда есть несколько задач в очереди готовых к выполнению. В противном случае у вас запустилась бы самая Alex B.(63 знак., 07.11.2014 13:55)
- синхронизация между задачами решается учётом инверсии приоритетов. этот учёт должен быть в коде переключателя задач. а самая приоритетная задача может заблокировать работу других, если ей нужно. на то она и самая приоритетная. - Mahagam(08.11.2014 12:19)
- Мне кажется приоритеты нужны. Например есть задача обработки пакета, принятого по СОМ-порту, и отправка ответа. Время уходящее на обработку 1-2мс. И есть задача обработки нажатия на кнопку, время ее работы может быть 50-100мс. Кажется логичным, AlexBi(554 знак., 07.11.2014 18:16)
- TNKernel здесь ни при чем, виноваты вот эти товарищи :-) -> il-2(506 знак., 25.12.2014 11:32, ссылка)
- Догадка верна. Я не понимаю, что вас смущает. Синхронизация между задачами важнее их приоритетов. Приоритеты задач вступают в силу, когда есть несколько задач в очереди готовых к выполнению. В противном случае у вас запустилась бы самая Alex B.(63 знак., 07.11.2014 13:55)
- Нет, условия другие, задача с большим приоритетом выполняется и устанавливает семафор, который ожидает задача с меньшим приоритетом, но задача с большим приоритетом все равно теряет управление, не смотря на соотношение приоритетов, и запускается AlexBi(417 знак., 07.11.2014 10:44)
- Конечно, т.к. семафор используется для синхронизации между задачами. Если семафор ожидают две задачи, то управление будет передано той, которая имеет более высокий приоритет - Alex B.(06.11.2014 22:48 - 22:50)
- Но задача, установившая семафор, потеряет управление в момент установки семафора, независимо от соотношения ее приоритета с приоритетом ожидающих? - AlexBi(29.10.2014 17:55)