999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

μC/OS—Ⅱ任務(wù)延時(shí)管理的改進(jìn)

2016-05-14 03:11:50許璐璐鄭吉洲
網(wǎng)絡(luò)空間安全 2016年5期

許璐璐 鄭吉洲

[摘要]嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在時(shí)鐘節(jié)拍服務(wù)中,需要遍歷任務(wù)控制塊鏈表中的所有任務(wù)控制塊,對(duì)任務(wù)的延時(shí)進(jìn)行管理,效率比較低。針對(duì)這個(gè)問題,論文提出了一種改進(jìn)方法,使用增量鏈表對(duì)任務(wù)延時(shí)進(jìn)行高效管理,并給出了增量鏈表的實(shí)現(xiàn)及其在μC/OS-Ⅱ任務(wù)延時(shí)管理中的運(yùn)用。

[關(guān)鍵詞]μC/OS-Ⅱ;任務(wù)延時(shí)管理;增量鏈表

1 引言

μC/OS-Ⅱ是一個(gè)源碼開放的嵌入式實(shí)時(shí)操作系統(tǒng),具有結(jié)構(gòu)精簡(jiǎn)、可裁剪、可移植性強(qiáng)、多任務(wù)可剝奪實(shí)時(shí)內(nèi)核等特點(diǎn),穩(wěn)定性和安全性能好,在嵌入式領(lǐng)域應(yīng)用廣泛。任務(wù)延時(shí)是嵌入式實(shí)時(shí)操作系統(tǒng)中的一個(gè)常用操作,可能發(fā)生在任務(wù)主動(dòng)讓出CPU、等待某一事件發(fā)生等情況下。每個(gè)需要延時(shí)的任務(wù)都有自己特定的延時(shí)請(qǐng)求,操作系統(tǒng)必須維護(hù)申請(qǐng)延時(shí)任務(wù)的集合,對(duì)任務(wù)的延時(shí)狀態(tài)、延時(shí)時(shí)間進(jìn)行管理。

數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)對(duì)操作系統(tǒng)任務(wù)延時(shí)管理的效率有很大的影響。本文分析了μC/OS-Ⅱ?qū)θ蝿?wù)延時(shí)管理的缺點(diǎn),提出了一個(gè)基于增量鏈表的改進(jìn)方案,能夠?qū)崿F(xiàn)對(duì)延時(shí)任務(wù)的高效管理。

2 μC/OS-Ⅱ任務(wù)延時(shí)管理分析

μC/OS-Ⅱ中調(diào)用OSTimeDly()可實(shí)現(xiàn)對(duì)任務(wù)的延時(shí),任務(wù)的延時(shí)時(shí)間保存在任務(wù)控制塊里的OSTCBDly變量中,在時(shí)鐘節(jié)拍服務(wù)程序OSTimeTick()中對(duì)任務(wù)的延時(shí)狀態(tài)進(jìn)行更新,其部分代碼如下(參照μC/OS-Ⅱv2,86版本):

從代碼可以知道。需要遍歷任務(wù)控制塊鏈表中的所有任務(wù)控制塊,對(duì)其中的延時(shí)任務(wù)進(jìn)行狀態(tài)更新,當(dāng)系統(tǒng)中任務(wù)數(shù)比較多時(shí),這是個(gè)很耗時(shí)的操作,效率比較低。

3 使用增量鏈表對(duì)任務(wù)延時(shí)進(jìn)行有效管理

3.1 增量鏈表概述

使計(jì)算更高效的方法是使用相對(duì)時(shí)間而非絕對(duì)時(shí)間。增量鏈表包含一個(gè)延時(shí)任務(wù)集合,并且鏈表是按每個(gè)任務(wù)的延時(shí)時(shí)間進(jìn)行排序,但是每個(gè)節(jié)點(diǎn)存儲(chǔ)的不是任務(wù)延時(shí)的絕對(duì)時(shí)間,而是在增量鏈表中存儲(chǔ)任務(wù)相對(duì)于前一個(gè)任務(wù)必須延遲的多余的時(shí)間。

