當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]CBS算法的RTAI內(nèi)核調(diào)度器設(shè)計(jì)

近年來(lái)基于雙內(nèi)核架構(gòu)增強(qiáng)Linux操作系統(tǒng)實(shí)時(shí)性的RTAI[1](RealTime Application Interface)在工業(yè)控制等硬實(shí)時(shí)領(lǐng)域已經(jīng)得到了越來(lái)越多的應(yīng)用。本文提出的調(diào)度器通過(guò)采用基于服務(wù)策略的CBS算法對(duì)RATI內(nèi)核下的EDF調(diào)度器進(jìn)行擴(kuò)展,可以保證分配一定的CPU資源供Linux上的軟實(shí)時(shí)應(yīng)用,即使在有硬實(shí)時(shí)任務(wù)并發(fā)時(shí)也能得到處理器資源。實(shí)驗(yàn)結(jié)果證明了基于CBS算法擴(kuò)展RTAI內(nèi)核調(diào)度器的正確性。

關(guān)鍵詞 RTAI Linux CBS算法 內(nèi)核調(diào)度器

引言

  嵌入式系統(tǒng)大多工作在有實(shí)時(shí)性要求的環(huán)境中,有些嵌入式設(shè)備可能需要軟件在ms級(jí)時(shí)間單位內(nèi)做出響應(yīng),而有些實(shí)時(shí)任務(wù)則要無(wú)任何延時(shí)地以幾ms的周期執(zhí)行,這就迫切需要一個(gè)功能強(qiáng)大、配置方便的實(shí)時(shí)操作系統(tǒng)來(lái)支持。一些商業(yè)的嵌入式實(shí)時(shí)操作系統(tǒng)(如Windows CE、VxWorks等)價(jià)格都比較昂貴,這就促使人們轉(zhuǎn)向了改造通用嵌入式操作系統(tǒng),使其滿足實(shí)時(shí)性。這種改造要求源代碼必須開(kāi)放,而Linux是嵌入式應(yīng)用中的通用嵌入式操作系統(tǒng),源代碼開(kāi)放,滿足改造研究上的需求。

  對(duì)Linux實(shí)時(shí)化改造的方案很多,主要有兩種:一種直接修改內(nèi)核,另一種是采用雙內(nèi)核機(jī)制。第一種方法只能用于軟實(shí)時(shí)應(yīng)用,只有雙內(nèi)核架構(gòu)的方案可以保障硬實(shí)時(shí)應(yīng)用的截止期不被錯(cuò)過(guò)。但是,雙內(nèi)核架構(gòu)在軟、硬實(shí)時(shí)任務(wù)混合的應(yīng)用環(huán)境中還存在一些問(wèn)題。由于硬實(shí)時(shí)任務(wù)工作在RTAI實(shí)時(shí)內(nèi)核空間中,而軟實(shí)時(shí)任務(wù)工作在Linux內(nèi)核空間中,Linux作為優(yōu)先級(jí)最低的任務(wù)被頂層實(shí)時(shí)內(nèi)核調(diào)度執(zhí)行,在一段時(shí)間內(nèi)可以分配給軟實(shí)時(shí)任務(wù)的處理器時(shí)間依賴于RTAI硬實(shí)時(shí)應(yīng)用對(duì)處理器帶寬的要求,而且在不同的時(shí)間段內(nèi)可用的處理器時(shí)間一般會(huì)有很大的不同。這就難以保障運(yùn)行在Linux中的軟時(shí)應(yīng)用達(dá)到預(yù)先設(shè)定的服務(wù)質(zhì)量水平。

1  基于服務(wù)策略算法的實(shí)時(shí)調(diào)度器

  針對(duì)雙內(nèi)核架構(gòu)下增強(qiáng)Linux實(shí)時(shí)性時(shí)存在的問(wèn)題,本文提出一種實(shí)時(shí)調(diào)度器,采用基于服務(wù)策略的CBS算法對(duì)RTAI內(nèi)核下的EDF調(diào)度器進(jìn)行擴(kuò)展,保證在有硬實(shí)時(shí)任務(wù)的同時(shí)滿足Linux內(nèi)核空間下軟實(shí)時(shí)任務(wù)的周轉(zhuǎn)時(shí)間。

