日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优先级反转和解决方法

發(fā)布時間:2024/4/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优先级反转和解决方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

優(yōu)先級反轉(zhuǎn)的描述:

假設(shè)任務(wù)1,任務(wù)2,任務(wù)3;他們的優(yōu)先級順序分別為1 > 2 > 3。有一個稀缺資源S,S由一個信號量控制為互斥訪問。

  • 任務(wù)3正在執(zhí)行,并申請到了資源S;
  • 任務(wù)1搶占了任務(wù)3的執(zhí)行,任務(wù)3掛起,任務(wù)1執(zhí)行;
  • 任務(wù)1申請資源S,發(fā)現(xiàn)被占用,所以掛起,任務(wù)3恢復(fù)執(zhí)行;
  • 任務(wù)2搶占了任務(wù)3的執(zhí)行,任務(wù)3掛起,任務(wù)2執(zhí)行;
  • 任務(wù)2執(zhí)行完畢,任務(wù)3恢復(fù);
  • 任務(wù)3釋放資源S,任務(wù)1搶占資源S,任務(wù)1執(zhí)行,任務(wù)3掛起;
  • 任務(wù)1執(zhí)行完畢,任務(wù)3執(zhí)行。
  • 以上可以看出,任務(wù)2雖然比任務(wù)1優(yōu)先級低,但是比任務(wù)1優(yōu)先執(zhí)行。也就是說任務(wù)1的優(yōu)先級被降低到了任務(wù)3的級別。


    分析:

    由于稀缺資源S的獨占性,任務(wù)3在申請到資源后,任務(wù)1必然會在任務(wù)3釋放資源后才能執(zhí)行完成。而任務(wù)2肯定會搶占任務(wù)3的執(zhí)行。這個時候,要想任務(wù)1比任務(wù)2之前執(zhí)行,有兩種方法:任務(wù)3釋放資源,任務(wù)2不能搶占任務(wù)3。

    • 任務(wù)3釋放資源。這條路走不通,因為獨占資源沒有操作完成就釋放,要么回滾,要么出錯。(X)
    • 任務(wù)2不能搶占任務(wù)3。提升任務(wù)3的優(yōu)先級高于任務(wù)2就可以了。(V)提高到多少?假如任務(wù)1和任務(wù)5共搶資源S,那么任務(wù)2、3、4都有可能搶去任務(wù)5的執(zhí)行權(quán),所以任務(wù)提升一定要和資源S被申請的最高優(yōu)先級平等或者大于。對于有相同優(yōu)先級的內(nèi)核來說,任務(wù)5提升到任務(wù)1的優(yōu)先級即可,對于優(yōu)先級單一的內(nèi)核,如ucos,就要提升到高一點。

    解決方法:

  • 優(yōu)先級天花板。當(dāng)任務(wù)3使用資源S時,就把任務(wù)3的優(yōu)先級提升到能訪問資源S的最高優(yōu)先級,執(zhí)行完成釋放資源之后,把優(yōu)先級再改回來;這樣的方法,簡單易行,解決了多個高優(yōu)先級任務(wù)搶占資源S的問題。但是帶來了一些缺點,就是不一定每次都有高優(yōu)先級任務(wù)搶占資源S,每次都提升優(yōu)先級是對CPU資源的一種浪費。
  • 優(yōu)先級繼承。當(dāng)任務(wù)3使用資源S時,任務(wù)1搶占執(zhí)行權(quán),申請資源S,比較資源1和資源3的優(yōu)先級,假如任務(wù)1優(yōu)先級高,才提升任務(wù)3,提升到和任務(wù)1相同的優(yōu)先級,當(dāng)任務(wù)3釋放資源后,將優(yōu)先級再調(diào)整回來。相對于優(yōu)先級天花板方法,相當(dāng)于延后執(zhí)行,克服了任務(wù)1的缺點,自己本身的特點是,邏輯復(fù)雜,需要操作系統(tǒng)支持相同優(yōu)先級。在ucos中不容易實現(xiàn)。
  • 兩者結(jié)合的方案:當(dāng)任務(wù)3使用資源S時,任務(wù)1搶占執(zhí)行權(quán),申請資源S,比較資源1和資源3的優(yōu)先級,假如任務(wù)1優(yōu)先級高,才提升任務(wù)3,提升到能訪問資源S的最高優(yōu)先級,當(dāng)任務(wù)3釋放資源后,將優(yōu)先級再調(diào)整回來。
  • 總結(jié)

    以上是生活随笔為你收集整理的优先级反转和解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。