基于μC/OS任務(wù)調(diào)度算法的嵌入式數(shù)據(jù)管理
引言
一般情況下,在嵌入式系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)管理我們常采用嵌入式數(shù)據(jù)庫。但是目前常用的嵌入式數(shù)據(jù)庫(如SQLite、Berkeley DB等)均需嵌入式操作系統(tǒng)的支持,且對嵌入式系統(tǒng)的內(nèi)存、CPU處理速度等有較高要求,只能應(yīng)用在比較高端的嵌入式系統(tǒng)中。在低端的嵌入式系統(tǒng)中,傳統(tǒng)的數(shù)據(jù)管理方法是對數(shù)據(jù)存儲(chǔ)空間按順序編號,數(shù)據(jù)存儲(chǔ)與刪除均根據(jù)編號順序操作。這種方法在多次刪除后會(huì)出現(xiàn)很多存儲(chǔ)空間碎片,一方面加大了程序查找空閑存儲(chǔ)空間的難度,數(shù)據(jù)管理操作時(shí)間長(類似微機(jī)系統(tǒng)中硬盤長時(shí)間不做磁盤碎片整理會(huì)造成程序運(yùn)行變慢的情況),另一方面可能造成存儲(chǔ)空間利用率降低。本文提出了一種利用μC/OS任務(wù)調(diào)度算法實(shí)現(xiàn)的數(shù)據(jù)管理方法,該方法無需嵌入式操作系統(tǒng)的支持,可應(yīng)用于低端的嵌入式系統(tǒng)中,而且可以有效克服低端嵌入式應(yīng)用中傳統(tǒng)數(shù)據(jù)管理方法的缺陷。
1、μC/OS任務(wù)調(diào)度算法
μC/OS是一種占先式的多任務(wù)嵌入式操作系統(tǒng),它可以管理多達(dá)64個(gè)任務(wù)。μC/OS中,每個(gè)任務(wù)的優(yōu)先級不一樣且是唯一的,優(yōu)先級最高的任務(wù)一旦準(zhǔn)備就緒,則擁有CPU所有權(quán)并開始投入運(yùn)行。所以,μC/OS的任務(wù)調(diào)度算法的基本思想就是,查找當(dāng)前準(zhǔn)備就緒的最高優(yōu)先級的任務(wù),并進(jìn)行任務(wù)切換。實(shí)現(xiàn)上述任務(wù)調(diào)度算法主要包含兩個(gè)步驟:確定目前哪幾個(gè)任務(wù)處于就緒態(tài),確定目前處于就緒態(tài)的任務(wù)中哪個(gè)優(yōu)先級最高。為此,μC/OS提供了兩個(gè)全局變量OSRdyTbl[]和OSRdyGrp。OSRdyTbl[]數(shù)組是任務(wù)就緒表,包含 8個(gè)字節(jié)(共64位),相當(dāng)于把64個(gè)任務(wù)分為8組,每組8個(gè)任務(wù),這64位數(shù)據(jù)的0、1狀態(tài)分別代表64個(gè)任務(wù)是否處于就緒態(tài)(0代表空閑,1代表就緒);OSRdyGrp為1個(gè)字節(jié)數(shù)據(jù)(8位),每一位的0、1狀態(tài)分別代表OSRdyTbl[]數(shù)組的相應(yīng)字節(jié)是否非零(即該組中是否有任務(wù)處于就緒態(tài))。通過這兩個(gè)全局變量的賦值就可實(shí)現(xiàn)任務(wù)就緒態(tài)與空閑態(tài)的切換,這是μC/OS實(shí)現(xiàn)任務(wù)調(diào)度的基礎(chǔ)。
1.1 使任務(wù)進(jìn)入就緒態(tài)
μC/OS通過OSRdyTbl[]和OSRdyGrp某位置“1”,使相應(yīng)任務(wù)進(jìn)入就緒態(tài),如圖1所示。
假設(shè)優(yōu)先級為12的任務(wù)進(jìn)入就緒狀態(tài),12 = 1100b,則OSRdyTbl[1]的第4位置1,且OSRdyGrp的第1位置1(代表第1組有任務(wù)處于就緒態(tài)),相應(yīng)的數(shù)學(xué)表達(dá)式為:
OSRdyGrp|=0x02;
OSRdyTbl[1]|=0x10;
則μC/OS在執(zhí)行任務(wù)調(diào)度時(shí),通過OSRdyGrp的值即可判斷出第1組任務(wù)中有任務(wù)處于就緒態(tài),然后再通過OSRdyTbl[]數(shù)組的第1個(gè)字節(jié)即可判斷出此時(shí)優(yōu)先級為12的任務(wù)處于就緒態(tài),則可做任務(wù)切換。
從上面的計(jì)算可以得到:若OSRdyGrp及OSRdyTbl[]的第n位置1,則應(yīng)該把OSRdyGrp及OSRdyTbl[]的值與2n相或。為了計(jì)算方便,μC/OS中把2n的8個(gè)值(n=0~7)先計(jì)算好,存在數(shù)組OSMapTbl[]中,即:
OSMapTbl[0]=20=0x01(0000 0001)
OSMapTbl[1]=21=0x02(0000 0010)
……
OSMapTbl[7] = 27=0x80(1000 0000)
μC/OS中,優(yōu)先級數(shù)分解為高3位和低3位,高3位代表任務(wù)組號,低3位代表任務(wù)在所在組中的位置。則任意優(yōu)先級為prio的任務(wù)進(jìn)入就緒態(tài)只需執(zhí)行以下程序:
OSRdyGrp|=OSMapTbl[prio 》 3];
OSRdyTbl[prio》3]|=OSMapTbl[prio & 0x07];
1.2 使任務(wù)進(jìn)入空閑態(tài)
μC/OS通過任務(wù)就緒表OSRdyTbl[prio》3](prio代表任務(wù)優(yōu)先級)中相應(yīng)位清零使相應(yīng)任務(wù)進(jìn)入空閑態(tài),當(dāng)OSRdyTbl[prio》3]中的所有位都為零時(shí),還需將OSRdyGrp的相應(yīng)位清零,代表全組任務(wù)中沒有一個(gè)任務(wù)進(jìn)入就緒態(tài)。(責(zé)任編輯:admin)
- “掃一掃”關(guān)注融合網(wǎng)微信號
免責(zé)聲明:我方僅為合法的第三方企業(yè)注冊用戶所發(fā)布的內(nèi)容提供存儲(chǔ)空間,融合網(wǎng)不對其發(fā)布的內(nèi)容提供任何形式的保證:不保證內(nèi)容滿足您的要求,不保證融合網(wǎng)的服務(wù)不會(huì)中斷。因網(wǎng)絡(luò)狀況、通訊線路、第三方網(wǎng)站或管理部門的要求等任何原因而導(dǎo)致您不能正常使用融合網(wǎng),融合網(wǎng)不承擔(dān)任何法律責(zé)任。
第三方企業(yè)注冊用戶在融合網(wǎng)發(fā)布的內(nèi)容(包含但不限于融合網(wǎng)目前各產(chǎn)品功能里的內(nèi)容)僅表明其第三方企業(yè)注冊用戶的立場和觀點(diǎn),并不代表融合網(wǎng)的立場或觀點(diǎn)。相關(guān)各方及作者發(fā)布此信息的目的在于傳播、分享更多信息,并不代表本網(wǎng)站的觀點(diǎn)和立場,更與本站立場無關(guān)。相關(guān)各方及作者在我方平臺上發(fā)表、發(fā)布的所有資料、言論等僅代表其作者個(gè)人觀點(diǎn),與本網(wǎng)站立場無關(guān),不對您構(gòu)成任何投資、交易等方面的建議。用戶應(yīng)基于自己的獨(dú)立判斷,自行決定并承擔(dān)相應(yīng)風(fēng)險(xiǎn)。
根據(jù)相關(guān)協(xié)議內(nèi)容,第三方企業(yè)注冊用戶已知悉自身作為內(nèi)容的發(fā)布者,需自行對所發(fā)表內(nèi)容(如,字體、圖片、文章內(nèi)容等)負(fù)責(zé),因所發(fā)表內(nèi)容(如,字體、圖片、文章內(nèi)容等)等所引發(fā)的一切糾紛均由該內(nèi)容的發(fā)布者(即,第三方企業(yè)注冊用戶)承擔(dān)全部法律及連帶責(zé)任。融合網(wǎng)不承擔(dān)任何法律及連帶責(zé)任。
第三方企業(yè)注冊用戶在融合網(wǎng)相關(guān)欄目上所發(fā)布的涉嫌侵犯他人知識產(chǎn)權(quán)或其他合法權(quán)益的內(nèi)容(如,字體、圖片、文章內(nèi)容等),經(jīng)相關(guān)版權(quán)方、權(quán)利方等提供初步證據(jù),融合網(wǎng)有權(quán)先行予以刪除,并保留移交司法機(jī)關(guān)查處的權(quán)利。參照相應(yīng)司法機(jī)關(guān)的查處結(jié)果,融合網(wǎng)對于第三方企業(yè)用戶所發(fā)布內(nèi)容的處置具有最終決定權(quán)。
個(gè)人或單位如認(rèn)為第三方企業(yè)注冊用戶在融合網(wǎng)上發(fā)布的內(nèi)容(如,字體、圖片、文章內(nèi)容等)存在侵犯自身合法權(quán)益的,應(yīng)準(zhǔn)備好具有法律效應(yīng)的證明材料,及時(shí)與融合網(wǎng)取得聯(lián)系,以便融合網(wǎng)及時(shí)協(xié)調(diào)第三方企業(yè)注冊用戶并迅速做出相應(yīng)處理工作。
融合網(wǎng)聯(lián)系方式:(一)、電話:(010)57722280;(二)、電子郵箱:2029555353@qq.com dwrh@dwrh.net
對免責(zé)聲明的解釋、修改及更新權(quán)均屬于融合網(wǎng)所有。
相關(guān)新聞>>
今日頭條
更多>>人工智能和物聯(lián)網(wǎng)已成為新時(shí)代的主題,在政策支持、人工智能與物聯(lián)網(wǎng)技術(shù)發(fā)展、消費(fèi)升[詳細(xì)]
您可能感興趣的文章
- 多片DDC芯片HSP50214B與DSP接口電路設(shè)計(jì)
- 華燦光電:毛利率在外延芯片行業(yè)屬上游
- 富士通推出碳毫微管技術(shù) 芯片更小散熱更快
- GSM網(wǎng)絡(luò)的提升容量設(shè)計(jì)方法
- 美科學(xué)家開發(fā)出單芯片基因合成新法
- 第三大芯片制造商破產(chǎn) 狂炒上海貝嶺為哪般?
- 中移動(dòng)稱TD-LTE已成主流標(biāo)準(zhǔn) 明年出革命性芯片
- 安訊公司的ActuateOne新添兩家合作商
- 基于SPI實(shí)現(xiàn)dsPlC與ISD語音芯片的通信設(shè)計(jì)
- PIC單片機(jī)芯片的三相半控整流電路設(shè)計(jì)
新聞點(diǎn)評
- MediaTek開車用技術(shù)研討會(huì)以整合性解決方案賦能智能聯(lián)網(wǎng)汽車產(chǎn)業(yè)
- 8K智能電視芯片全球首發(fā),聯(lián)發(fā)科技S900以AI推動(dòng)智能電視革新
- 聯(lián)發(fā)科技智能手機(jī)芯片Helio P65發(fā)布,手游與拍攝體驗(yàn)雙升級
- 三只松鼠、卓勝微電子兩公司2019年5月16日(首發(fā))獲通過
- 聯(lián)發(fā)科技以AI賦能智能電視,聯(lián)動(dòng)智能家居體系
- 兩家上市公司盯上北京矽成,集成電路產(chǎn)業(yè)收購硝煙再起
- 晶泰科2018年完成進(jìn)出口總額1.22億美元
- 華為昇騰310 AI芯片何以獲頒第五屆世界互聯(lián)網(wǎng)領(lǐng)先科技成果獎(jiǎng)
- AI芯片并非信息行業(yè)主食 補(bǔ)齊缺芯短板勿舍本逐末
- 海外對華芯片技術(shù)輸出嚴(yán)防死守,5G將成中國芯片業(yè)趕超時(shí)間窗