1.1  實(shí)時(shí)調(diào)度器基于的CBS算法定義

  為了縮短混合實(shí)時(shí)任務(wù)調(diào)度中軟實(shí)時(shí)任務(wù)的響應(yīng)時(shí)間,以及減少軟實(shí)時(shí)任務(wù)錯(cuò)失截止期,人們提出了多種軟實(shí)時(shí)任務(wù)的調(diào)度算法。典型的有基于服務(wù)策略的算法,又稱(chēng)“帶寬預(yù)留算法”。該算法在保證硬實(shí)時(shí)周期任務(wù)滿足截止期的前提下,預(yù)留出適當(dāng)?shù)奶幚砥鲙捵鳛榉?wù)器來(lái)處理軟實(shí)時(shí)任務(wù),常用的算法有CBS、TBS算法等。服務(wù)策略的含義是: 服務(wù)器把到達(dá)的任務(wù)放入一個(gè)非優(yōu)先規(guī)則的隊(duì)列中,該隊(duì)列的第一個(gè)任務(wù)根據(jù)分配的截止期插入EDF調(diào)度隊(duì)列中,如果隊(duì)列的第一個(gè)任務(wù)被插入到調(diào)度隊(duì)列等待調(diào)度,則稱(chēng)“服務(wù)器是合格的”,否則稱(chēng)“服務(wù)器是不合格的”;如果隊(duì)列的第一個(gè)任務(wù)正在執(zhí)行,則稱(chēng)“服務(wù)器為活動(dòng)的”。下面給出了采用CBS算法時(shí)軟實(shí)時(shí)任務(wù)在不影響硬實(shí)時(shí)任務(wù)截止期的情況下是否可以調(diào)度的判別準(zhǔn)則。

  假定某一實(shí)時(shí)任務(wù)Ti的處理器帶寬記為(Ci,Pi),表示任務(wù)Ti在周期Pi內(nèi)最多占用Ci的處理器時(shí)間。定義實(shí)時(shí)任務(wù)Ti的處理器利用率為:

  現(xiàn)假定系統(tǒng)中n個(gè)實(shí)時(shí)任務(wù),記為{T1,T2,…,Tn},對(duì)應(yīng)著n個(gè)處理器帶寬參數(shù),記為(Ci,Pi),其中i=1, 2,…,n。則此任務(wù)集可調(diào)度的條件為:

