<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 時(shí)間:2015-01-12 來源:電子產(chǎn)品世界 收藏

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

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

            一、時(shí)鐘節(jié)拍的改進(jìn)

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

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

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

            二、任務(wù)調(diào)度的改進(jìn)

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

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

            三、信號量的改進(jìn)

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

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

            四、小結(jié)

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



          關(guān)鍵詞: RTOS μC/OS-III μC/OS-II

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();