0

我的项目有一个做法是在写入文件时降低线程的优先级,并在写入操作完成后将其改回。这样做是因为文件写入操作可能会占用重要的资源、时间并限制其他重要线程执行其任务。

但是,假设我的线程以 30 的优先级运行。在文件写入操作期间,我将优先级更改为 5。这是否意味着其他优先级为 10 的线程可以阻塞我通常优先级为 30 的线程.

我知道这听起来像是优先级倒置,但在我的研究中,优先级倒置场景通常涉及一个关键部分,但我的场景不涉及一个。我们的应用程序使用 RR 调度策略,但操作系统(QNX)同时使用 RR 和 FIFO。任何帮助表示赞赏。

4

1 回答 1

0

只有当您的 prio 10 任务也想使用该文件并且 prio 5 的任务阻塞资源时,才会给出优先级反转的场景。或者prio 10的任务被prio 5的任务以任何其他方式阻止。

我明白您为什么要降低使用 IO 写入文件的任务的优先级。所以你不会用等待 IO 操作来锁定你的系统。但是如果你想防止优先级倒置,当更高优先级的任务想要超过同一个文件时,你必须增加优先级。

于 2019-04-02T06:31:32.500 回答