<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 經(jīng)典再續(xù):μC/OS-III

          經(jīng)典再續(xù):μC/OS-III

          作者:areak 時間:2015-01-12 來源:電子產(chǎn)品世界 收藏

            μC/OS-III相比于μC/OS-II做了很多的改進,是一款全新的內(nèi)核,在效率方面有了很大提升,并且支持任務的時間片輪轉(zhuǎn)調(diào)度,摒棄了一些不必要的內(nèi)容,如消息郵箱,對于熟悉μC/OS-II的工程師來說,上手μC/OS-III還是比較容易的,先來了解一下μC/OS-III做了哪些具體的改進。

          本文引用地址:http://www.ex-cimer.com/article/268018.htm

            一、時鐘節(jié)拍的改進

            在中,任務可通過調(diào)用延時函數(shù)(如OSTimeDly( )函數(shù))將自己延時掛起一段時間,任務在延時的過程中會釋放CPU,延時的任務不占用寶貴的CPU資源,而是由時鐘節(jié)拍服務統(tǒng)一管理,時鐘節(jié)拍服務是一個周期性運行的任務,由周期的時鐘節(jié)拍中斷觸發(fā),而時鐘節(jié)拍中斷可由硬件定時器產(chǎn)生,以此來分擔CPU的工作量。

            在μC/OS-II中,時鐘節(jié)拍服務是在時鐘節(jié)拍中斷服務程序中完成的,每次時鐘節(jié)拍服務都會遍歷整個任務鏈表,依次處理每個任務,如果該任務的延時計數(shù)為0,則跳過該任務,如果計數(shù)非0,則進行減1操作,并判斷減1后是否為0,為0則表明延時時間已到,使相關任務進入就緒態(tài)。如果系統(tǒng)的任務數(shù)目較多的話,時鐘節(jié)拍服務遍歷整個任務鏈表的時間較長,而且該服務函數(shù)在中斷中被調(diào)用,因此也會導致中斷執(zhí)行的時間過長,不符合實時操作系統(tǒng)的設計理念。

            在μC/OS-III中,周期性的硬件定時器通過中斷觸發(fā)中斷服務函數(shù),在中斷服務函數(shù)中調(diào)用時鐘節(jié)拍服務函數(shù),但是該時鐘節(jié)拍服務函數(shù)不需要遍歷整個任務鏈表,只是發(fā)送一個信號量,即可結(jié)束中斷,時鐘節(jié)拍任務接收該信號量,恢復運行,處理延時函數(shù),為了提高時鐘節(jié)拍的處理速度,還采用了哈希散列表機制來管理任務,使得查找速度更加高效合理。

            二、任務調(diào)度的改進

            在μC/OS-II中,任務調(diào)度是完全基于優(yōu)先級的,每個任務都有不同的優(yōu)先級,不允許2個任務具有相同的優(yōu)先級,并且支持的任務數(shù)量是有限制的。

            在μC/OS-III中,可以支持任意數(shù)目的任務和優(yōu)先級,用戶根據(jù)實際情況來定,當然在實時操作系統(tǒng)中,要盡可能的精簡任務數(shù)目,在μC/OS-III中,增加了任務的時間片輪轉(zhuǎn)調(diào)度算法,也就是說不同的任務允許具有相同的優(yōu)先級,因此,任務的數(shù)量就可以不受優(yōu)先級數(shù)量的限制了,每一個優(yōu)先級的任務數(shù)量可以有多個,同一優(yōu)先級的任務根據(jù)實際需要分配執(zhí)行時間,時間到時釋放CPU,使得其它任務得以執(zhí)行,如此循環(huán)往復。除此之外,還對任務優(yōu)先級查找算法進行了改進,在此不再詳述。

            三、信號量的改進

            在多任務實時操作系統(tǒng)中,信號量是最基本最常用的機制,用來實現(xiàn)任務之間的通信和同步、任務和中斷之間的通信和同步以及對共享資源的訪問,在μC/OS-II中,提供了基本的信號量創(chuàng)建、等待和釋放等操作。

            在μC/OS-III中,對信號量的使用增加了一些可選參數(shù),如非阻塞等待、釋放但不進行任務調(diào)度等操作,具有較高的靈活性。更為方便和重要的是,在μC/OS-III中增加了任務內(nèi)嵌的信號量,用戶無需創(chuàng)建信號量便可和其它任務通信,使用起來比普通信號量更加簡單高效。比如兩個任務之間的數(shù)據(jù)傳送很明確,任務A接收數(shù)據(jù)完成后,只有任務B來執(zhí)行數(shù)據(jù)的處理,也就是說只有一個任務等待任務A的信號量,而且任務A知道要將信號量發(fā)送給哪個任務,便可以使用內(nèi)嵌信號量來進行通信和同步。

            四、小結(jié)

            以上僅列舉了幾點在μC/OS-III中比較重要的改進,μC/OS-III實時內(nèi)核無論在效率、穩(wěn)定性、用戶使用靈活性方面都做了重要的改進,是一款全新的實時內(nèi)核,詳見書籍《嵌入式實時操作系統(tǒng)μC/OS-III》。



          關鍵詞: RTOS μC/OS-III μC/OS-II

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();