c - 为什么抢占不能解决优先级倒置?

标签 c embedded microcontroller rtos

我想知道为什么抢占不能解决优先级倒置问题
如果我们有抢占式内核。那为什么优先级反转问题没有解决呢?

最佳答案

好的,假设我们有两个进程。我们还假设优先级较低的进程获得了锁。当优先级更高的进程就绪时,它会抢占其他进程。如果优先级较高的进程需要该锁,则由于其他优先级较低的进程而无法获得它。这意味着,优先级较低的进程会阻塞优先级较高的进程。它阻止更高优先级的进程运行。这称为“优先级反转”。

显然,抢占不是优先级倒置的解决方案。解决方案是“优先继承”。这意味着我们应该在进程获得更高优先级进程也需要的锁时临时增加进程的优先级。它应该是可能需要相同锁的其他进程中优先级最高的进程。

关于c - 为什么抢占不能解决优先级倒置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339182/

相关文章:

objective-c - 从 Swift 调用可变参数 Objective-C 函数

c - 在c中生成一个1到10之间的随机数

c - matlab 上的旧 gcc 编译器

c++ - 动态内存分配故障恢复

java - 在嵌入式 linux 上启动后自动在后台启动 java 应用程序

assembly - 端口映射、内存映射

c - 定点二进制到 LCD

c - 在哪里可以找到软乘法和除法算法?

c - 用于文件传输的选择性重复协议(protocol)

embedded - Arduino 由于 PC 高速 USB 通信