滿足上式時(shí)任務(wù)集是可調(diào)度的。其中Umax是EDF算法調(diào)度時(shí)CPU處理器利用率的最大值。

  CBS算法步驟詳細(xì)定義如下:

 ?、?nbsp; 一個(gè)CBS服務(wù)器用預(yù)留執(zhí)行能力cs和有序?qū)Γ≦s,Ts)來(lái)表示。其中,Qs表示服務(wù)器的最大執(zhí)行能力補(bǔ)充值,Ts表示服務(wù)器周期。服務(wù)器帶寬Us=Qs/Ts。服務(wù)器截止期的初始值ds,0=0,而任意時(shí)刻,服務(wù)器的修正截止期ds,k和服務(wù)器相關(guān)聯(lián)。
  ②  被服務(wù)器服務(wù)的任務(wù)(隊(duì)列的第一個(gè)任務(wù))被分配一個(gè)動(dòng)態(tài)截止期di,j,該截止期等于當(dāng)前服務(wù)器截止期ds,k。
 ?、? 不管一個(gè)任務(wù)什么時(shí)候執(zhí)行,服務(wù)器的預(yù)留執(zhí)行能力cs都以相同的數(shù)量遞減。
 ?、? 當(dāng)預(yù)留執(zhí)行能力cs遞減到零時(shí),馬上被重置為最大執(zhí)行能力補(bǔ)充值Qs,同時(shí)產(chǎn)生新的服務(wù)器截止期ds,k+1=ds,k+Ts。
 ?、?nbsp; 在時(shí)刻t,如果存在一個(gè)服務(wù)的任務(wù)Ji,j(ri,j≤t≤fi,j),那么稱(chēng)“CBS處于活動(dòng)狀態(tài)”,否則稱(chēng)為“空閑狀態(tài)”。
  ⑥  當(dāng)一個(gè)作業(yè)Ji,j到達(dá)時(shí),如果此時(shí)服務(wù)器處于活動(dòng)狀態(tài),那么任務(wù)的服務(wù)請(qǐng)求進(jìn)入掛起任務(wù)隊(duì)列,此隊(duì)列需是非搶先原則的隊(duì)列(如先進(jìn)先出隊(duì)列)。
 ?、? 當(dāng)一個(gè)任務(wù)Ji,j到達(dá),且服務(wù)器處于空閑狀態(tài)時(shí),如果cs≥(ds,k-ri,j)Us,那么服務(wù)器產(chǎn)生一個(gè)新的服務(wù)器截止期ds,k+1=ri,j+Ts,并且把預(yù)留執(zhí)行能力cs重置為最大執(zhí)行能力補(bǔ)充值Qs,否則服務(wù)器使用當(dāng)前的服務(wù)器截止期ds,k和當(dāng)前的預(yù)留執(zhí)行能力cs來(lái)對(duì)任務(wù)進(jìn)行服務(wù)。
 ?、? 當(dāng)一個(gè)任務(wù)完成時(shí),服務(wù)器利用當(dāng)前的預(yù)留執(zhí)行能力和截止期繼續(xù)為掛起任務(wù)隊(duì)列中的任務(wù)服務(wù)。如果掛起任務(wù)隊(duì)列中沒(méi)有任務(wù),那么服務(wù)器變成空閑狀態(tài)。
 ?、? 在任何時(shí)刻,服務(wù)器分配給任務(wù)的截止期為最后生成的服務(wù)器截止期。

1.2  EDF調(diào)度器的CBS算法擴(kuò)展設(shè)計(jì)

1.2.1  EDF調(diào)度器的總體結(jié)構(gòu)設(shè)計(jì)

  先引入一種“虛擬任務(wù)”的概念。所謂“虛擬任務(wù)”,就是指由RTAI底層實(shí)時(shí)小內(nèi)核按EDF算法直接調(diào)度執(zhí)行的一種特殊的硬實(shí)時(shí)任務(wù),對(duì)應(yīng)于Linux用戶空間的某一軟實(shí)時(shí)應(yīng)用。其任務(wù)截止期由RTAI內(nèi)核下的CBS服務(wù)器計(jì)算得出。

  本文將RATI內(nèi)核下的EDF調(diào)度器進(jìn)行了以下擴(kuò)展:

 ?、?nbsp; 在EDF調(diào)度層,仍然采用原RTAI內(nèi)核下調(diào)度器采用的EDF調(diào)度算法,對(duì)硬實(shí)時(shí)周期任務(wù)和虛擬任務(wù)集合進(jìn)行調(diào)度;而CBS服務(wù)器則按一定的比例占用處理機(jī)時(shí)間,同時(shí)通過(guò)服務(wù)器接口與一個(gè)實(shí)時(shí)應(yīng)用相對(duì)應(yīng),為其提供資源服務(wù)。
  ②  在服務(wù)器層有CBS服務(wù)器核和CBS服務(wù)器接口。

  CBS服務(wù)器核的主要功能是根據(jù)傳入的相關(guān)調(diào)度信息維護(hù)底層實(shí)時(shí)小內(nèi)核中的可用CBS服務(wù)器隊(duì)列,在任務(wù)開(kāi)始、掛起、終止等調(diào)度時(shí)執(zhí)行相應(yīng)的事件處理函數(shù)來(lái)調(diào)整CBS服務(wù)器的屬性參數(shù),實(shí)現(xiàn)CBS算法。

  EDF調(diào)度器擴(kuò)展如圖1所示。