因此,增量鏈表中第一個(gè)任務(wù)的延時(shí)鍵值指定了相對(duì)于當(dāng)前的時(shí)間,該任務(wù)需要等待的時(shí)鐘滴答數(shù),其他每一個(gè)任務(wù)的鍵值指定了相對(duì)于各自的前一個(gè)任務(wù)。該任務(wù)需要等待的時(shí)鐘滴答數(shù)。任務(wù)延遲的絕對(duì)時(shí)間等于增量鏈表中該任務(wù)的鍵值與該任務(wù)之前的所有任務(wù)的鍵值之和。

例如,假設(shè)任務(wù)A、B、C、D分別請(qǐng)求延遲5、20、50、100個(gè)時(shí)鐘滴答,且假設(shè)這樣的請(qǐng)求在幾乎相同時(shí)間做出(即在一個(gè)時(shí)鐘滴答內(nèi)),圖1顯示了使用增量鏈表存儲(chǔ)這4個(gè)延時(shí)任務(wù)的情況。

給定一個(gè)增量鏈表,可以通過計(jì)算部分鍵值的和得到每個(gè)任務(wù)的延時(shí)時(shí)間。

使用了增量鏈表后,由于鏈表中所有后續(xù)任務(wù)的延時(shí)時(shí)間都是與第一個(gè)延時(shí)相關(guān)的。因此在時(shí)鐘節(jié)拍服務(wù)程序中,只需要遞減增量鏈表第一項(xiàng)的延時(shí)鍵值,不需要掃描整個(gè)鏈表,效率有了很大的提高。當(dāng)?shù)谝豁?xiàng)的鍵值變?yōu)?時(shí),表明該任務(wù)延時(shí)時(shí)間已到,需要將其放入就緒表。

3.2 增量鏈表的實(shí)現(xiàn)

為了實(shí)現(xiàn)增量鏈表,在任務(wù)控制塊中添加項(xiàng):

聲明延時(shí)增量鏈表

SO_TCB*OSDelayList。

插入鏈表操作,需要計(jì)算一個(gè)相對(duì)延遲,將指定的任務(wù)插入到OSDelayList中合適的位置。搜索過程從鏈表頭開始遍歷鏈表,將待插入節(jié)點(diǎn)的相對(duì)延時(shí)值與鏈表中的節(jié)點(diǎn)的值比較,當(dāng)發(fā)現(xiàn)待插入節(jié)點(diǎn)的值小于鏈表中某一節(jié)點(diǎn)時(shí),則在該位置插入新節(jié)點(diǎn)。每當(dāng)跳過一個(gè)節(jié)點(diǎn)時(shí),需要將待插入節(jié)點(diǎn)的值減去該節(jié)點(diǎn)的值,得到相對(duì)延遲量。而當(dāng)插入一個(gè)新節(jié)點(diǎn)時(shí),必須在鏈表的剩余節(jié)點(diǎn)中減去由于插入新節(jié)點(diǎn)而導(dǎo)致的延時(shí)值的改變。即在下一個(gè)節(jié)點(diǎn)的值中減去新插入節(jié)點(diǎn)的值。

例如,假設(shè)某一時(shí)刻延時(shí)鏈表如圖1所示,待插入任務(wù)E的延時(shí)值為30,則插入過程如圖2所示。

插入鏈表操作關(guān)鍵代碼如下:

使用了延時(shí)增量鏈表后,在原來(lái)的OSTimeDly()中,延時(shí)操作OSTCBCur->OSTCBDly=ticks

則變?yōu)椋?/p>

insert(OSTCBCur,ticks);

在時(shí)鐘節(jié)拍服務(wù)程序中,只需遞減延時(shí)鏈表第一個(gè)節(jié)點(diǎn)的鍵值,當(dāng)其變?yōu)?時(shí),表明其延時(shí)時(shí)間已到,需要將該任務(wù)喚醒:

