欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持osek標(biāo)準(zhǔn)的嵌入式實(shí)時操作系統(tǒng)的任務(wù)調(diào)度方法

文檔序號:6542827閱讀:244來源:國知局
專利名稱:支持osek標(biāo)準(zhǔn)的嵌入式實(shí)時操作系統(tǒng)的任務(wù)調(diào)度方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式實(shí)時操作系統(tǒng)技術(shù),主要是一種支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法。
背景技術(shù)
隨著軟硬件技術(shù)的快速發(fā)展,嵌入式操作系統(tǒng)已經(jīng)應(yīng)用到各個領(lǐng)域,自動控制、交通、航空航天等等。嵌入式實(shí)時操作系統(tǒng)(Real-Time Operating System,簡稱RTOS)與其他普通的系統(tǒng)之間的最大的不同就是要嚴(yán)格滿足事務(wù)與時間的關(guān)系。比如大型設(shè)備的控制部分、汽車電控系統(tǒng),都要求所采用的實(shí)時操作系統(tǒng)能快速響應(yīng),快速進(jìn)行調(diào)度,來應(yīng)對各種對時間要求很苛刻的情況。
任務(wù)調(diào)度是嵌入式實(shí)時操作系統(tǒng)中最核心、最關(guān)鍵的部分,調(diào)度效率直接影響到RTOS的實(shí)時性能。衡量一個RTOS的技術(shù),最重要的指標(biāo)就是調(diào)度的任務(wù)切換時間Ts。
市場上占有率比較高的商用實(shí)時操作系統(tǒng)大多數(shù)是多任務(wù)實(shí)時微內(nèi)核的結(jié)構(gòu),采用的是基于優(yōu)先級的可搶占式調(diào)度策略。在各種調(diào)度情況上,調(diào)用同一個函數(shù)來完成任務(wù)的切換。開放源代碼的uC/OS-II提供的實(shí)時任務(wù)調(diào)度方法,就是采用調(diào)度函數(shù)OSSched()完成的。在OSSched()中,先找到最高優(yōu)先級的任務(wù),然后用宏調(diào)用OS TASK_SW通過系統(tǒng)軟中斷來完成實(shí)際的任務(wù)切換的過程,將被掛起任務(wù)的運(yùn)行環(huán)境壓入堆棧,后面運(yùn)行的較高優(yōu)先級任務(wù)的運(yùn)行環(huán)境從堆棧中恢復(fù)。
其實(shí)這是最復(fù)雜的任務(wù)切換情況需要做的工作,即當(dāng)前正在運(yùn)行的任務(wù)被打斷,需要保存當(dāng)前任務(wù)的運(yùn)行環(huán)境,再切換到一個原先運(yùn)行過的任務(wù),需要恢復(fù)原先的運(yùn)行環(huán)境,保存和恢復(fù)運(yùn)行環(huán)境占據(jù)了整個任務(wù)切換的大部分時間。對一些簡單調(diào)度點(diǎn),如結(jié)束當(dāng)前任務(wù)再運(yùn)行剛激活的任務(wù)這種情況,保存和恢復(fù)運(yùn)行環(huán)境的過程都是浪費(fèi)的。這是因為結(jié)束任務(wù)意味著任務(wù)已經(jīng)完成其功能,不需要保存其運(yùn)行環(huán)境,而激活的任務(wù)剛開始運(yùn)行,也沒有以前的運(yùn)行環(huán)境。這也就說明了不考慮所切換任務(wù)的狀態(tài)而采用統(tǒng)一調(diào)度,勢必會大大影響嵌入式實(shí)時操作系統(tǒng)的調(diào)度效率。

