Может ли это привести к проблеме, аналогичной инверсии приоритетов? - PullRequest
0 голосов
/ 02 апреля 2019

Мой проект имеет практику уменьшения приоритета потока, в то время как запись в файл и его изменение после операции записи полный. Это сделано потому, что операция записи файла может занять важные ресурсы, время и ограничить другие важные темы от продолжая свои задачи.

Но представьте, что мой поток работает с приоритетом 30. Во время файла Операция записи Я меняю приоритет на 5. Не значит ли это, что другой поток с приоритетом 10 может заблокировать мой поток, который обычно имеет приоритет 30.

Я понимаю, что это звучит как инверсия приоритетов, но во время моего исследование, сценарий инверсии приоритета обычно имеет критическую секцию участвует, но мой сценарий не включает один. Наши приложения используют политику планирования RR, но операционная система (QNX) использует как RR, так и FIFO. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 02 апреля 2019

Сценарий для инверсии приоритета дается только тогда, когда ваша задача с prio 10 также хочет использовать файл, а задача с prio 5 блокирует ресурс. Или задача с prio 10 блокируется задачей с prio 5 любым другим способом.

Я понимаю, почему вы хотите снизить приоритет задачи, используя IO для записи файла. Таким образом, вы не блокируете свою систему ожиданиями операций ввода-вывода. Но если вы хотите предотвратить инверсию prio, вам нужно увеличить приоритет, когда задача с более высоким приоритетом хочет превзойти тот же файл.

...