在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > μC/OS2Ⅱ中優(yōu)先級(jí)調(diào)度算法的改進(jìn)及實(shí)現(xiàn)

            μC/OS2Ⅱ中優(yōu)先級(jí)調(diào)度算法的改進(jìn)及實(shí)現(xiàn)

            作者: 時(shí)間:2012-04-06 來源:網(wǎng)絡(luò) 收藏


            該算法在擴(kuò)展了系統(tǒng)可管理任務(wù)數(shù)目的同時(shí),考慮了如何在任務(wù)數(shù)目增大時(shí),還能夠快速進(jìn)行最高就緒任務(wù)判定的問題,并給出了一種快速的判定方法。在介紹判定最高就緒任務(wù)的方法之前,先描述μC/OS2Ⅱ中原有的判定表格OSUnMapTbl ( [256]),該表格為16×16的數(shù)組,每個(gè)數(shù)組元素的值是固定的。當(dāng)使用該表格時(shí),數(shù)組下標(biāo)轉(zhuǎn)換為相應(yīng)的八位二進(jìn)制,其中高四位對(duì)應(yīng)數(shù)組的行,低四位對(duì)應(yīng)數(shù)組的列(假設(shè)最右邊的一位是第0位bit0) ,由此就可查表判斷一組任務(wù)就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的那個(gè)任務(wù)所在的位置(查表后返回的值在0到7之間) ,再經(jīng)過計(jì)算,就可得到最高優(yōu)先級(jí)就緒任務(wù)的優(yōu)先級(jí)。

            為了減少不必要的工作,在判定最高優(yōu)先級(jí)就緒任務(wù)的方法中,利用了上面介紹的優(yōu)先級(jí)判定表格OSUnMapTbl ( [256]) ,把改進(jìn)后的優(yōu)先級(jí)看作一個(gè)類似二維坐標(biāo)的平面(如圖3所示) ,使256個(gè)



            任務(wù)優(yōu)先級(jí)平均分布在4個(gè)象限中(圖中的數(shù)字0~255表示256個(gè)任務(wù)優(yōu)先級(jí),每個(gè)位置實(shí)際存放的是任務(wù)優(yōu)先級(jí)的狀態(tài)信息) ,同時(shí)使用了兩個(gè)變量ox和oy來共同確定任務(wù)的優(yōu)先級(jí)所在象限,并由此進(jìn)一步查找最高優(yōu)先級(jí)的就緒任務(wù)。

            變量ox和oy的取值情況如圖3所示,下面的查找最高優(yōu)先級(jí)算法首先從判斷優(yōu)先級(jí)所在的象限開始進(jìn)行查找。具體代碼如下:
            oy=OSRdyGrp 0X00FF ;
            if ( oy==0)
             y=OSUnMapTbl[OSRdyGrp> > 8]+ 8;
            else
             y=OSUnMapTbl[oy];
            ox=OSRdyTbl[y] 0X00FF ;
            if ( ox==0)
             x=OSUnMapTbl[OSRdyTbl[y]> > 8]+ 8;
            else
             x=OSUnMapTbl[ox];
            prio=( y 4) + x;

            例如,如果OSRdyGrp的值為0X0068,則利用上面的代碼,首先可以判斷oy! =0,則查優(yōu)先級(jí)判定表格得到OSUnMapTbl[oy]的值為3,假設(shè)OSRdyTbl[3]的值為0X00E4,則可判斷ox! =0,再查優(yōu)先級(jí)判定表格得到OSUnMapTbl[ox]的值為2,最后計(jì)算得到任務(wù)的優(yōu)先級(jí)prio為50。

            μC/OS2Ⅱ中優(yōu)先級(jí)調(diào)度算法的第二種改進(jìn)方法

            在μC/OS2Ⅱ中,原來的優(yōu)先級(jí)調(diào)度算法只使用了一個(gè)字節(jié)中的6位,剩余兩位空閑。在第一種改進(jìn)方法中,我們是直接擴(kuò)展了定位就緒任務(wù)優(yōu)先級(jí)在中位置的行和列信息的比特位。現(xiàn)在介紹的第二種方法是利用原來存放優(yōu)先級(jí)的字節(jié)中剩余的兩位作為索引,重建,使任務(wù)優(yōu)先級(jí)擴(kuò)展到256個(gè)。這里需要增加一個(gè)變量OSRdyXY,用于存放索引信息,另外還要使用變量OSRdyGrp[]存放任務(wù)優(yōu)先級(jí)的行信息,OSRdyTbl0[ ],OSRdyTbl1[ ],OSRdyTbl2[ ]和OSRdyTbl3[ ]4個(gè)8位數(shù)組用于存放每個(gè)優(yōu)先級(jí)的任務(wù)是否就緒的信息。這種方法的任務(wù)優(yōu)先級(jí)字節(jié)的定義如圖4所示。


            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