函數(shù)wakeup()需要將延時(shí)鏈表中從第一項(xiàng)開始延時(shí)鍵值為0的所有任務(wù)喚醒:

{

清等待狀態(tài)標(biāo)志:

if(任務(wù)狀態(tài)為ready)

任務(wù)放入就緒表;

ptcb=ptcb->delay_next;

}

OSDelayList=ptcb;

}

當(dāng)某個(gè)任務(wù)要取消延時(shí),需將其從延時(shí)增量鏈表中移除,且需要將鏈表中該節(jié)點(diǎn)之后的剩余節(jié)點(diǎn)加上由于移除節(jié)點(diǎn)而導(dǎo)致的相對(duì)延時(shí)值的改變,即在下一個(gè)節(jié)點(diǎn)的鍵值中加上被移除節(jié)點(diǎn)的鍵值。

4 結(jié)束語(yǔ)

增量鏈表通過使用相對(duì)時(shí)間而非絕對(duì)時(shí)間。實(shí)現(xiàn)了對(duì)延時(shí)任務(wù)的高效管理,在對(duì)時(shí)間效率要求較高的實(shí)時(shí)系統(tǒng)中,有良好的應(yīng)用效果,也可將其借鑒到其他的應(yīng)用場(chǎng)景中。

主站蜘蛛池模板: 国产流白浆视频| 一本大道视频精品人妻 | 丝袜美女被出水视频一区| 91麻豆精品国产91久久久久| 青草娱乐极品免费视频| 国产免费好大好硬视频| 欧美一区二区三区国产精品| 中国毛片网| 久久久久久尹人网香蕉| 无码一区中文字幕| aa级毛片毛片免费观看久| 成人午夜天| 国产1区2区在线观看| 亚洲天堂日韩av电影| 人妻丰满熟妇αv无码| av一区二区三区在线观看| 51国产偷自视频区视频手机观看| 91激情视频| 国产毛片网站| 亚洲天堂色色人体| 欧洲欧美人成免费全部视频 | av色爱 天堂网| 国产成人高精品免费视频| 亚洲欧洲自拍拍偷午夜色无码| 看你懂的巨臀中文字幕一区二区 | 久久香蕉国产线看观看式| 好紧太爽了视频免费无码| 日本一本正道综合久久dvd| 国产av一码二码三码无码| 精品少妇人妻av无码久久| 日本人妻丰满熟妇区| 国产无码精品在线播放| 亚洲αv毛片| 真人高潮娇喘嗯啊在线观看| 四虎国产永久在线观看| 中文字幕资源站| 日本三级精品| 亚洲一区二区黄色| 国产精品视频a| 国产一区二区精品福利 | 91福利片| 久久综合伊人77777| 国产精品天干天干在线观看 | 91在线日韩在线播放| 日本欧美一二三区色视频| 国产精品lululu在线观看 | 一区二区三区毛片无码| 亚洲欧洲美色一区二区三区| 国产成人永久免费视频| 国产美女叼嘿视频免费看| www.91中文字幕| 欧美翘臀一区二区三区| 欧美成人h精品网站| 亚洲日本韩在线观看| 日韩久草视频| 精品国产污污免费网站| 亚洲av日韩av制服丝袜| 青草国产在线视频| 国产黑人在线| 91久久青青草原精品国产| 国内精品91| 国产一级毛片在线| 在线日韩日本国产亚洲| 国内精品久久久久久久久久影视| 亚洲一区毛片| 麻豆a级片| 亚洲精品国产综合99久久夜夜嗨| 久草热视频在线| 久操线在视频在线观看| 精品久久久无码专区中文字幕| 国产精品2| 国产亚洲精品精品精品| 日韩AV无码一区| 国产91丝袜在线播放动漫 | 国产精品开放后亚洲| 国产又黄又硬又粗| 日韩A级毛片一区二区三区| 亚洲无码久久久久| 亚洲激情区| 精品一区国产精品| 欧美性色综合网| 亚洲欧美国产五月天综合|