priority inversion, 也就是优先级反转的意思,当低优先级的线程阻塞高优先级的线程的现象就成为优先级反转。
假设有三个线程:线程0( 低优先级)线程1(中等优先级)线程2(高优先级)
线程0 和线程2需要共享一段critical section。线程0先进入critical section,在没有离开的时候,线程1抢占了线程0. 当优先级最高的线程2需要抢占的时候,由于线程0还在critical section内,所以一直被阻塞。 只要线程1一直运行,线程0就没有机会离开critical section,优先级最高的线程2就一直被阻塞着。
http://blog.csdn.net/computerhenu/article/details/5861057
上面这篇文章讲的和透彻。
TI 的sysbios就是采用priority inheritance的方式来避免priority inversion。使用GateMutexPri而不是GateMutex来避免priority inversion