两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置及方法

文檔序號(hào):6470425閱讀:303來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式操作系統(tǒng)領(lǐng)域,確切地說(shuō),涉及一種入式操 作系統(tǒng)的任務(wù)調(diào)度裝置及方法。
背景技術(shù)
隨著多媒體、高速網(wǎng)絡(luò)等技術(shù)的快速發(fā)展,越來(lái)越多的嵌入式系 統(tǒng)要求具有聯(lián)網(wǎng)、圖形等復(fù)雜功能,以提高其圖形化管理、網(wǎng)絡(luò)化協(xié)
同操作等特性;而這些發(fā)展對(duì)于嵌入式系統(tǒng)底層的操作系統(tǒng)提出了越 來(lái)越高的要求,因嵌入式操:作系統(tǒng)(Embedded Operating System, EOS)負(fù)責(zé)嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào) 并發(fā)等活動(dòng);E0S是相對(duì)于一4殳操作系統(tǒng)而言的,它具備一般操作系 統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件處理等。
一方面,目前嵌入式系統(tǒng)大多通過(guò)有線(xiàn)或無(wú)線(xiàn)方式與外界相連, 網(wǎng)絡(luò)的連接性允許用戶(hù)可以遠(yuǎn)程監(jiān)視和控制系統(tǒng),并在系統(tǒng)運(yùn)行期間 下載新的程序與內(nèi)容,這大大提高了系統(tǒng)的易用性和功能擴(kuò)展性。然 而,這也使系統(tǒng)容易受到不可靠軟件的影響,在基于優(yōu)先級(jí)調(diào)度的多 任務(wù)嵌入式操作系統(tǒng)中,如果系統(tǒng)存在安全漏洞,惡意軟件可能會(huì)將 自己配制成高優(yōu)先級(jí)任務(wù)獨(dú)占或超時(shí)使用處理器資源,阻止其它重要 任務(wù)的運(yùn)行,從而導(dǎo)致整個(gè)系統(tǒng)的崩潰。另外,由于軟件設(shè)計(jì)不當(dāng), 某些高優(yōu)先級(jí)進(jìn)程也可能會(huì)出現(xiàn)這種問(wèn)題,造成該情況的直接原因是 目前嵌入式操作系統(tǒng)采用單級(jí)調(diào)度結(jié)構(gòu)。
目前,大多數(shù)嵌入式操作系統(tǒng)都屬于多任務(wù)操作系統(tǒng),且使用優(yōu) 先級(jí)單級(jí)調(diào)度算法調(diào)度任務(wù),如圖l所示,所有任務(wù)直接由系統(tǒng)調(diào)度 器調(diào)度,共享處理器的計(jì)算能力,假設(shè)由于設(shè)計(jì)錯(cuò)誤或安全漏洞導(dǎo)致 某任務(wù)長(zhǎng)期獨(dú)占或超時(shí)使用處理器,將會(huì)阻止或延遲其他任務(wù)的執(zhí)行, 進(jìn)而可能導(dǎo)致整個(gè)系統(tǒng)崩潰。比如最高優(yōu)先級(jí)任務(wù)1獨(dú)占處理器時(shí), 只要它不釋放處理器,其余n-1個(gè)低優(yōu)先級(jí)任務(wù)將永遠(yuǎn)的不到執(zhí)行機(jī)
6會(huì)。
另一方面,隨著嵌入式系統(tǒng)應(yīng)用向著高性能、網(wǎng)絡(luò)化、智能化方 向的不斷深入發(fā)展,開(kāi)放式混合實(shí)時(shí)需求也變得越來(lái)越突出。很多嵌 入式系統(tǒng)不僅要求多類(lèi)型的硬實(shí)時(shí)、軟實(shí)時(shí)和非實(shí)時(shí)任務(wù)并存,還要 求任務(wù)能夠動(dòng)態(tài)加入和退出,以及任務(wù)的執(zhí)行時(shí)間具有時(shí)變特征。比 如多媒體系統(tǒng)要求穩(wěn)定周期的幀處理和顯示,而幀信息的處理計(jì)算時(shí)
間又隨著影片的不同而動(dòng)態(tài)地變化;網(wǎng)絡(luò)服務(wù)系統(tǒng)需要針對(duì)不同類(lèi)別 的用戶(hù)、不同服務(wù)請(qǐng)求的特性提供不同實(shí)時(shí)Qos保證的服務(wù),且服務(wù) 請(qǐng)求負(fù)載呈現(xiàn)動(dòng)態(tài)不確定性變化等。然而,傳統(tǒng)的基于單級(jí)調(diào)度策略 架構(gòu)的實(shí)時(shí)操作系統(tǒng)無(wú)法滿(mǎn)足這些多類(lèi)型任務(wù)并發(fā)、系統(tǒng)負(fù)載動(dòng)態(tài)變 化等開(kāi)放混合實(shí)時(shí)系統(tǒng)任務(wù)調(diào)度的需求。
針對(duì)目前嵌入式實(shí)時(shí)操作系統(tǒng)所面臨的挑戰(zhàn),國(guó)內(nèi)外研究人員已 經(jīng)開(kāi)始研究新的、安全的、高效的開(kāi)放式混合任務(wù)調(diào)度機(jī)制。專(zhuān)利號(hào) 為US2006206887的美國(guó)發(fā)明專(zhuān)利"Adaptive partitioning for operating system"揭示了一種基于優(yōu)先級(jí)的自適應(yīng)分區(qū)調(diào)度裝置, 該裝置可以生成多個(gè)自適應(yīng)分區(qū),其中這些自適應(yīng)分區(qū)的每個(gè)都與一 個(gè)或多個(gè)軟件線(xiàn)程相關(guān),并且,每一個(gè)分區(qū)都具有相應(yīng)的處理器預(yù)算。 在系統(tǒng)運(yùn)行期間,如果高優(yōu)先級(jí)任務(wù)耗盡了所屬分區(qū)的處理器預(yù)算, 則停止執(zhí)行,釋放處理器等待下一個(gè)系統(tǒng)調(diào)度周期。通過(guò)這種自適應(yīng) 分區(qū)調(diào)度策略,系統(tǒng)為各級(jí)優(yōu)先級(jí)的任務(wù)提供公平共享的執(zhí)行時(shí)間保 證,防止了高優(yōu)先級(jí)任務(wù)獨(dú)占處理器,使低優(yōu)先級(jí)任務(wù)也有機(jī)會(huì)運(yùn)行。 然而,該專(zhuān)利調(diào)度方法和調(diào)度對(duì)象單一,只能對(duì)同種類(lèi)型的靜態(tài)優(yōu)先 級(jí)任務(wù)進(jìn)行全局調(diào)度,而且在系統(tǒng)運(yùn)行期間不能動(dòng)態(tài)加入和退出任 務(wù),無(wú)法滿(mǎn)足開(kāi)放式混合實(shí)時(shí)系統(tǒng)中多類(lèi)型任務(wù)并發(fā),系統(tǒng)動(dòng)態(tài)變化 的需求。
專(zhuān)利號(hào)為US2006206881的美國(guó)專(zhuān)利"Process scheduler employing adaptive partitioning of critical process threads" 和專(zhuān)利號(hào)為CN200610064818的中國(guó)專(zhuān)利"釆用進(jìn)程線(xiàn)程的自適應(yīng)分 區(qū)的進(jìn)程調(diào)度程序"則在US2006206887的基礎(chǔ)上通過(guò)設(shè)置臨界時(shí)間 預(yù)算來(lái)保證一些關(guān)鍵臨界任務(wù)的執(zhí)行,但它們依然沒(méi)有能夠解決專(zhuān)利
7US2006206887存在的問(wèn)題。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種嵌入式操作系統(tǒng)的任務(wù) 調(diào)度裝置及方法,本發(fā)明克服了當(dāng)前嵌入式操作系統(tǒng)中調(diào)度機(jī)制存在 的只能對(duì)同種類(lèi)型的靜態(tài)優(yōu)先級(jí)任務(wù)進(jìn)行全局調(diào)度的缺陷,并且解決 了系統(tǒng)運(yùn)行期間不能動(dòng)態(tài)加入和退出任務(wù)的問(wèn)題。
一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置,包括處理器、系統(tǒng)調(diào)度器 和系統(tǒng)可調(diào)度任務(wù)集合模塊,還包括自適應(yīng)分區(qū)模塊,
所述自適應(yīng)分區(qū)模塊包括自適應(yīng)分區(qū)、分區(qū)調(diào)度器以及任務(wù)隊(duì) 列,每個(gè)自適應(yīng)分區(qū)均具有一個(gè)分區(qū)調(diào)度器和一個(gè)任務(wù)隊(duì)列,所述任 務(wù)隊(duì)列用來(lái)存儲(chǔ)加入的任務(wù);所述分區(qū)調(diào)度器用于計(jì)算其所屬自適應(yīng) 分區(qū)所需的最小處理器計(jì)算能力和分區(qū)調(diào)度周期,并將計(jì)算結(jié)果發(fā)送 給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于按照分區(qū)調(diào)度策略調(diào)度相 應(yīng)任務(wù)隊(duì)列中的任務(wù);
所述系統(tǒng)調(diào)度器用于根據(jù)所述系統(tǒng)可調(diào)度任務(wù)集合模塊中任務(wù) 的類(lèi)型初始化所述自適應(yīng)分區(qū)模塊的自適應(yīng)分區(qū);計(jì)算所述各自適應(yīng) 分區(qū)所需的最小處理器計(jì)算能力占處理器計(jì)算能力的比例,并設(shè)置系 統(tǒng)調(diào)度周期;根據(jù)所述比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系統(tǒng)調(diào)度周期內(nèi) 能夠分配到的處理器時(shí)間,并將所述時(shí)間標(biāo)記給各自適應(yīng)分區(qū);以及 按照系統(tǒng)調(diào)度策略調(diào)度各自適應(yīng)分區(qū);
所述系統(tǒng)可調(diào)度任務(wù)集合模塊用來(lái)存儲(chǔ)已加入的任務(wù)或者申請(qǐng) 退出的任務(wù)。
所述系統(tǒng)調(diào)度模塊還用于為每個(gè)自適應(yīng)分區(qū)生成唯一的標(biāo)識(shí)符; 以及監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù)集合模塊中是否有任務(wù)加入或者申請(qǐng) 退出,且在監(jiān)測(cè)到有任務(wù)加入時(shí),根據(jù)所述任務(wù)的類(lèi)型查找所述自適 應(yīng)分區(qū)模塊中是否有與之相匹配的已初始化的自適應(yīng)分區(qū),若是,則 將所述任務(wù)加入到相應(yīng)自適應(yīng)分區(qū)的任務(wù)隊(duì)列中;否則,為所述任務(wù) 初始化一個(gè)新的自適應(yīng)分區(qū),將所述任務(wù)加入到所述新的自適應(yīng)分區(qū) 的任務(wù)隊(duì)列中;在監(jiān)測(cè)到有任務(wù)申請(qǐng)退出時(shí),刪除所述任務(wù),并檢查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否為空,若是,則刪除相應(yīng)的自適應(yīng)分區(qū)。 所述裝置還包括任務(wù)接收控制模塊,用于根據(jù)系統(tǒng)中剩余處理器 計(jì)算能力控制任務(wù)的加入,并將加入的任務(wù)添加到所述系統(tǒng)可調(diào)度任
務(wù)集合模塊中;以及在系統(tǒng)運(yùn)行期間,有任務(wù)申請(qǐng)退出時(shí)將所述申請(qǐng)
退出的任務(wù)添加到所述系統(tǒng)可調(diào)度集合模塊中。
一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,包括如下步驟 步驟一系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務(wù)集合中的任務(wù)類(lèi)型初始 化自適應(yīng)分區(qū);
步驟二所述自適應(yīng)分區(qū)的分區(qū)調(diào)度器計(jì)算其所屬自適應(yīng)分區(qū)所 需的最小處理器計(jì)算能力和分區(qū)調(diào)度周期,并將計(jì)算結(jié)果發(fā)送給所述 系統(tǒng)調(diào)度器;
步驟三所述系統(tǒng)調(diào)度器根據(jù)接收到的各自適應(yīng)分區(qū)所需的最小 處理器計(jì)算能力計(jì)算各自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力占處 理器計(jì)算能力的比例,并根據(jù)接收到的各自適應(yīng)分區(qū)的分區(qū)調(diào)度周期 設(shè)置系統(tǒng)調(diào)度周期;然后根據(jù)所述比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系統(tǒng) 調(diào)度周期內(nèi)能夠分配到的處理器時(shí)間,并將所述時(shí)間標(biāo)記給各自適應(yīng) 分區(qū);
步驟四所述系統(tǒng)調(diào)度器在系統(tǒng)調(diào)度周期內(nèi)根據(jù)系統(tǒng)調(diào)度策略調(diào) 度各自適應(yīng)分區(qū),并為各自適應(yīng)分區(qū)分配處理器時(shí)間,當(dāng)前調(diào)度的自 適應(yīng)分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時(shí) 間內(nèi)調(diào)度任務(wù)隊(duì)列中的任務(wù)。
所述步驟一還包括為所述各自適應(yīng)分區(qū)生成唯一標(biāo)識(shí)符。
在系統(tǒng)運(yùn)行期間,所述系統(tǒng)調(diào)度器監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù)集合 中是否有任務(wù)加入或者申請(qǐng)退出,若監(jiān)測(cè)到有任務(wù)加入或者申請(qǐng)退 出,則在當(dāng)前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟
步驟a:判斷系統(tǒng)可調(diào)度任務(wù)集合中當(dāng)前任務(wù)是新加入的任務(wù)還 是申請(qǐng)退出的任務(wù),若是新加入的任務(wù),則執(zhí)行步驟b;若是申請(qǐng)退 出的任務(wù),則執(zhí)行步驟c;
步驟b:根據(jù)所述任務(wù)的類(lèi)型查找自適應(yīng)分區(qū)模塊中是否有與之 相匹配的已初始化的自適應(yīng)分區(qū),若是,則將所述任務(wù)加入到相應(yīng)自
9適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟二執(zhí)行;否則,為所述任務(wù)初始化
一個(gè)新的自適應(yīng)分區(qū),并為所述新的自適應(yīng)分區(qū)生成唯一標(biāo)識(shí)符,將 所述任務(wù)加入到所述新的自適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟二執(zhí)
行;
步驟c:刪除所述任務(wù),并檢查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否為 空,若是,則刪除相應(yīng)的自適應(yīng)分區(qū),轉(zhuǎn)入步驟二執(zhí)行;否則,直接 轉(zhuǎn)入步驟二執(zhí)行。
若系統(tǒng)運(yùn)行期間有任務(wù)申請(qǐng)加入,則任務(wù)接收控制模塊執(zhí)行如下 操作
步驟(1):計(jì)算申請(qǐng)加入的任務(wù)所需的最小處理器計(jì)算能力及系 統(tǒng)剩余的處理器計(jì)算能力;
步驟(2 ):比較所述系統(tǒng)剩余的處理器計(jì)算能力是否大于所述申 請(qǐng)加入的任務(wù)所需的最小處理器計(jì)算能力,若是,則執(zhí)行步驟(3); 否則,拒絕所述任務(wù)加入;
步驟(3 ):將所述任務(wù)加入到系統(tǒng)可調(diào)度集合中。
若系統(tǒng)運(yùn)行期間有任務(wù)申請(qǐng)退出,則任務(wù)接收控制模塊將所述任 務(wù)加入到所述系統(tǒng)可調(diào)度任務(wù)集合中。
所述步驟四中,所述系統(tǒng)調(diào)度器是通過(guò)各自適應(yīng)分區(qū)的標(biāo)識(shí)符來(lái) 調(diào)度各自適應(yīng)分區(qū)的。
所述步驟二中,所述自適應(yīng)分區(qū)的分區(qū)調(diào)度器是根據(jù)其所屬的自 適應(yīng)分區(qū)所轄任務(wù)的類(lèi)型及運(yùn)行參數(shù)計(jì)算其所屬自適應(yīng)分區(qū)所需的 最小處理器計(jì)算能力及分區(qū)調(diào)度周期的。
本發(fā)明基于自適應(yīng)分區(qū)技術(shù),按比例分配處理器計(jì)算資源,不僅 防止了不可靠程序搶占重要任務(wù)的處理器時(shí)間,還阻止了惡意代碼獨(dú) 占處理器資源,有效^提高了系統(tǒng)的可靠性。同時(shí),本發(fā)明通過(guò)采用新 任務(wù)準(zhǔn)入控制、二級(jí)任務(wù)調(diào)度、自適應(yīng)調(diào)節(jié)處理器能力機(jī)制,使系統(tǒng) 能夠有效地調(diào)度各類(lèi)實(shí)時(shí)約束的任務(wù)集;在不影響先前任務(wù)運(yùn)行的前 提下,有控制地添加新任務(wù);根據(jù)系統(tǒng)負(fù)載變化,自適應(yīng)調(diào)整處理器 資源配置,滿(mǎn)足了當(dāng)前開(kāi)放式實(shí)時(shí)系統(tǒng)高可靠性、實(shí)時(shí)與非實(shí)時(shí)任務(wù) 并發(fā)、計(jì)算環(huán)境不確定性等需求,具有擴(kuò)展性好,系統(tǒng)可靠運(yùn)行,應(yīng)
10用范圍廣等特點(diǎn)。