發(fā)明內(nèi)容
本發(fā)明的目的是針對上述缺陷,提供一種支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法。
本發(fā)明解決其技術(shù)問題所采用的方案是通過詳細(xì)分析支持OSEK標(biāo)準(zhǔn)的操作系統(tǒng)的任務(wù)切換狀態(tài),細(xì)分不同的調(diào)度點(diǎn)情況,針對每種調(diào)度點(diǎn)采用專用的調(diào)度策略,使任務(wù)切換時間在多數(shù)情況下明顯減少,大大優(yōu)化實(shí)時操作系統(tǒng)的時間性能。
本發(fā)明的實(shí)現(xiàn)步驟如下1)、根據(jù)任務(wù)狀態(tài)分析各類調(diào)度切換情況1.1)、OSEK標(biāo)準(zhǔn)中根據(jù)任務(wù)狀態(tài)分類的不同,將系統(tǒng)分為BCC1(基本任務(wù))、ECC1(擴(kuò)展任務(wù))兩種情況;其中BCC1中的任務(wù)狀態(tài)包含三種情況運(yùn)行、就緒、掛起,ECC1中的任務(wù)狀態(tài)包含四種情況運(yùn)行、就緒、等待、掛起。本發(fā)明將其中的任務(wù)就緒狀態(tài)細(xì)分為中間態(tài)和初始態(tài),中間態(tài)即是任務(wù)運(yùn)行到一半被搶占或等待的事件發(fā)生后進(jìn)入就緒的狀態(tài),初始態(tài)是任務(wù)從掛起被激活到就緒狀態(tài)或系統(tǒng)啟動時任務(wù)直接進(jìn)入的就緒狀態(tài);1.2)、在BCC1下的調(diào)度情況分為以下三種調(diào)度情況1當(dāng)前任務(wù)運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為初始態(tài);不用保存當(dāng)前任務(wù)運(yùn)行環(huán)境,直接進(jìn)行指針賦值等操作后,即可運(yùn)行后一高優(yōu)先級任務(wù);調(diào)度情況2當(dāng)前任務(wù)運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài);不用保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)后一高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;調(diào)度情況3當(dāng)前任務(wù)被搶占進(jìn)入就緒狀態(tài),即將運(yùn)行的高優(yōu)先級為初始態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后即可運(yùn)行高優(yōu)先級任務(wù)。
1.3)、在ECC1下的調(diào)度情況,除上述1.2)以外,再加以下三種調(diào)度情況4當(dāng)前任務(wù)進(jìn)入等待狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)后一高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;調(diào)度情況5當(dāng)前任務(wù)進(jìn)入等待狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為初始態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后即可運(yùn)行高優(yōu)先級任務(wù);
調(diào)度情況6當(dāng)前任務(wù)被搶占進(jìn)入就緒狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài),且該任務(wù)是因為其等待的事件發(fā)生了而進(jìn)入中間態(tài)的;保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;2)、把調(diào)度過程可以分為以下四個步驟2.1)、在就緒任務(wù)中查找到最高優(yōu)先級的任務(wù);2.2)、保存當(dāng)前運(yùn)行任務(wù)的運(yùn)行環(huán)境;2.3)、進(jìn)行CPU占用指針賦值,即交換CPU占有權(quán);2.4)、恢復(fù)最高優(yōu)先級任務(wù)的運(yùn)行環(huán)境;3、根據(jù)對調(diào)度過程四個步驟的覆蓋情況,優(yōu)化調(diào)度策略,分為以下四類3.1)、調(diào)度策略A最簡單情況,只做調(diào)度過程步驟的2.1)、2.3);3.2)、調(diào)度策略B一般情況,只做調(diào)度過程步驟的2.1)、2.2)、2.3);3.3)、調(diào)度策略C一般情況,只做調(diào)度過程步驟的2.1)、2.3)、2.4);3.4)、調(diào)度策略D最復(fù)雜情況,做全部調(diào)度過程步驟的2.1)、2.2)、2.3)、2.4);4、根據(jù)任務(wù)運(yùn)行時實(shí)際調(diào)度情況的不同,選用不同的調(diào)度策略每種情況的調(diào)度所耗費(fèi)的時間T根據(jù)所選策略的不同有所不同,D對應(yīng)的TSD最多,A對應(yīng)的TSA最少,B和C對應(yīng)的TSB、TSC為中間值。
本發(fā)明的顯著優(yōu)點(diǎn)統(tǒng)一函數(shù)的調(diào)度方法的任務(wù)切換時間設(shè)為TS,從分析上可以直觀的看到,本發(fā)明的優(yōu)化調(diào)度策略涉及過程少,具有以下調(diào)度時間上的明顯優(yōu)勢,明顯的優(yōu)化了系統(tǒng)調(diào)度的性能TSA<TS,TSB<TS,TSC<TS,而TSD和TS基本持平。