圖1  EDF調(diào)度器擴(kuò)展

  在服務(wù)器接口中,由于硬實(shí)時(shí)任務(wù)工作在RTAI實(shí)時(shí)內(nèi)核下,而軟實(shí)時(shí)任務(wù)一般工作在Linux內(nèi)核下,因此服務(wù)器維護(hù)的虛擬任務(wù)為了與實(shí)際的實(shí)時(shí)任務(wù)建立對(duì)應(yīng),就需要一個(gè)接口來(lái)實(shí)現(xiàn)它們的映射關(guān)系。本文通過(guò)這個(gè)接口層來(lái)為L(zhǎng)inux內(nèi)核中的實(shí)時(shí)任務(wù)和RTAI內(nèi)核下的虛擬任務(wù)提供映射實(shí)現(xiàn)。

1.2.2  EDF調(diào)度器擴(kuò)展后調(diào)度主要算法步驟

 ?、?nbsp; 不同類(lèi)型的新應(yīng)用程序到達(dá)時(shí),通過(guò)服務(wù)器接口層中的系統(tǒng)調(diào)用對(duì)其進(jìn)行判別控制檢查,主要通過(guò)式(2)來(lái)進(jìn)行。如果通過(guò)檢查,則說(shuō)明調(diào)度新到達(dá)的應(yīng)用程序不會(huì)影響硬實(shí)時(shí)任務(wù)的截止期。
 ?、?nbsp; 通過(guò)判別檢查之后,CBS服務(wù)器為其創(chuàng)建一個(gè)與新應(yīng)用程序?qū)?yīng)的虛擬任務(wù),并根據(jù)新應(yīng)用程序傳入的調(diào)度參數(shù)和自己的調(diào)度策略,計(jì)算得到虛擬任務(wù)的任務(wù)截止期。如果此時(shí)服務(wù)器是活動(dòng)的,將此新虛擬任務(wù)掛入服務(wù)器維護(hù)的先進(jìn)先出隊(duì)列。取出服務(wù)器的先進(jìn)先出隊(duì)列隊(duì)首虛擬任務(wù),并根據(jù)任務(wù)截止期大小進(jìn)入RTAI實(shí)時(shí)內(nèi)核的EDF就緒隊(duì)列;同時(shí),新應(yīng)用程序也加入到Linux內(nèi)核下相應(yīng)的調(diào)度對(duì)象集合中,調(diào)度對(duì)象集合是一個(gè)由與新任務(wù)相匹配的具體調(diào)度器調(diào)度的集合,這個(gè)調(diào)度器基于某種調(diào)度算法,不是本文的討論重點(diǎn),但是如果從整個(gè)系統(tǒng)的實(shí)現(xiàn)來(lái)說(shuō),這些都是必不可少的部分。本文重點(diǎn)實(shí)現(xiàn)的是RTAI內(nèi)核下對(duì)軟硬實(shí)時(shí)混合調(diào)度的支持。
 ?、?nbsp; 虛擬任務(wù)與RATI下的硬實(shí)時(shí)周期任務(wù)一起由EDF調(diào)度器統(tǒng)一調(diào)度分配。

1.3  EDF調(diào)度器的擴(kuò)展實(shí)現(xiàn)

  根據(jù)擴(kuò)展設(shè)計(jì)方案,下面討論在對(duì)EDF調(diào)度器進(jìn)行擴(kuò)展時(shí)所涉及的關(guān)鍵問(wèn)題及解決途徑。

