【问题标题】:Can this lead to an issue similar to priority inversion这会导致类似于优先级倒置的问题吗
【发布时间】:2019-08-23 09:19:58
【问题描述】:

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

但是,假设我的线程以 30 的优先级运行。在文件期间 写操作我把优先级改成5。这不是说一个 其他优先级为 10 的线程可以阻塞我的线程 通常优先级为 30。

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

【问题讨论】:

  • 为了清楚起见,数字越大,prio 越高?

标签: multithreading priority-inversion


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    相关资源
    最近更新 更多