圖1是現(xiàn)有單級(jí)調(diào)度任務(wù)方法示意圖; 圖2是本發(fā)明所述裝置結(jié)構(gòu)示意圖3是本發(fā)明所述裝置在Linux梯:作系統(tǒng)上實(shí)現(xiàn)的結(jié)構(gòu)示意圖4為本發(fā)明所述方法流程圖5為本發(fā)明所述方法的任務(wù)調(diào)度序列示意圖6為本發(fā)明所述方法在運(yùn)行時(shí)有新任務(wù)申請(qǐng)加入時(shí)的流程圖。
具體實(shí)施例方式
以下結(jié)合附圖和優(yōu)選實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明基于自適應(yīng)分區(qū)技術(shù),按比例分配處理器計(jì)算資源,目前 已在Linux操作系統(tǒng)內(nèi)核得以實(shí)現(xiàn)。對(duì)于微內(nèi)核操作系統(tǒng),本發(fā)明所 述裝置也可以在內(nèi)核外實(shí)現(xiàn)。所以需要指出的是,本發(fā)明不局限于任 何具體的硬件平臺(tái)架構(gòu)和操作系統(tǒng)類(lèi)型,具有較廣泛的通用性。
圖2是本發(fā)明所述裝置結(jié)構(gòu)示意圖,應(yīng)用于嵌入式系統(tǒng),包括處 理器、系統(tǒng)調(diào)度器、系統(tǒng)可調(diào)度任務(wù)集合模塊、自適應(yīng)分區(qū)模塊以及 任務(wù)接收控制模塊;
所述系統(tǒng)調(diào)度器是整個(gè)裝置的核心,用于根據(jù)所述系統(tǒng)可調(diào)度任 務(wù)集合模塊中任務(wù)的類(lèi)型初始化所述自適應(yīng)分區(qū)模塊的自適應(yīng)分區(qū), 并為每個(gè)自適應(yīng)分區(qū)生成唯一的標(biāo)識(shí)符;根據(jù)接收到的各自適應(yīng)分區(qū) 所需的最小處理器計(jì)算能力計(jì)算各自適應(yīng)分區(qū)所需的最小處理器計(jì) 算能力占處理器計(jì)算能力的比例,并根據(jù)接收到的各自適應(yīng)分區(qū)的分 區(qū)調(diào)度周期設(shè)置系統(tǒng)調(diào)度周期;根據(jù)所述各自適應(yīng)分區(qū)所需的最小處 理器計(jì)算能力占處理器計(jì)算能力的比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系 統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時(shí)間,并將所述時(shí)間標(biāo)記給各自適 應(yīng)分區(qū);以及按照系統(tǒng)調(diào)度策略調(diào)度(如輪詢(xún)算法)各自適應(yīng)分區(qū); 還用于監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù)集合模塊中是否有任務(wù)加入或者申 請(qǐng)退出,且在監(jiān)測(cè)到有任務(wù)加入時(shí),才艮據(jù)所述任務(wù)的類(lèi)型查找所述自適應(yīng)分區(qū)模塊中是否有與之相匹配的已初始化的自適應(yīng)分區(qū),若是,
則將所述任務(wù)加入到相應(yīng)自適應(yīng)分區(qū)的任務(wù)隊(duì)列中;否則,為所述任
務(wù)初始化一個(gè)新的自適應(yīng)分區(qū),將所述任務(wù)加入到所述新的自適應(yīng)分
區(qū)的任務(wù)隊(duì)列中;在監(jiān)測(cè)到有任務(wù)申請(qǐng)退出時(shí),刪除所述任務(wù),并檢 查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否為空,若是,則刪除相應(yīng)的自適應(yīng)分 區(qū)。
所述系統(tǒng)可調(diào)度任務(wù)集合模塊用來(lái)存儲(chǔ)已加入的任務(wù)或者申請(qǐng) 退出的任務(wù)。
所述自適應(yīng)分區(qū)模塊為邏輯上的時(shí)間間隔區(qū),包括自適應(yīng)分區(qū)、 分區(qū)調(diào)度器以及任務(wù)隊(duì)列,每個(gè)自適應(yīng)分區(qū)均具有一個(gè)分區(qū)調(diào)度器和 一個(gè)任務(wù)隊(duì)列,所述任務(wù)隊(duì)列用來(lái)存儲(chǔ)加入的任務(wù);所述分區(qū)調(diào)度器 用于計(jì)算其所屬自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力和分區(qū)調(diào)度 周期,并將計(jì)算結(jié)果發(fā)送給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于 按照分區(qū)調(diào)度策略調(diào)度相應(yīng)任務(wù)隊(duì)列中的任務(wù)。
所述任務(wù)接收控制模塊,用于根據(jù)系統(tǒng)中剩余處理器計(jì)算能力控 制新任務(wù)的加入,并將加入的任務(wù)添加到所述系統(tǒng)可調(diào)度任務(wù)集合才莫 塊中,以保證新任務(wù)的加入不會(huì)破壞先前任務(wù)的可調(diào)度性;以及在系 統(tǒng)運(yùn)行期間,有任務(wù)申請(qǐng)退出時(shí)將所述申請(qǐng)退出的任務(wù)添加到所述系 統(tǒng)可調(diào)度集合模塊中。
圖3是本發(fā)明所述裝置在Linux操作系統(tǒng)上實(shí)現(xiàn)的結(jié)構(gòu)示意圖; Linux操作系統(tǒng)分為內(nèi)核態(tài)與用戶(hù)態(tài),內(nèi)核任務(wù)運(yùn)行在內(nèi)核態(tài),而應(yīng) 用程序運(yùn)行在用戶(hù)態(tài)。本實(shí)施例在Linux操作系統(tǒng)內(nèi)核中實(shí)現(xiàn),所以 運(yùn)行在內(nèi)核態(tài),如圖所示,本實(shí)施例中共設(shè)置了四個(gè)自適應(yīng)分區(qū),分 別處理不同類(lèi)型的任務(wù)。其中,自適應(yīng)分區(qū)1負(fù)責(zé)處理非實(shí)時(shí)性任務(wù), 自適應(yīng)分區(qū)2負(fù)責(zé)處理優(yōu)先級(jí)沖頂速率單調(diào)的實(shí)時(shí)任務(wù),自適應(yīng)分區(qū) 3負(fù)責(zé)處理面向最小空閑時(shí)間優(yōu)先的實(shí)時(shí)任務(wù),自適應(yīng)分區(qū)4則負(fù)責(zé) 處理基于時(shí)鐘驅(qū)動(dòng)循環(huán)類(lèi)型的實(shí)時(shí)任務(wù)。
本實(shí)施例中,系統(tǒng)調(diào)度器采用最早截止期限優(yōu)先調(diào)度策略來(lái)調(diào)度 各自適應(yīng)分區(qū);同時(shí),系統(tǒng)調(diào)度器可感知任務(wù)的動(dòng)態(tài)加入和退出,根 據(jù)情況新建自適應(yīng)分區(qū)或調(diào)整分區(qū)所占的處理器計(jì)算能力。圖4為本發(fā)明所述方法流程圖,下面通過(guò)結(jié)合圖3具體描述本發(fā)
明所述方法的步驟
步驟401:系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務(wù)集合中的任務(wù)類(lèi)型初 始化自適應(yīng)分區(qū),并為每個(gè)自適應(yīng)分區(qū)生成唯一標(biāo)識(shí)符;
每一個(gè)自適應(yīng)分區(qū)代表一種調(diào)度策略,相同調(diào)度類(lèi)型的任務(wù)被分 配到相同的自適應(yīng)分區(qū)的任務(wù)隊(duì)列中,每一個(gè)自適應(yīng)分區(qū)都要被唯一 標(biāo)識(shí),從而可以讓系統(tǒng)調(diào)度器進(jìn)一步訪(fǎng)問(wèn)。
圖3所示實(shí)施例中,共有四個(gè)自適應(yīng)分區(qū),分別是:AS1 (分時(shí) 調(diào)度);AS2 (優(yōu)先級(jí)沖頂速率單調(diào)調(diào)度);AS3 (最小空閑時(shí)間優(yōu)先調(diào) 度)和AS4 (基于時(shí)鐘驅(qū)動(dòng)循環(huán)調(diào)度),每一個(gè)分區(qū)中都有分區(qū)調(diào)度 器和任務(wù)隊(duì)列。
步驟402:各自適應(yīng)分區(qū)的分區(qū)調(diào)度器根據(jù)其所屬的自適應(yīng)分區(qū) 所轄任務(wù)的類(lèi)型和運(yùn)行參數(shù)計(jì)算其所屬的自適應(yīng)分區(qū)所需的最小處 理器計(jì)算能力及分區(qū)調(diào)度周期;
圖3所示實(shí)施例中,確定四個(gè)自適應(yīng)分區(qū)所需的最小處理器計(jì)算 能力和調(diào)度周期分別為AS1 ( 0. 15,260 ) ;AS2 ( 0. 05, 330 ); AS3 (0. 2, 100); AS4 ( 0. 1, 120)。
步驟403:所述系統(tǒng)調(diào)度器對(duì)接收到的各自適應(yīng)分區(qū)所需的最小 處理器計(jì)算能力進(jìn)行歸一化計(jì)算,即令處理器的計(jì)算能力為1. 0,計(jì) 算各自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力占處理器計(jì)算能力的比 例,并根據(jù)接收到的各自適應(yīng)分區(qū)的分區(qū)調(diào)度周期設(shè)置系統(tǒng)調(diào)度周
期;
圖3所示實(shí)施例中,各自適應(yīng)分區(qū)所需的最小處理器能力占處理 器計(jì)算能力的比例為(0.3, 0.1, 0.4, 0.2);確定系統(tǒng)調(diào)度周期為 100ms。
步驟404:系統(tǒng)調(diào)度器按照各自適應(yīng)分區(qū)所需的最小處理器能力 占處理器計(jì)算能力的比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系統(tǒng)周期內(nèi)能夠 分配到的處理器時(shí)間預(yù)算,并將所述時(shí)間預(yù)算標(biāo)記給各自適應(yīng)分區(qū);
圖3所示實(shí)施例中,各自適應(yīng)分區(qū)在一個(gè)系統(tǒng)周期內(nèi)能夠分配到 的處理器時(shí)間預(yù)算分別為(30, 10, 40, 20 )。步驟405:系統(tǒng)調(diào)度器根據(jù)系統(tǒng)調(diào)度策略調(diào)度各自適應(yīng)分區(qū),并 按照各自適應(yīng)分區(qū)標(biāo)記的處理器時(shí)間為其分配處理器時(shí)間;
圖3所示實(shí)施例中,由于系統(tǒng)調(diào)度器采用的是最早截止期限優(yōu)先 調(diào)度策略,每個(gè)自適應(yīng)分區(qū)所分配到的處理器時(shí)間也就是其截止期 限,所以,按照(30, 10, 40, 20)的時(shí)間分配,系統(tǒng)調(diào)度器按照 AS2-AS4-AS1-AS3的順序調(diào)度各自適應(yīng)分區(qū)。
步驟406:各自適應(yīng)分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所 分配到的處理器時(shí)間內(nèi)調(diào)度所屬自適應(yīng)分區(qū)的任務(wù)隊(duì)列中的任務(wù)。
如圖5所示,是二級(jí)調(diào)度的時(shí)間序列示意圖,才艮據(jù)最早截止期限 優(yōu)先調(diào)度策略,系統(tǒng)調(diào)度器以AS2-AS4-AS1-AS3的順序調(diào)度各自適應(yīng) 分區(qū),并分配相應(yīng)的處理器時(shí)間,每個(gè)自適應(yīng)分區(qū)在分配的處理器時(shí) 間內(nèi)按自身調(diào)度策略調(diào)度其任務(wù)隊(duì)列中的任務(wù),其中,t表示任務(wù), AS3自適應(yīng)分區(qū)的分區(qū)調(diào)度器調(diào)度所屬任務(wù)隊(duì)列的任務(wù)的次序?yàn)?tl-t2-t3。
上述步驟405中,系統(tǒng)調(diào)度器通過(guò)如下方法調(diào)度各自適應(yīng)分區(qū) 在自適應(yīng)分區(qū)調(diào)度開(kāi)始后,用當(dāng)前自適應(yīng)分區(qū)剩余的處理器時(shí)間減去 本次調(diào)度時(shí)間內(nèi)上一個(gè)系統(tǒng)時(shí)鐘中斷與當(dāng)前系統(tǒng)時(shí)鐘中斷的時(shí)間差, 比較得到的結(jié)果是否為零,若是,則當(dāng)前自適應(yīng)分區(qū)的時(shí)間到,轉(zhuǎn)入 下一個(gè)自適應(yīng)分區(qū);否則,繼續(xù)調(diào)度當(dāng)前自適應(yīng)分區(qū)。
在系統(tǒng)運(yùn)行期間,若有新任務(wù)申請(qǐng)加入,則任務(wù)接收控制模塊會(huì) 根據(jù)系統(tǒng)剩余的處理器計(jì)算能力有控制地接收,以確保新任務(wù)的加入 不會(huì)破壞先前任務(wù)集的運(yùn)行,如圖6所述,是有新任務(wù)申請(qǐng)加入時(shí)的 流程圖,具體操作內(nèi)容包括
步驟601:計(jì)算申請(qǐng)加入的任務(wù)所需的最小處理器計(jì)算能力及系 統(tǒng)剩余的處理器計(jì)算能力;
步驟602:比較所述系統(tǒng)剩余的處理器計(jì)算能力是否大于所述申 請(qǐng)加入任務(wù)所需的最小處理器計(jì)算能力,若是,則執(zhí)行步驟604;否 則,執(zhí)行步驟603;
步驟6G3:拒絕所述任務(wù)加入;
步驟604:允許加入,并將所述任務(wù)加入到系統(tǒng)可調(diào)度任務(wù)集合
14中。
在系統(tǒng)運(yùn)行期間,若系統(tǒng)運(yùn)行期間有任務(wù)申請(qǐng)退出,則任務(wù)接收 控制模塊將所述任務(wù)加入到所述系統(tǒng)可調(diào)度任務(wù)集合中。
在系統(tǒng)運(yùn)行期間,所述系統(tǒng)調(diào)度器監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù)集合 中是否有任務(wù)加入或者申請(qǐng)退出,若監(jiān)測(cè)到有任務(wù)加入或者申請(qǐng)退
出,則在當(dāng)前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟
步驟(1):判斷系統(tǒng)可調(diào)度任務(wù)集合中當(dāng)前任務(wù)是新加入的任務(wù) 還是申請(qǐng)退出的任務(wù),若是新加入的任務(wù),則執(zhí)行步驟(2);若是申 請(qǐng)退出的任務(wù),則執(zhí)行步驟(3 );
步驟(2):根據(jù)所述任務(wù)的類(lèi)型查找自適應(yīng)分區(qū)模塊中是否有與 之相匹配的已初始化的自適應(yīng)分區(qū),若是,則將所述任務(wù)加入到相應(yīng) 自適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟402執(zhí)行;否則,為所述任務(wù)初 始化一個(gè)新的自適應(yīng)分區(qū),并為所述新的自適應(yīng)分區(qū)生成唯一標(biāo)識(shí) 符,將所述任務(wù)加入到所述新的自適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟 402執(zhí)行;
步驟(3):刪除所述任務(wù),并檢查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否 為空,若是,則刪除相應(yīng)的自適應(yīng)分區(qū),轉(zhuǎn)入步驟402執(zhí)行;否則, 直接轉(zhuǎn)入步驟402執(zhí)行。
本發(fā)明可以在保證嵌入式實(shí)時(shí)操作系統(tǒng)可靠安全運(yùn)行的前提下, 支持多種類(lèi)型任務(wù)共存,并可利用剩余計(jì)算資源進(jìn)行系統(tǒng)擴(kuò)充,可有 效延長(zhǎng)嵌入式實(shí)時(shí)系統(tǒng)的運(yùn)行生命周期。
權(quán)利要求
1、一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置,包括處理器、系統(tǒng)調(diào)度器和系統(tǒng)可調(diào)度任務(wù)集合模塊,其特征在于,還包括自適應(yīng)分區(qū)模塊,所述自適應(yīng)分區(qū)模塊包括自適應(yīng)分區(qū)、分區(qū)調(diào)度器以及任務(wù)隊(duì)列,每個(gè)自適應(yīng)分區(qū)均具有一個(gè)分區(qū)調(diào)度器和一個(gè)任務(wù)隊(duì)列,所述任務(wù)隊(duì)列用來(lái)存儲(chǔ)加入的任務(wù);所述分區(qū)調(diào)度器用于計(jì)算其所屬自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力和分區(qū)調(diào)度周期,并將計(jì)算結(jié)果發(fā)送給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于按照分區(qū)調(diào)度策略調(diào)度相應(yīng)任務(wù)隊(duì)列中的任務(wù);所述系統(tǒng)調(diào)度器用于根據(jù)所述系統(tǒng)可調(diào)度任務(wù)集合模塊中任務(wù)的類(lèi)型初始化所述自適應(yīng)分區(qū)模塊的自適應(yīng)分區(qū);計(jì)算所述各自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力占處理器計(jì)算能力的比例,并設(shè)置系統(tǒng)調(diào)度周期;根據(jù)所述比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時(shí)間,并將所述時(shí)間標(biāo)記給各自適應(yīng)分區(qū);以及按照系統(tǒng)調(diào)度策略調(diào)度各自適應(yīng)分區(qū);所述系統(tǒng)可調(diào)度任務(wù)集合模塊用來(lái)存儲(chǔ)已加入的任務(wù)或者申請(qǐng)退出的任務(wù)。
2、 如權(quán)利要求1所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置,其特 征在于,所述系統(tǒng)調(diào)度模塊還用于為每個(gè)自適應(yīng)分區(qū)生成唯一的標(biāo)識(shí) 符;以及監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù)集合模塊中是否有任務(wù)加入或者申 請(qǐng)退出,且在監(jiān)測(cè)到有任務(wù)加入時(shí),才艮據(jù)所述任務(wù)的類(lèi)型查找所述自 適應(yīng)分區(qū)模塊中是否有與^目匹配的已初始化的自適應(yīng)分區(qū),若是, 則將所述任務(wù)加入到相應(yīng)自適應(yīng)分區(qū)的任務(wù)隊(duì)列中;否則,為所述任 務(wù)初始化一個(gè)新的自適應(yīng)分區(qū),將所述任務(wù)加入到所述新的自適應(yīng)分 區(qū)的任務(wù)隊(duì)列中;在監(jiān)測(cè)到有任務(wù)申請(qǐng)退出時(shí),刪除所述任務(wù),并檢 查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否為空,若是,則刪除相應(yīng)的自適應(yīng)分 區(qū)。
3、 如權(quán)利要求1所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置,其特征在于,所述裝置還包括任務(wù)接收控制模塊,用于根據(jù)系統(tǒng)中剩余處 理器計(jì)算能力控制任務(wù)的加入,并將加入的任務(wù)添加到所述系統(tǒng)可調(diào)度任務(wù)集合模塊中;以及在系統(tǒng)運(yùn)行期間,有任務(wù)申請(qǐng)退出時(shí)將所述申請(qǐng)退出的任務(wù)添加到所述系統(tǒng)可調(diào)度集合模塊中。
4、 一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特征在于,包括如 下步驟步驟一系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務(wù)集合中的任務(wù)類(lèi)型初始 化自適應(yīng)分區(qū);步驟二所述自適應(yīng)分區(qū)的分區(qū)調(diào)度器計(jì)算其所屬自適應(yīng)分區(qū)所 需的最小處理器計(jì)算能力和分區(qū)調(diào)度周期,并將計(jì)算結(jié)果發(fā)送給所述 系統(tǒng)調(diào)度器;步驟三所述系統(tǒng)調(diào)度器根據(jù)接收到的各自適應(yīng)分區(qū)所需的最小 處理器計(jì)算能力計(jì)算各自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力占處 理器計(jì)算能力的比例,并根據(jù)接收到的各自適應(yīng)分區(qū)的分區(qū)調(diào)度周期 設(shè)置系統(tǒng)調(diào)度周期;然后根據(jù)所述比例計(jì)算各自適應(yīng)分區(qū)在一個(gè)系統(tǒng) 調(diào)度周期內(nèi)能夠分配到的處理器時(shí)間,并將所述時(shí)間標(biāo)記給各自適應(yīng) 分區(qū);步驟四所述系統(tǒng)調(diào)度器在系統(tǒng)調(diào)度周期內(nèi)根據(jù)系統(tǒng)調(diào)度策略調(diào) 度各自適應(yīng)分區(qū),并為各自適應(yīng)分區(qū)分配處理器時(shí)間,當(dāng)前調(diào)度的自 適應(yīng)分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時(shí) 間內(nèi)調(diào)度任務(wù)隊(duì)列中的任務(wù)。
5、 如權(quán)利要求4所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特 征在于,其特征在于,所述步驟一還包括為所述各自適應(yīng)分區(qū)生成 唯一標(biāo)識(shí)符。
6、 如權(quán)利要求4所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特 征在于,在系統(tǒng)運(yùn)行期間,所述系統(tǒng)調(diào)度器監(jiān)測(cè)所述系統(tǒng)可調(diào)度任務(wù) 集合中是否有任務(wù)加入或者申請(qǐng)退出,若監(jiān)測(cè)到有任務(wù)加入或者申請(qǐng) 退出,則在當(dāng)前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟步驟a:判斷系統(tǒng)可調(diào)度任務(wù)集合中當(dāng)前任務(wù)是新加入的任務(wù)還 是申請(qǐng)退出的任務(wù),若是新加入的任務(wù),則執(zhí)行步驟b;若是申請(qǐng)退 出的任務(wù),則執(zhí)行步驟c;步驟b:根據(jù)所述任務(wù)的類(lèi)型查找自適應(yīng)分區(qū)模塊中是否有與之 相匹配的已初始化的自適應(yīng)分區(qū),若是,則將所述任務(wù)加入到相應(yīng)自 適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟二執(zhí)行;否則,為所述任務(wù)初始化 一個(gè)新的自適應(yīng)分區(qū),并為所述新的自適應(yīng)分區(qū)生成唯一標(biāo)識(shí)符,將 所述任務(wù)加入到所述新的自適應(yīng)分區(qū)的任務(wù)隊(duì)列中,轉(zhuǎn)入步驟二執(zhí) 行;步驟c:刪除所述任務(wù),并檢查各自適應(yīng)分區(qū)的任務(wù)隊(duì)列是否為 空,若是,則刪除相應(yīng)的自適應(yīng)分區(qū),轉(zhuǎn)入步驟二執(zhí)行;否則,直接 轉(zhuǎn)入步驟二執(zhí)行。
7、 如權(quán)利要求4所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特 征在于,若系統(tǒng)運(yùn)行期間有任務(wù)申請(qǐng)加入,則任務(wù)接收控制模塊執(zhí)行 如下操作步驟(1 ):計(jì)算申請(qǐng)加入的任務(wù)所需的最小處理器計(jì)算能力及系 統(tǒng)剩余的處理器計(jì)算能力;步驟(2 ):比較所述系統(tǒng)剩余的處理器計(jì)算能力是否大于所述申 請(qǐng)加入的任務(wù)所需的最小處理器計(jì)算能力,若是,則執(zhí)行步驟(3); 否則,拒絕所述任務(wù)加入;步驟(3 ):將所述任務(wù)加入到系統(tǒng)可調(diào)度集合中。
8、 如權(quán)利要求4所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特 征在于,若系統(tǒng)運(yùn)行期間有任務(wù)申請(qǐng)退出,則任務(wù)接收控制模塊將所 述任務(wù)加入到所述系統(tǒng)可調(diào)度任務(wù)集合中。
9、 如權(quán)利要求5所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特 征在于,所述步驟四中,所述系統(tǒng)調(diào)度器是通過(guò)各自適應(yīng)分區(qū)的標(biāo)識(shí) 符來(lái)調(diào)度各自適應(yīng)分區(qū)的。
10、如權(quán)利要求4所述的嵌入式操作系統(tǒng)的任務(wù)調(diào)度方法,其特征在于,所述步驟二中,所述自適應(yīng)分區(qū)的分區(qū)調(diào)度器是根據(jù)其所屬 的自適應(yīng)分區(qū)所轄任務(wù)的類(lèi)型及運(yùn)行參數(shù)計(jì)算其所屬自適應(yīng)分區(qū)所 需的最小處理器計(jì)算能力及分區(qū)調(diào)度周期的。
全文摘要
本發(fā)明涉及一種嵌入式操作系統(tǒng)的任務(wù)調(diào)度裝置及方法,所述裝置包括處理器、系統(tǒng)調(diào)度器、系統(tǒng)可調(diào)度任務(wù)集合模塊以及自適應(yīng)分區(qū)模塊;所述方法首先初始化自適應(yīng)分區(qū);然后根據(jù)各自適應(yīng)分區(qū)所需的最小處理器計(jì)算能力占處理器計(jì)算能力的比例得到各自適應(yīng)分區(qū)在一個(gè)系統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時(shí)間;最后在系統(tǒng)調(diào)度周期內(nèi)調(diào)度各自適應(yīng)分區(qū)時(shí),再為各自適應(yīng)分區(qū)分配處理器時(shí)間,當(dāng)前調(diào)度的自適應(yīng)分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時(shí)間內(nèi)調(diào)度任務(wù)隊(duì)列中的任務(wù)。本發(fā)明克服了當(dāng)前嵌入式操作系統(tǒng)中調(diào)度機(jī)制存在的只能對(duì)同種類(lèi)型的靜態(tài)優(yōu)先級(jí)任務(wù)進(jìn)行全局調(diào)度的缺陷。
文檔編號(hào)G06F9/48GK101452404SQ20081021828
公開(kāi)日2009年6月10日 申請(qǐng)日期2008年12月9日 優(yōu)先權(quán)日2008年12月9日
發(fā)明者翌 李, 王繼剛, 鐘衛(wèi)東 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
丰城市| 甘孜| 疏勒县| 莲花县| 封丘县| 綦江县| 西昌市| 彰化市| 凤山市| 霍山县| 陆良县| 古交市| 长垣县| 平潭县| 那曲县| 凭祥市| 湟中县| 叶城县| 融水| 无锡市| 长武县| 涿鹿县| 宁蒗| 江孜县| 页游| 常山县| 崇仁县| 静安区| 明溪县| 密山市| 内乡县| 承德市| 中牟县| 班玛县| 叙永县| 锡林浩特市| 高青县| 京山县| 天柱县| 广宁县| 冕宁县|