在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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ò) 收藏


            將任務(wù)放入

            在這種方法中,用一個(gè)字節(jié)的最高兩位存放索引信息(對(duì)應(yīng)于圖5中的OSRdyXY),則意味著將就緒



            表分為4個(gè)部分,因此,若要將任務(wù)放入,首先要通過索引信息確定任務(wù)中的哪個(gè)部分,然后再通過行和列信息確定任務(wù)的具體位置。其中,變量OSRdyXY,OSRdyGrp[]以及OS2RdyTbl0[]~OSRdyTbl3[]的關(guān)系如圖5所示,圖中的數(shù)字0~255僅為清楚起見表示索引信息或任務(wù),并非實(shí)際存放的狀態(tài)信息。

            將就緒任務(wù)放入就緒表的具體代碼可用如下方法實(shí)現(xiàn):
            OSRdyXY=prio> > 6;
            OSRdyGrp[OSRdyXY]| =OSMapTbl[prio> > 3];
            if (OSRdyXY==0X00)
             OSRdyTbl0[prio> > 3]| =OSMapTbl[prio 0X07];
            if (OSRdyXY==0X01)
             OSRdyTbl1[(prio> > 3) 0X07]| =OSMapTbl[prio 0X07];
            if (OSRdyXY==0X02)
             OSRdyTbl2[(prio> > 3) 0X07]| =OSMapTbl[prio 0X07];
            if (OSRdyXY=0X03)
             OSRdyTbl3[(prio> > 3) 0X07]| =OSMapTbl[prio 0X07];
            其中,char OSMapTbl[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80} ,prio表示任務(wù)的優(yōu)先級(jí)。

            從就緒表中刪除任務(wù)

            當(dāng)任務(wù)脫離就緒態(tài)時(shí),可以用下面的代碼對(duì)存放該任務(wù)優(yōu)先級(jí)的變量中的相應(yīng)位清零:
            OSRdyXY=prio> > 6;
            if (OSRdyXY==0X00)
             if ( (OSRdyTbl0[prio> > 3] =~OSMapTbl[prio 0X07]) ==0)
              OSRdyGrp[OSRdyXY] =~OSMapTbl[prio> > 3];
            if (OSRdyXY==0X01)
             if ( (OSRdyTbl1[(prio> > 3) 0X07] =~OSMapTbl[prio 0X07]) ==0)
              OSRdyGrp[OSRdyXY] =~OSMapTbl[prio> > 3];
            if (OSRdyXY==0X02)
             if ( (OSRdyTbl2[(prio> > 3) 0X07] =~OSMapTbl[prio 0X07]) ==0)
              OSRdyGrp[OSRdyXY] =~OSMapTbl[prio> > 3];
            if (OSRdyXY==0X03)
             if ( (OSRdyTbl3[(prio> > 3) 0X07] =~OSMapTbl[prio 0X07]) ==0)
              OSRdyGrp[OSRdyXY] =~OSMapTbl[prio> > 3];

            判定最高優(yōu)先級(jí)就緒任務(wù)的方法

            使用以上方法建立就緒表之后,我們?nèi)匀豢梢岳迷械膬?yōu)先級(jí)判定表格OSUnMapTbl ( [256]) ,對(duì)最高優(yōu)先級(jí)就緒任務(wù)進(jìn)行查找,并且不需要象第一種方法那樣增加變量。具體的查找算法如下:
            if ( (OSRdyGrp[0] 0XFF) ! =0) {
             y=OSUnMapTbl[OSRdyGrp[0]];
             x=OSUnMapTbl[OSRdyTbl0[y]];
             prio=( y 3) + x;}
            else if ( (OSRdyGrp[1] 0XFF) ! =0) {
              y=OSUnMapTbl[OSRdyGrp[1]];
              x=OSUnMapTbl[OSRdyTbl1[y]];
              prio=( y 3) + x+ 64;}

              else if ( (OSRdyGrp[2] 0XFF) ! =0) {
               y=OSUnMapTbl[OSRdyGrp[2]];
               x=OSUnMapTbl[OSRdyTbl2[y]];
              prio=( y 3) + x+ 128;}
               else{
                y=OSUnMapTbl[OSRdyGrp[3]];
                x=OSUnMapTbl[OSRdyTbl3[y]];
                prio=( y 3) + x+ 192;}
            兩種方法的比較

            上面詳細(xì)介紹了擴(kuò)展μC/OS2Ⅱ內(nèi)核可管理任務(wù)數(shù)目的兩種方法。下面從幾個(gè)方面討論兩種改進(jìn)的調(diào)度算法的優(yōu)劣。首先,從代碼數(shù)量上看,第一種方法代碼數(shù)量要遠(yuǎn)少于第二種方法,這也就意味著第一種方法的代碼平均執(zhí)行時(shí)間必然少于第二種方法的代碼執(zhí)行時(shí)間;其次,從把就緒任務(wù)放入就緒表的所用時(shí)間來看,第一種方法可以直接確定位置,將就緒任務(wù)放入就緒表,而第二種方法中,必須順序查找,然后才能確定就緒任務(wù)在就緒表中的位置,第一種方法所用時(shí)間明顯少于第二種方法;最后,從查找最高優(yōu)先級(jí)就緒任務(wù)所需的時(shí)間來看,第一種方法通過變量ox和oy直接確定所有就緒任務(wù)中的哪一個(gè)任務(wù)優(yōu)先級(jí)最高,而第二種方法必須從最高優(yōu)先級(jí)開始順序查找,直到找到第一個(gè)處于就緒狀態(tài)的任務(wù)才結(jié)束查找,這種方法花費(fèi)的時(shí)間顯然要比第一種方法多。是否能夠快速判定最高優(yōu)先級(jí)就緒任務(wù)是整個(gè)調(diào)度算法的最關(guān)鍵問題,因此通過以上分析,可以看出第一種方法顯然要大大優(yōu)于第二種方法。

            綜上所述,我們?cè)诶?μC/OS2Ⅱ源碼公開的基礎(chǔ)上,對(duì)原有的內(nèi)核任務(wù)優(yōu)先級(jí)調(diào)度算法進(jìn)行修改,介紹了兩種不同的方法把可管理任務(wù)從原來的64個(gè)增加到256個(gè),使其可應(yīng)用于多于64個(gè)任務(wù)的復(fù)雜的工程項(xiàng)目開發(fā)。并且通過比較得出結(jié)論,第一種算法要優(yōu)于第二種算法,第一種算法在理論上更簡(jiǎn)潔清楚,并且更加易于實(shí)現(xiàn),已經(jīng)在實(shí)際的開發(fā)中得到應(yīng)用。


            上一頁 1 2 3 4 下一頁

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