圖1BCC1基本任務(wù)狀態(tài)轉(zhuǎn)換圖;圖2本發(fā)明的細(xì)化后的BCC1基本任務(wù)狀態(tài)轉(zhuǎn)換圖;圖3ECC1擴(kuò)展任務(wù)狀態(tài)轉(zhuǎn)換圖;圖4本發(fā)明的細(xì)化后的ECC1擴(kuò)展任務(wù)狀態(tài)轉(zhuǎn)換圖;圖5本發(fā)明的實(shí)施例1;圖6本發(fā)明的實(shí)施例2;具體實(shí)施方式
下面結(jié)合附圖和兩個實(shí)施例對發(fā)明作進(jìn)一步介紹。這種支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,實(shí)現(xiàn)步驟如下一、根據(jù)任務(wù)狀態(tài)仔細(xì)分析各類調(diào)度切換情況。
OSEK標(biāo)準(zhǔn)中根據(jù)任務(wù)狀態(tài)分類的不同,將系統(tǒng)分為BCC1(基本任務(wù))、ECC1(擴(kuò)展任務(wù))兩種情況。
按照OSEK標(biāo)準(zhǔn),BCC1中的任務(wù)狀態(tài)包含三種情況運(yùn)行、就緒、掛起。運(yùn)行狀態(tài)的任務(wù)是指當(dāng)前占用CPU的任務(wù),就緒狀態(tài)的任務(wù)是已經(jīng)做好運(yùn)行準(zhǔn)備、只等CPU時間的任務(wù)或運(yùn)行一半后被其他任務(wù)搶占、又在等待CPU時間的任務(wù),掛起狀態(tài)的任務(wù)是自行運(yùn)行結(jié)束或剛剛產(chǎn)生而等待激活的任務(wù)。
ECC1中的任務(wù)狀態(tài)包含四種情況運(yùn)行、就緒、等待、掛起。等待狀態(tài)是任務(wù)等待某一事件發(fā)生的狀態(tài)。其他三種狀態(tài)和BCC1的情形一樣。
BCC1的基本任務(wù)狀態(tài)轉(zhuǎn)換關(guān)系如圖1所示。任務(wù)就緒態(tài)又可以細(xì)分為中間態(tài)、初始態(tài)。中間態(tài)即是任務(wù)運(yùn)行到一半被搶占后進(jìn)入就緒的狀態(tài),初始態(tài)是任務(wù)從掛起被激活到就緒狀態(tài)或系統(tǒng)啟動時任務(wù)直接進(jìn)入的就緒狀態(tài)。細(xì)化后的BCC1任務(wù)狀態(tài)轉(zhuǎn)換關(guān)系如圖2所示。
因此,在BCC1下的調(diào)度情況可以分為以下幾種(RunningTask代表當(dāng)前運(yùn)行的任務(wù),HighestTask代表已經(jīng)找到的最高優(yōu)先級任務(wù),PCPUCur代表當(dāng)前占用CPU的任務(wù)的指針,調(diào)度前PCPUCur指向RunningTask)調(diào)度情況1RunningTask運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),HighestTask為初始態(tài)。
不用保存RunningTask運(yùn)行環(huán)境,直接進(jìn)行PCPUCur的賦值等操作(把PCPUCur指向HighestTask)后,即可運(yùn)行HighestTask任務(wù)體。這是最簡單的情況,只做指針的賦值,不用保存也不用恢復(fù)相關(guān)運(yùn)行環(huán)境。
調(diào)度情況2RunningTask運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),HighestTask為中間態(tài)。
不用保存RunningTask運(yùn)行環(huán)境,進(jìn)行PCPUCur的賦值等操作后,恢復(fù)原來HighestTask的運(yùn)行環(huán)境,繼續(xù)運(yùn)行。這是一般情況,需要指針的賦值,恢復(fù)相關(guān)運(yùn)行環(huán)境,不用保存當(dāng)前運(yùn)行環(huán)境。
調(diào)度情況3RunningTask被搶占進(jìn)入就緒狀態(tài),HighestTask為初始態(tài)。
保存RunningTask運(yùn)行環(huán)境,進(jìn)行PCPUCur的賦值等操作后即可運(yùn)行HighestTask任務(wù)體。這也是比較一般的情況,需要指針的賦值,需要保存當(dāng)前運(yùn)行環(huán)境,但不用恢復(fù)原先運(yùn)行環(huán)境。
ECC1情況下擴(kuò)展任務(wù)狀態(tài)轉(zhuǎn)換關(guān)系如圖3所示。和BCC1類似,把任務(wù)就緒態(tài)分為中間態(tài)、初始態(tài)。不過中間態(tài)除了任務(wù)被搶占造成的,還可能是因為處于等待狀態(tài)的任務(wù)其等待的事件發(fā)生了,該任務(wù)進(jìn)入就緒狀態(tài),這種就緒狀態(tài)也歸屬到中間態(tài)。細(xì)化后的ECC1任務(wù)狀態(tài)轉(zhuǎn)換關(guān)系如圖4所示。
因為增加了等待狀態(tài),分析后可以知道,除了BCC1下已有的四種調(diào)度情況,ECC1還有另外三種情況調(diào)度情況4RunningTask進(jìn)入等待狀態(tài),HighestTask為中間態(tài)。
保存RunningTask運(yùn)行環(huán)境,進(jìn)行PCPUCur的賦值等操作后,恢復(fù)原來HighestTask的運(yùn)行環(huán)境,繼續(xù)運(yùn)行。這就是最復(fù)雜的調(diào)度情況,指針賦值、保存當(dāng)前運(yùn)行環(huán)境、恢復(fù)原先運(yùn)行環(huán)境三種操作都需要。
調(diào)度情況5RunningTask進(jìn)入等待狀態(tài),HighestTask為初始態(tài)。
保存RunningTask運(yùn)行環(huán)境,進(jìn)行PCPUCur的賦值等操作后,直接運(yùn)行函數(shù)體,不需要恢復(fù)運(yùn)行環(huán)境的操作。這在操作復(fù)雜度上和調(diào)度情況3一樣。
調(diào)度情況6RunningTask被搶占進(jìn)入就緒狀態(tài),HighestTask為中間態(tài),且HighestTask是因為其等待的事件發(fā)生了而進(jìn)入中間態(tài)的。
保存RunningTask運(yùn)行環(huán)境,進(jìn)行PCPUCur的賦值等操作后,恢復(fù)原來HighestTask的運(yùn)行環(huán)境,繼續(xù)運(yùn)行。這在操作復(fù)雜度上和調(diào)度情況4一樣,也是最復(fù)雜的情況。
二、把調(diào)度過程分段分析并綜合各類情況,調(diào)度過程可以分為以下四步1.在就緒任務(wù)中查找到最高優(yōu)先級的任務(wù)(HighestTask)準(zhǔn)備切換(必要步驟)2.保存當(dāng)前運(yùn)行任務(wù)(RunningTask)的運(yùn)行環(huán)境(可選步驟)3.進(jìn)行PCPUCur的指針賦值,即交換CPU占有權(quán)(必要步驟)4.恢復(fù)最高優(yōu)先級任務(wù)(HighestTask)的運(yùn)行環(huán)境(可選步驟)三、對調(diào)度策略進(jìn)行分類。
根據(jù)對調(diào)度過程四個步驟的覆蓋情況,將調(diào)度策略分為以下四類調(diào)度策略A最簡單情況,只做調(diào)度過程步驟的1、3。
調(diào)度策略B一般情況,只做調(diào)度過程步驟的1、2、3。
調(diào)度策略C一般情況,只做調(diào)度過程步驟的1、3、4。
調(diào)度策略D最復(fù)雜情況,做全部調(diào)度過程步驟的1、2、3、4。
四、根據(jù)任務(wù)運(yùn)行時實(shí)際調(diào)度情況的不同,選用優(yōu)化的調(diào)度策略。
每種情況的調(diào)度所耗費(fèi)的時間T根據(jù)所選策略的不同有所不同,D對應(yīng)的TSD最多,A對應(yīng)的TSA最少,B和C對應(yīng)的TSB、TSC為中間值。
實(shí)施例1如圖5所示。在BCC1狀態(tài)下的操作系統(tǒng),采用全搶占方式。共有三個基本任務(wù),P1,P2,P3,優(yōu)先級從高到低排列,即P1優(yōu)先級最高,P2次之,P3優(yōu)先級最低。
t0時刻系統(tǒng)啟動,此時任務(wù)P1掛起,P2、P3就緒,P2優(yōu)先級高而先運(yùn)行,P3處于就緒狀態(tài)中的初始態(tài)。到t1時刻,發(fā)生第一次調(diào)度,當(dāng)前任務(wù)P2運(yùn)行結(jié)束,初始態(tài)的高優(yōu)先級任務(wù)P3運(yùn)行,這屬于最簡單的調(diào)度情況,采用優(yōu)化后的調(diào)度策略A。
P3一直運(yùn)行,直到其激活P1。因為P1優(yōu)先級高于P3,則P3被搶占,t2時刻發(fā)生第二次調(diào)度,P3進(jìn)入就緒狀態(tài)的中間態(tài),P1運(yùn)行。因為P3沒有運(yùn)行完畢,所以被搶占時需要保存其上下文環(huán)境,P1是從掛起直接被激活而進(jìn)入就緒狀態(tài)的,所以采用調(diào)度策略B。
P1一直運(yùn)行到結(jié)束,t3時刻發(fā)生第三次調(diào)度,當(dāng)前就緒任務(wù)中只有P3,P3得到CPU并運(yùn)行。因為P1是運(yùn)行結(jié)束后進(jìn)入掛起狀態(tài)的,所以不需要保存其運(yùn)行環(huán)境。而P3是從就緒狀態(tài)的中間態(tài)開始運(yùn)行的,所以需要恢復(fù)其運(yùn)行環(huán)境,因此采用調(diào)度策略C。
在CME555開發(fā)板上對比運(yùn)行采用統(tǒng)一調(diào)度函數(shù)和采用本發(fā)明后的優(yōu)化調(diào)度策略的操作系統(tǒng),CPU為MPC555,頻率40MHz。在邏輯分析儀上,采用100M的采樣頻率,測試得到各時刻的任務(wù)切換時間分別如下表1所示