1.3.1  EDF調(diào)度層擴(kuò)展的關(guān)鍵問(wèn)題

  首先是實(shí)時(shí)內(nèi)核的虛擬任務(wù)和Linux用戶空間中的軟實(shí)時(shí)任務(wù)的映射問(wèn)題。軟實(shí)時(shí)任務(wù)是運(yùn)行在用戶空間的Linux進(jìn)程中。它通過(guò)CBS服務(wù)器接口層中的新增系統(tǒng)調(diào)用rt_schedule_test()進(jìn)入準(zhǔn)入測(cè)試后,調(diào)用CBS服務(wù)器接口層的新增系統(tǒng)調(diào)用rt_create_virtual_task()創(chuàng)建虛擬任務(wù),并且傳入軟實(shí)時(shí)應(yīng)用的進(jìn)程ID,應(yīng)用調(diào)度器ID在虛擬任務(wù)結(jié)構(gòu)體中保存下來(lái)。當(dāng)虛擬任務(wù)被EDF算法調(diào)度執(zhí)行時(shí),它通過(guò)實(shí)時(shí)內(nèi)核中的軟中斷模擬機(jī)制保存對(duì)應(yīng)的進(jìn)程ID,應(yīng)用調(diào)度器ID到中斷暫存表,然后調(diào)用rt_switch_to_linux切換到Linux內(nèi)核。Linux內(nèi)核通過(guò)應(yīng)用調(diào)度器ID找到調(diào)度器,將要調(diào)度執(zhí)行的進(jìn)程ID傳給此調(diào)度器,由調(diào)度器調(diào)度此進(jìn)程執(zhí)行,這就實(shí)現(xiàn)了虛擬任務(wù)與軟實(shí)時(shí)應(yīng)用的對(duì)應(yīng)。

1.3.2  服務(wù)器核實(shí)現(xiàn)的關(guān)鍵問(wèn)題

 ?、?nbsp; 為減少系統(tǒng)中的全局?jǐn)?shù)據(jù)結(jié)構(gòu)種類(lèi),虛擬任務(wù)與實(shí)時(shí)任務(wù)使用同樣的數(shù)據(jù)結(jié)構(gòu)定義。為此,修改了RTAI的實(shí)時(shí)任務(wù)的rt_task_struct結(jié)構(gòu)定義:添加了與虛擬任務(wù)相關(guān)的屬性,如對(duì)應(yīng)的具體軟實(shí)時(shí)任務(wù)的ID、軟實(shí)時(shí)任務(wù)調(diào)度器ID、任務(wù)截止期和指向CBS服務(wù)器的指針;定義了服務(wù)器數(shù)據(jù)結(jié)構(gòu)體rt_CBSServer,屬性參數(shù)有服務(wù)器的預(yù)留執(zhí)行能力計(jì)算值、已使用的服務(wù)器預(yù)留的計(jì)算值、周期、開(kāi)始時(shí)間、截止時(shí)間以及服務(wù)器先進(jìn)先出隊(duì)列VTQueue。
  ②  CBS服務(wù)器算法的實(shí)現(xiàn)。CBS服務(wù)器算法需要在虛擬任務(wù)到達(dá)事件、虛擬任務(wù)完成事件以及服務(wù)器預(yù)留執(zhí)行能力耗盡事件發(fā)生時(shí)刻,及時(shí)對(duì)服務(wù)器的相關(guān)屬性和虛擬任務(wù)屬性進(jìn)行調(diào)整,特別是虛擬任務(wù)的截止期和服務(wù)器的截止期。

  下面介紹基于服務(wù)策略的CBS算法的偽代碼實(shí)現(xiàn)。[!--empirenews.page--]

  虛擬任務(wù)到達(dá)事件發(fā)生時(shí)的處理:

if(虛擬任務(wù)到達(dá)事件發(fā)生) {
  把該虛擬任務(wù)加入到服務(wù)器的先進(jìn)先出隊(duì)列;
  N=N+1;//服務(wù)器的先進(jìn)先出隊(duì)列任務(wù)數(shù)加1
  if(此時(shí)服務(wù)器空閑&&N==1) {
    if(c>=(dk-rj)Us) {
      ak=rj;
      dk=ak+Ts;
      c=Qs;//計(jì)算服務(wù)器預(yù)留執(zhí)行能力和截止期
    }
    else{
      ak=rj;
      dk=dk-1;//設(shè)置截止期
    }
  }
}

  虛擬任務(wù)完成事件發(fā)生時(shí)的處理:

