这会导致类似于优先级倒置的问题吗?

时间:2019-04-02 06:23:09

标签: multithreading priority-inversion

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

但是,假设我的线程以30的优先级运行。 写操作我将优先级更改为5。这并不意味着 优先级为10的其他线程可以阻止我的线程 通常优先级为30。

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

1 个答案:

答案 0 :(得分:0)

只有当使用prio 10的任务也要使用该文件,而使用prio 5的任务会阻塞资源时,才给出优先级反转的方案。否则,使用prio 5的任务会以其他任何方式阻止prio 10的任务。

我明白了为什么您要降低使用IO写入文件的任务的优先级。因此,您不必等待IO操作即可锁定系统。但是,如果要防止prio反转,则当较高的prio任务要超出同一文件时,必须增加优先级。