表1實(shí)施例2在實(shí)施例1的基礎(chǔ)上,再來看實(shí)施例2。如圖6所示。實(shí)施例2為ECC1狀態(tài)下的操作系統(tǒng),采用全搶占方式。共有三個基本任務(wù),P4,P5,P6,優(yōu)先級從高到低排列,即P4優(yōu)先級最高,P5次之,P6優(yōu)先級最低。為了說明的簡單,實(shí)例2只突出“等待”狀態(tài)的調(diào)度情況。
t0時刻系統(tǒng)啟動,此時任務(wù)P4掛起,P5、P6均就緒,P5優(yōu)先級最高而先運(yùn)行,此時P6處于就緒狀態(tài)中的初始態(tài)。到t1時刻,P5運(yùn)行結(jié)束,發(fā)生第一次調(diào)度,P6運(yùn)行,和實(shí)例1的t1時刻類似,采用調(diào)度策略A。
P6一直運(yùn)行,直到其激活P4。因為P4優(yōu)先級高于P6,則P6被搶占,t2時刻發(fā)生第二次調(diào)度,P6進(jìn)入就緒狀態(tài)的中間態(tài),P4運(yùn)行。和實(shí)例1的t2時刻類似,采用調(diào)度策略B。
P4一直運(yùn)行,直到其等待事件1。即t3時刻發(fā)生第二次調(diào)度,P4進(jìn)入等待狀態(tài),P6運(yùn)行。因為P4是進(jìn)入等待狀態(tài)而并沒有運(yùn)行完畢,所以需要保存其運(yùn)行環(huán)境,同時P6是從就緒態(tài)的中間態(tài)進(jìn)入運(yùn)行,也需要恢復(fù)運(yùn)行環(huán)境,所以采用調(diào)度策略D,這就是最復(fù)雜的調(diào)度情況。
P6一直運(yùn)行,直到其設(shè)置了事件1。P4因為等待的事件1發(fā)生,則進(jìn)入就緒態(tài)的中間態(tài)。因為P4優(yōu)先級高,則t4時刻就發(fā)生第三次調(diào)度,P6被搶占進(jìn)入就緒狀態(tài)的中間態(tài),P4運(yùn)行。因為P6運(yùn)行環(huán)境需要保存,P4是從等待狀態(tài)進(jìn)入就緒狀態(tài)的中間態(tài)再進(jìn)入運(yùn)行的,需要恢復(fù)其運(yùn)行環(huán)境,又也是最復(fù)雜的調(diào)度情況,采用調(diào)度策略D。
同樣在CME555開發(fā)板上對比運(yùn)行采用統(tǒng)一調(diào)度函數(shù)和采用本發(fā)明的優(yōu)化調(diào)度策略的操作系統(tǒng)。
測試得到各時刻的任務(wù)切換時間分別如下表2所示