if(任務(wù)完成事件發(fā)生) {
  從EDF調(diào)度器就緒任務(wù)隊(duì)列和服務(wù)器先進(jìn)先出隊(duì)列中刪除該虛擬任務(wù);
  N=N-1;
  if(N!=0){
    利用當(dāng)前的服務(wù)器截止期dk調(diào)度服務(wù)器先進(jìn)先出任務(wù)隊(duì)列中的下一個(gè)任務(wù)到EDF調(diào)度器就緒隊(duì)列中;
  }
  if(任務(wù)執(zhí)行了一個(gè)時(shí)間片) {
    c=c-1;//服務(wù)器預(yù)留執(zhí)行能力減1
  }
}

  服務(wù)器預(yù)留執(zhí)行能力耗盡事件發(fā)生時(shí)的處理:

if(服務(wù)器執(zhí)行能力==0) {
  dk=dk-1+Ts;
  c=Qs;//計(jì)算截止期,并補(bǔ)充預(yù)留執(zhí)行能力
}

其中,dk為服務(wù)器的截止期;ak表示服務(wù)器下次執(zhí)行的起始時(shí)刻;rj表示任務(wù)到達(dá)時(shí)刻;c表示服務(wù)器剩余執(zhí)行能力。Qs和Ts分別為CBS的最大容量預(yù)算補(bǔ)充值和周期;Us是這個(gè)服務(wù)器的利用率。

1.3.3  服務(wù)器接口實(shí)現(xiàn)的關(guān)鍵技術(shù)

  該層主要在RTAI內(nèi)核下增加一些新的系統(tǒng)調(diào)用供Linux內(nèi)核使用。

  rt_create_virtual_task(): 創(chuàng)建虛擬任務(wù)。首先在系統(tǒng)內(nèi)存中為服務(wù)器分配所需的內(nèi)存空間;然后根據(jù)傳入?yún)?shù)填寫(xiě)rt_task_struct{}結(jié)構(gòu),特別是與服務(wù)器相關(guān)的幾種變量值;最后將其放入系統(tǒng)任務(wù)隊(duì)列中。

  rt_schedule_test(): 對(duì)新到來(lái)的應(yīng)用進(jìn)行準(zhǔn)入測(cè)試。主要是通過(guò)CBS算法進(jìn)行測(cè)試,如果不能通過(guò)準(zhǔn)入測(cè)試,則失敗退出;否則調(diào)度rt_create_virtual_task()創(chuàng)建虛擬任務(wù),將任務(wù)掛入相應(yīng)的服務(wù)器隊(duì)列中,等待調(diào)度。

  rt_delete_VTtask(): 在Linux內(nèi)核下可調(diào)度這個(gè)函數(shù)來(lái)實(shí)現(xiàn)對(duì)RTAI內(nèi)核下的虛擬任務(wù)的刪除。

2  驗(yàn)證

  本文通過(guò)在硬件配置為CPU AMD Duron 1.10G、256 Mb內(nèi)存,操作系統(tǒng)為Fedora core5、編譯器為gcc的環(huán)境下分兩次安裝RTAI內(nèi)核包(分別為EDF調(diào)度器擴(kuò)展前和擴(kuò)展后),對(duì)軟硬實(shí)時(shí)任務(wù)并發(fā)時(shí)軟實(shí)時(shí)任務(wù)的周轉(zhuǎn)情況進(jìn)行記錄并進(jìn)行分析。軟實(shí)時(shí)任務(wù)采用Linux操作系統(tǒng)下的多媒體播放器,硬實(shí)時(shí)任務(wù)采用通過(guò)編程實(shí)現(xiàn)的周期性實(shí)時(shí)計(jì)算任務(wù),運(yùn)行周期為10 ms。硬實(shí)時(shí)負(fù)載由編程實(shí)現(xiàn)的硬實(shí)時(shí)負(fù)載程序精確得到,本實(shí)驗(yàn)中進(jìn)行了3種負(fù)載的測(cè)試,分別為輕負(fù)載、中度負(fù)載和重負(fù)載。

  多媒體播放器是否正常播放可用下式衡量:

