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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uc/os-ii中最高优先级计算(如何查表)

發(fā)布時間:2025/3/21 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uc/os-ii中最高优先级计算(如何查表) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 為什么要引入優(yōu)先級表?

? ? Answer:uc/os-ii是個講究實時性的操作系統(tǒng),在有多個任務時,系統(tǒng)需要選擇這些任務中優(yōu)先級最高的任務進行調度。如果單靠計算,有的優(yōu)先級計算費時少,有的很多,實時性得不到保證。如果引入表,我們只要知道表的橫縱坐標就可以直接找到需要的任務,實時性可以得到保證。因此,引入優(yōu)先級表。

  • 優(yōu)先級表(OSUnMapTbl)和就緒表(OSRdyTbl)、就緒組(OSRdyGrp)的關系?如何計算優(yōu)先級?

? ? Answer:實際上是位圖和表格的結合。

????從代碼上看,如下所示:

i = OSUnMapTbl[OSRdyGrp] ;// 找到行號 j = OSUnMapTbl[OSRdyTbl[i]];//找到列號 TaskPrior = 8*i+j=(i<<3)+ j;//找到最高優(yōu)先級號。

? ? 具體解釋為:

1.在OSUnMapTbl表中找到第OSRdyGrp位對應的數(shù)字,該數(shù)字賦值給i,代表優(yōu)先級所在的行號;

2.在OSUnMapTbl表中找到第OSRdyTbl[i] 位對應的數(shù)字,該數(shù)字賦值給j,代表優(yōu)先級所在的列號;

3.看就緒表中i行j列對應的數(shù)值。該數(shù)值為當前任務中最高的優(yōu)先級。

????就緒表如下所示:


這個表是我們將OSRdyGrp和OSRdyTbl二者結合構成的。如下圖:


合成之后就是我們看到的二維的一個表。但是該表實際上并不是以二維形式存在的。

因此,我們在知道橫縱坐標之后,不能直接查表,而是進行一個簡單的計算,即上述代碼語句第三句。將i左移三位,實際上就是i*8(OSRdyTbl是8位,即一行有8位),然后加上在該行的偏移量,也就是j。這樣就可以算出來優(yōu)先級是多少了。這里需要提醒一下:OSRdyTbl坐標是從右往左遞增的順序,不要搞錯了。

具體的操作我們舉個例子來說明一下:

先把相關的圖展示出來:



假設OSRdyGrp=98(d)=01100010(b); ?

????第一步就是在第二個圖所示的表(OSUnMapTbl)中查找第98位的數(shù)字,作為橫坐標。注意一下:98是十進制的,十六進制為0x62。我們鎖定注釋為:/*0x60 to 0x6F*/這一行,從左邊開始數(shù)(第一個數(shù)字數(shù)作0),2對應的表中的數(shù)字就是1u。所以i=1,即橫坐標是1。

? ? 第二步:得到OSRdyTbl[i]對應的值并計算縱坐標。i值第一步計算出來了,所以OSRdyTbl[i]=OSRdyTbl[1]。假設此時OSRdyTbl[1]=01100000(b)=96(d)。我們需要做的就是在OSUnMapTbl表中查找第96位的數(shù)字,查找方式和第一步一樣。可以看到數(shù)值為5u。所以j=5,即縱坐標是5。

? ? 第三步:計算最高優(yōu)先級任務對應的優(yōu)先級。i*8+j=13。所以最高優(yōu)先級任務對應的優(yōu)先級為13。

我們檢驗一下,在第一個圖中拼湊的的二維表中,1行5列的數(shù)值就是13。說明我們計算正確。

可能有人還有疑問:在計算機內我們給的值是什么?難道不直接是優(yōu)先級?

Answer:我們給定的是兩個值:OSRdyGrp和OSRdyTbl值,根據(jù)這兩個值找對應的優(yōu)先級。

又問:為什么不直接給優(yōu)先級然后進行比較找到最高優(yōu)先級任務?

Answer:我們前面提到過,uc/os-ii要保證實時性才引入了表格。在一堆任務中找最高優(yōu)先級任務,如果直接給每個任務的優(yōu)先級,我們就需要兩兩比較,或者將其排序,時間得不到保證。試想一下,如果只有三個任務,找最高優(yōu)先級任務很容易。但如果是30個,300個呢?顯然,用表格查找更符合我們的要求。

