色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > μC/OS-III中的高效時鐘節(jié)拍管理機(jī)制

          μC/OS-III中的高效時鐘節(jié)拍管理機(jī)制

          作者: 時間:2013-01-11 來源:網(wǎng)絡(luò) 收藏

          2.2 延時任務(wù)管理
          ;;為了提高時鐘節(jié)拍的處理速度,采用了機(jī)制來管理所有正在延時的任務(wù)和指定了超時時限的等待任務(wù)。這些任務(wù)都記錄在時鐘節(jié)拍列表(Tick List)中。時鐘節(jié)拍列表包含兩部分:一個稱為時鐘節(jié)拍輪盤的數(shù)組(OSCfg_TickWheel[])和一個時鐘節(jié)拍計數(shù)器(OSTickCtr),如圖2所示。

          本文引用地址:http://cafeforensic.com/article/148142.htm

          d.JPG


          時鐘節(jié)拍列表中的每個任務(wù)都有一個延時結(jié)束時刻或等待超時時限,假設(shè)為TM。比如,一個任務(wù)在時鐘節(jié)拍計數(shù)器數(shù)值為OSTickCtr時調(diào)用OSTimeDly()延時dly個時鐘節(jié)拍,那么該任務(wù)的延時結(jié)束時刻TM就等于OSTickCtr+dly。然后,用TM和時鐘節(jié)拍輪盤的表項個數(shù)(OS_CFG_TI CK_WHEEL_SIZE)做取模運(yùn)算,就可以得到一個余數(shù)I(I=TM%OS_CFG_TICK_WHEEL_SIZE)。那么,該延時任務(wù)就會放到時鐘節(jié)拍輪盤第1個表項指向的任務(wù)鏈表中。
          時鐘節(jié)拍輪盤的每個表項都有3個成員:“.NbrEntriesMax”、“.NbrEntries”和“.FirstPtr”。其中,“.FirstPtr”指向該表項對應(yīng)的任務(wù)鏈表,所有分配到該表項的延時任務(wù)或指定超時時限的等待任務(wù)都會放到該任務(wù)鏈表中。“.NbrEntries”和“.NbrEntries Max”分別記錄任務(wù)鏈表中的當(dāng)前任務(wù)數(shù)目和歷史最大任務(wù)數(shù)目。在任務(wù)鏈表中,任務(wù)按照延時結(jié)束時刻或超時時限排序,結(jié)束時刻早的任務(wù)排在鏈表的前面。
          通過采用機(jī)制,在每次時鐘節(jié)拍服務(wù)時,只需要處理時鐘節(jié)拍輪盤的某個特定表項所指向的任務(wù)鏈表,因為恰好在該時鐘節(jié)拍服務(wù)時延時結(jié)束或等待超時的任務(wù)都一定處于該表項所指向的任務(wù)鏈表中,而該表項的索引號就等于OSTickCtr%OS_CFG_TICK_WHEEL_SIZ E。另外,由于各個表項指向的任務(wù)鏈表中的任務(wù)是按照延時結(jié)束時刻和等待超時時限的順序進(jìn)行排序的,這樣,在處理當(dāng)前任務(wù)鏈表時,就可以從位于鏈表頭部的任務(wù)開始判斷任務(wù)延時結(jié)束時刻或等待超時時限是否等于OSTickCtr的當(dāng)前值。如果等于,說明該任務(wù)延時結(jié)束或等待超時了,然后,再判斷下一個任務(wù);如果不等于,說明該任務(wù)延時沒有結(jié)束或等待沒有超時,同時也說明,排在鏈表后面的任務(wù)都不可能延時結(jié)束或等待超時,因此,可以立即結(jié)束對任務(wù)鏈表的處理。
          由于采用了機(jī)制,;;中的時鐘節(jié)拍服務(wù)在大部分情況下只需要判斷極少數(shù)任務(wù)的延時結(jié)束時刻或超時時限,看其是否等于時鐘節(jié)拍計數(shù)器的當(dāng)前值,這相比;;II中需要遍歷整個任務(wù)鏈表的時鐘節(jié)拍服務(wù),顯然效率要高很多。

          結(jié)語
          μC/OS—II中的時鐘節(jié)拍服務(wù)有兩個不足之處:一是需要遍歷整個任務(wù)鏈表,二是需要在時鐘節(jié)拍中斷服務(wù)程序中進(jìn)行時鐘節(jié)拍的處理工作。當(dāng)系統(tǒng)中任務(wù)數(shù)目較多時,會影響系統(tǒng)的實(shí)時性,這對于一個實(shí)時嵌入式操作系統(tǒng)來說是不完善的地方。在μC/OS—中,通過增加一個時鐘節(jié)拍系統(tǒng)任務(wù)并采用哈希散列表機(jī)制,很好地解決了這兩點(diǎn)問題,即使在系統(tǒng)任務(wù)數(shù)目很多的時候,也可以確保系統(tǒng)的實(shí)時性。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