式中: ei為第i幀圖像數(shù)據(jù)解碼時(shí)產(chǎn)生的時(shí)間偏差,ti為第i幀圖像解碼完成時(shí)刻,ti-1為第i-1幀圖像解碼完成時(shí)刻,40 ms是正常情況下MPEG4相鄰幀圖像的標(biāo)準(zhǔn)解碼時(shí)間間隔。若時(shí)間偏差小于或等于0,則mplayer可正常播放;否則,將出現(xiàn)圖像抖動(dòng)和斷續(xù)現(xiàn)象,偏差越大,異常越明顯。本實(shí)驗(yàn)主要分析了時(shí)間偏差大于0時(shí)的情況。

  使多媒體播放器運(yùn)行大于30 s的時(shí)間,獲取750幀的數(shù)據(jù)。分別得到的EDF調(diào)度器擴(kuò)展前和擴(kuò)展后的實(shí)驗(yàn)數(shù)據(jù),如表1和表2所列。

表1  EDF調(diào)度器擴(kuò)展前Linux調(diào)度下的多媒體播放器播放情況

表2  EDF調(diào)度器擴(kuò)展后Linux調(diào)度下的多媒體播放器播放情況

  對(duì)表1和表2中的數(shù)據(jù)進(jìn)行分析。在輕度負(fù)載0.3時(shí),時(shí)間偏差10 ms以下的幀數(shù)占總幀數(shù)的累計(jì)百分比基本相同,分別為99.6%和99.7%;說(shuō)明對(duì)EDF調(diào)度器進(jìn)行擴(kuò)展前后,對(duì)多媒體播放器播放效果基本沒(méi)有差別。在中等負(fù)載0.53時(shí),擴(kuò)展前播放器解碼時(shí)間偏差在20 ms以下的幀數(shù)占總幀數(shù)的44.65%,播放效果出現(xiàn)異常,人眼能感覺(jué)到;擴(kuò)展后,偏差在20 ms以下的幀數(shù)占總幀數(shù)的99.82%,人眼不容易覺(jué)察播放的異常。在重負(fù)載0.81下,擴(kuò)展前時(shí)間偏差在20 ms以下的幀數(shù)占總幀數(shù)的0%,也就是說(shuō)時(shí)間偏差都會(huì)大于20 ms,這樣每一幀圖像數(shù)據(jù)很大程度上將被延遲播放;擴(kuò)展后時(shí)間偏差在20 ms以下的幀數(shù)占總幀數(shù)的99.57%,仍然可以滿足播放器的播放效果。

3  結(jié)論

  本文提出的基于CBS算法的EDF調(diào)度器,實(shí)現(xiàn)了RTAI實(shí)時(shí)內(nèi)核的資源預(yù)留,可為L(zhǎng)inux內(nèi)核空間下的軟實(shí)時(shí)應(yīng)用保留一定的處理器帶寬,較好地解決了雙內(nèi)核架構(gòu)下軟實(shí)時(shí)和硬實(shí)時(shí)混合的應(yīng)用環(huán)境中軟實(shí)時(shí)應(yīng)用因錯(cuò)過(guò)截止期得不到響應(yīng)的問(wèn)題。本文重點(diǎn)討論了對(duì)RTAI下的EDF調(diào)度器在CBS算法上的擴(kuò)展實(shí)現(xiàn),而Linux內(nèi)核空間下的應(yīng)用調(diào)度器針對(duì)不同的軟實(shí)時(shí)應(yīng)用算法也很多,且軟實(shí)時(shí)任務(wù)之間的相互依賴關(guān)系本文也沒(méi)有考慮。這些是今后工作中著重研究并加以解決的問(wèn)題。李蘭英(副教授),主要研究方向?yàn)楣I(yè)企業(yè)自動(dòng)化、計(jì)算機(jī)控制和嵌入式系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