linux rt mutex是什么意思

linux rt mutex是什么意思,第1张

最近在看linux rtmutex部分的实现过程,就像他注释中写的一样,还是比较简单的。其中比较复杂的部分就是关于任务优先级继承的部分。

首先介绍优先级反转的背景。

何为优先级反转?通俗来说就是低优先级的任务抢占了高优先级的运行权。下面举出一个优先级翻转的场景。

系统中有三个具有不同优先级的任务A,B,C。其中A的优先级最高,B次之,C的优先级最低。系统中A与C共享一个资源,此时C任务先就绪获得此资源的使用权限,这时A任务就绪,也想使用此资源,但是由于C已经在访问状态,所以A被阻塞。此时B任务就绪,如果系统中无优先级翻转处理等机制,那么B任务就会剥夺C任务的运行权限,从而也就剥夺了A任务的运行权限,这样稍低优先级的任务就抢占了高优先级的任务。此种现象就是优先级翻转问题。

解决优先级翻转的问题通常有几种,一种是优先级继承方式,还有就是天花板方式。

1. 优先级继承方式是指在有任务阻塞到相应共享资源时,所获得资源的任务继承被阻塞任务的优先级,当然只是继承更高的优先级,小于等于的无视。在上例中就为A获得资源被C阻塞时,C任务继承A任务的高优先级,这样B再就绪时就不会抢占C的运行权,从而就避免了优先级翻转现象。

2. 优先级天花板办法,就是将获得共享资源时,直接提升任务的优先级到可以获得此种资源的最高优先级。在上例中,当C获得此资源时,直接升到最高的优先级,如果系统中只有A,C使用此资源,那么就升级到A的优先级,这样B就绪时也无法抢占C的运行权,从而避免了优先级反转现象。

两者的区别主要在获得优先级提升的时间,前者在有高优先级任务发生阻塞时,后者是直接在获得资源时提升优先级。

linux下调整进程优先级 进程的优先级决定了进程是否优先被cpu分配资源进行处理。 在cpu资源十分充足时,每个正在运行的进程都能分配到足够的资源进行处理,此时调整进程的优先级是没有什么意义的; 如果cpu资源紧张时,top查看cpu使用达到90%以...


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8896430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存