这两天看任哲ucosII有点疑惑。书上说互斥信号量有优先级反转的问题,但是信号量好像也有优先级反转的问题。
假设这个事件是信号量CNT=2,最开始是任务D先占用这个资源后CNT=1,然后任务C又占用一次CNT=0。
接着任务A又要占用该资源,但是资源占用数量已经满了,只能等待。CPU回到任务C,还没等释放资源,
任务B又抢占了CPU,而任务B并不用到该资源,所以直接执行。此时就发生了优先级反转。
我上面说的这种情况应该算是一种极端的情况吧。书上并没有提到这个问题,或者是我哪里理解错误了,
请大家多指教
|