權(quán)利要求
1.一種支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,其特征是實(shí)現(xiàn)步驟如下1)、根據(jù)任務(wù)狀態(tài)分析各類調(diào)度切換情況1.1)、OSEK標(biāo)準(zhǔn)中根據(jù)任務(wù)狀態(tài)分類的不同,將系統(tǒng)分為BCC1(基本任務(wù))、ECC1(擴(kuò)展任務(wù))兩種情況;其中BCC1中的任務(wù)狀態(tài)包含三種情況運(yùn)行、就緒、掛起,ECC1中的任務(wù)狀態(tài)包含四種情況運(yùn)行、就緒、等待、掛起;將任務(wù)的就緒狀態(tài)細(xì)分為中間態(tài)和初始態(tài),中間態(tài)即是任務(wù)運(yùn)行到一半被搶占或等待的事件發(fā)生后進(jìn)入就緒的狀態(tài),初始態(tài)是任務(wù)從掛起被激活到就緒狀態(tài)或系統(tǒng)啟動時任務(wù)直接進(jìn)入的就緒狀態(tài);1.2)、在BCC1下的調(diào)度情況分為以下三種調(diào)度情況1當(dāng)前任務(wù)運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為初始態(tài);不用保存當(dāng)前任務(wù)運(yùn)行環(huán)境,直接進(jìn)行指針賦值等操作后,即可運(yùn)行后一高優(yōu)先級任務(wù);調(diào)度情況2當(dāng)前任務(wù)運(yùn)行結(jié)束進(jìn)入掛起狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài);不用保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)后一高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;調(diào)度情況3當(dāng)前任務(wù)被搶占進(jìn)入就緒狀態(tài),即將運(yùn)行的高優(yōu)先級為初始態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后即可運(yùn)行高優(yōu)先級任務(wù)。1.3)、在ECC1下的調(diào)度情況,除上述1.2)以外,再加以下三種調(diào)度情況4當(dāng)前任務(wù)進(jìn)入等待狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)后一高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;調(diào)度情況5當(dāng)前任務(wù)進(jìn)入等待狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為初始態(tài);保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后即可運(yùn)行高優(yōu)先級任務(wù);調(diào)度情況6當(dāng)前任務(wù)被搶占進(jìn)入就緒狀態(tài),即將運(yùn)行的高優(yōu)先級任務(wù)為中間態(tài),且該任務(wù)是因為其等待的事件發(fā)生了而進(jìn)入中間態(tài)的,保存當(dāng)前任務(wù)運(yùn)行環(huán)境,進(jìn)行指針賦值等操作后,恢復(fù)高優(yōu)先級任務(wù)的運(yùn)行環(huán)境,再運(yùn)行;2)、把調(diào)度過程可以分為以下四步2.1)、在就緒任務(wù)中查找到最高優(yōu)先級的任務(wù);2.2)、保存當(dāng)前運(yùn)行任務(wù)的運(yùn)行環(huán)境;2.3)、進(jìn)行CPU占用指針賦值,即交換CPU占有權(quán);2.4)、恢復(fù)最高優(yōu)先級任務(wù)的運(yùn)行環(huán)境;3)、根據(jù)對調(diào)度過程四個步驟的覆蓋情況,優(yōu)化調(diào)度策略,分為以下四類3.1)、調(diào)度策略A最簡單情況,只做調(diào)度過程步驟的2.1)、2.3);3.2)、調(diào)度策略B一般情況,只做調(diào)度過程步驟的2.1)、2.2)、2.3);3.3)、調(diào)度策略C一般情況,只做調(diào)度過程步驟的2.1)、2.3)、2.4);3.4)、調(diào)度策略D最復(fù)雜情況,做全部調(diào)度過程步驟的2.1)、2.2)、2.3)、2.4);4)、根據(jù)任務(wù)運(yùn)行時實(shí)際調(diào)度情況的不同,選用不同的調(diào)度策略每種情況的調(diào)度所耗費(fèi)的時間T根據(jù)所選策略的不同有所不同,D對應(yīng)的TSD最多,A對應(yīng)的TSA最少,B和C對應(yīng)的TSB、TSC為中間值。
2.根據(jù)權(quán)利要求1所述的支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,其特征在于任務(wù)的狀態(tài)分為運(yùn)行、就緒、掛起、等待四種。運(yùn)行狀態(tài)的任務(wù)是指當(dāng)前占用CPU的任務(wù),就緒狀態(tài)的任務(wù)是已經(jīng)做好運(yùn)行準(zhǔn)備、只等CPU時間的任務(wù)或運(yùn)行一半后被其他任務(wù)搶占、又在等待CPU時間的任務(wù),掛起狀態(tài)的任務(wù)是自行運(yùn)行結(jié)束或剛剛產(chǎn)生而等待激活的任務(wù);等待狀態(tài)的任務(wù)是等待某一事件發(fā)生的任務(wù)。就緒狀態(tài)又細(xì)分為中間態(tài)和初始態(tài)。因為處于中間態(tài)和初始態(tài)的任務(wù)對恢復(fù)運(yùn)行環(huán)境的要求不一樣,調(diào)度策略針對任務(wù)切換時這兩種不同的狀態(tài)進(jìn)行優(yōu)化。對于初始態(tài)的任務(wù),直接去掉恢復(fù)運(yùn)行環(huán)境的步驟,從而減少調(diào)度的時間,提高性能。
3.根據(jù)權(quán)利要求1所述的支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,其特征在于操作系統(tǒng)采用全搶占的方式,所以任務(wù)切換點(diǎn)不僅發(fā)生在任務(wù)運(yùn)行結(jié)束之后,也發(fā)生在高優(yōu)先級的任務(wù)搶占低優(yōu)先級任務(wù)的時候。這兩種調(diào)度情況,對是否需要保存當(dāng)前運(yùn)行任務(wù)運(yùn)行環(huán)境的要求也是不一樣的。任務(wù)運(yùn)行結(jié)束進(jìn)行調(diào)度時,因為已經(jīng)完成所有操作,所以不需要保存其運(yùn)行環(huán)境。而被搶占的任務(wù)還沒有完成所有操作,需要在適當(dāng)?shù)臅r候繼續(xù)運(yùn)行,所以系統(tǒng)需要為其保存運(yùn)行環(huán)境。
4.根據(jù)權(quán)利要求1所述的支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,其特征在于OSEK標(biāo)準(zhǔn)規(guī)定,ECC1操作系統(tǒng)下的任務(wù)狀態(tài)有一種為等待狀態(tài)。任務(wù)因為等待某一個事件的發(fā)生而進(jìn)入等待狀態(tài),主動放棄CPU,等待事件發(fā)生后繼續(xù)運(yùn)行。因任務(wù)等待而發(fā)生的調(diào)度,進(jìn)入等待狀態(tài)的任務(wù)也沒有完成所有操作,需要在等待的事件發(fā)生之后繼續(xù)運(yùn)行,所以系統(tǒng)也要為其保存運(yùn)行環(huán)境。
全文摘要
本發(fā)明涉及一種支持OSEK標(biāo)準(zhǔn)的嵌入式操作系統(tǒng)的任務(wù)調(diào)度優(yōu)化方法,實(shí)現(xiàn)步驟如下1)根據(jù)任務(wù)狀態(tài)分析各類調(diào)度切換情況2)把調(diào)度過程可以分為以下四個步驟2.1)在就緒任務(wù)中查找到最高優(yōu)先級的任務(wù);2.2)保存當(dāng)前運(yùn)行任務(wù)的運(yùn)行環(huán)境;2.3)進(jìn)行CPU占用指針賦值,即交換CPU占有權(quán);2.4)恢復(fù)最高優(yōu)先級任務(wù)的運(yùn)行環(huán)境;3)根據(jù)對調(diào)度過程四個步驟的覆蓋情況,優(yōu)化調(diào)度策略,分為四類調(diào)度策略;4)根據(jù)任務(wù)運(yùn)行時實(shí)際調(diào)度情況的不同,選用不同的調(diào)度策略每種情況的調(diào)度所耗費(fèi)的時間T根據(jù)所選策略的不同有所不同。本發(fā)明的優(yōu)點(diǎn)針對每種調(diào)度點(diǎn)采用專用的調(diào)度策略,使任務(wù)切換時間在多數(shù)情況下明顯減少,大大優(yōu)化實(shí)時操作系統(tǒng)的時間性能。
文檔編號G06F9/46GK1737764SQ20051006073
公開日2006年2月22日 申請日期2005年9月12日 優(yōu)先權(quán)日2005年9月12日
發(fā)明者吳朝暉, 趙民德, 李紅, 厲蔣, 潘杭平, 姜旭鋒, 王磊 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
沅江市| 永康市| 靖江市| 景东| 基隆市| 惠州市| 抚顺市| 泸溪县| 柳江县| 温宿县| 新绛县| 河曲县| 工布江达县| 赤壁市| 菏泽市| 德安县| 顺平县| 德保县| 陈巴尔虎旗| 临漳县| 石泉县| 乌兰浩特市| 天等县| 白朗县| 洛南县| 赣州市| 乌什县| 婺源县| 曲阳县| 新野县| 阿拉善盟| 普陀区| 读书| 古田县| 中卫市| 西城区| 肃南| 增城市| 西乌| 上高县| 安塞县|