還問:那我們怎么從給的兩個值知道所有任務的優(yōu)先級或者說怎樣從這兩個值看出來有幾個任務,各自優(yōu)先級又是多少

Answer:回到上面的例子:OSRdyGrp=0110 0010,OSRdyTbl=0110 0000。OSRdyGrp的第1,5,6位為1,那么就緒組就有3個。OSRdyTbl的第5,6位為1,那么就緒表有2個任務。總共是3*2=6個任務。優(yōu)先級分別是(數(shù)值從低到高):13,14,45,46,53,54。


這里附加介紹一下簡單的找優(yōu)先級的方法:

我們知道優(yōu)先級越高,數(shù)值越低。所以我們只需要保證取到?OSRdyGrp和OSRdyTbl 的最低置1位就可以。還是上面的例子。98=0110 0010,最低置1位是第一位,所以橫坐標就是1。96=0110 0000,最低置1位是第5位,所以縱坐標是5。這樣就可以計算得到最高優(yōu)先級任務對應的優(yōu)先級是多少了。

以上解釋均為個人想法,不當之處還望指出。

????

總結

以上是生活随笔為你收集整理的uc/os-ii中最高优先级计算(如何查表)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一区二区三区精品在线观看 | 性xxxx另类xxⅹ | 在线免费看黄网站 | 日韩色图视频 | 青青草视频免费 | 看av网站| 成人无码av片在线观看 | 日韩成人av在线 | 精品国产精品三级精品av网址 | 日批动态图 | 欧美激情综合 | av黄页| 久久久人| 免看黄大片aa | 精品第一页 | 国产一区二区免费在线观看 | 息与子五十路翔田千里 | 老牛影视少妇在线观看 | 写真福利片hd在线播放 | 欧美情爱视频 | 成人h在线观看 | 性欧美www| 成人动漫在线观看视频 | 婷婷六月激情 | 国产日韩视频在线观看 | 亚洲国产成人va在线观看天堂 | 亚洲AV乱码国产精品观看麻豆 | 国产精品果冻传媒潘 | 欧美一级特黄视频 | 国产视频一二 | 一级片在线视频 | 国产一区二区三区成人 | 欧美一级淫片007 | 6699嫩草久久久精品影院 | 三级男人添奶爽爽爽视频 | 在线国产精品一区 | 国产视频欧美 | 亚洲国产理论 | 强开小嫩苞一区二区三区网站 | 国产丝袜一区二区三区 | 一区二区在线视频观看 | 性欧美18一19性猛交 | 中文字幕在线免费观看视频 | 97福利影院 | 国产你懂的 | 大尺度舌吻呻吟声 | 亚洲天堂免费视频 | 无码一区二区三区视频 | 亚洲熟妇av一区二区三区 | 福利二区 | 中文字幕无线码一区 | 国产亚洲精品美女久久久 | 一级片大全| 性大片潘金莲裸体 | 亚洲成人a√ | 国产三级播放 | www.欧美精品 | 狠狠操狠狠操 | 国产黄色电影 | 免费簧片在线观看 | 女同hd系列中文字幕 | 拔插拔插海外华人永久免费 | 黄色日韩在线 | 在线三级av | 在线一区二区不卡 | www.999av| 日韩福利一区二区 | 国产影音先锋 | 午夜精品久久久久久久91蜜桃 | 日本美女动态 | 黄色一区二区三区 | 国产一级二级在线观看 | av免费精品 | 亚洲天天视频 | 风间由美一区二区三区 | 亚洲自拍偷拍一区 | 日韩v| 在线看黄色网址 | 依依成人综合网 | 一区二区视频网站 | 欧美日韩免费观看一区=区三区 | 怡红院成永久免费人全部视频 | 中文字幕在线导航 | 在线麻豆av | 精品一区二区人妻 | 久久国产精品一区二区 | 国产探花一区二区 | 免费小视频 | 日本簧片在线观看 | 极品销魂美女一区二区三区 | 丁香花五月天 | 中文字幕免费一区二区 | av网站观看 | 日本精品久久久久中文字幕 | 国产成人麻豆精品午夜在线 | 久久夜色网 | 日皮在线观看 | 葵司av电影 | 国产在成人精品线拍偷自揄拍 |