| 嵌入式軟件系統(tǒng)的實時性設(shè)計 電子科技大學(xué)計算機科學(xué)與工程學(xué)院陳麗蓉熊光澤雷 航 摘要實時性是嵌入式軟件系統(tǒng)的一個重要特性,在軟件設(shè)計階段就應(yīng)該給予足夠的重視。在基于優(yōu)先級的可搶占調(diào)度方式下,如何安排任務(wù)的優(yōu)先級是影響系統(tǒng)實時性的一個重要因素,本文對此作了詳細論述。 關(guān)鍵詞嵌入式軟件系統(tǒng)實時性任務(wù)優(yōu)先級 引言 近幾十年來,嵌入式實時軟件系統(tǒng)的應(yīng)用越來越廣泛,有關(guān)其設(shè)計、評價方面的研究工作也獲得了長足的發(fā)展。實時軟件的評價主要包括可靠性評價和實時性評價兩方面。對應(yīng)的可靠性設(shè)計方法、實時性設(shè)計方法的研究也很重要。本文討論的是有關(guān)嵌入式軟件系統(tǒng)的實時性設(shè)計方法。所有的討論與分析基于這樣一個前提:實時應(yīng)用以一定的實時操作系統(tǒng)為運行平臺。該操作系統(tǒng)基于任務(wù)的靜態(tài)優(yōu)先級,采用可搶占式調(diào)度算法。 如圖1所示,如果將實時軟件系統(tǒng)看成是1個黑匣子,這個黑匣子接受外部環(huán)境的各種輸入信息,在一定時間內(nèi)完成相應(yīng)的處理過程,輸出處理結(jié)果。本文所論述的“實時性”主要是指輸出與輸入的時間差圖1圖2是否滿足規(guī)定的時限要求。即不管該實時軟件系統(tǒng)的內(nèi)部結(jié)構(gòu)或?qū)崿F(xiàn)方法如何,對于特定的輸入信息,它不僅要能作出正確的處理,還要在預(yù)先設(shè)定的時限范圍內(nèi)輸出結(jié)果。設(shè)系統(tǒng)對某信號的處理延遲為tz,tz=t2-t1,則tz不能超過時限要求。 在實踐經(jīng)驗與理論分析過程中我們發(fā)現(xiàn),將應(yīng)用系統(tǒng)劃分為多個異步、并發(fā)的實時任務(wù)之后,各任務(wù)優(yōu)先級高低的設(shè)置策略將對系統(tǒng)的實時性能產(chǎn)生較大的影響。優(yōu)先級設(shè)置如果合理,可為已設(shè)計好的系統(tǒng)提供更好的實時性保障,反之則有可能產(chǎn)生不良影響。后面的討論將從一個已經(jīng)設(shè)計好的多任務(wù)系統(tǒng)出發(fā),進一步討論各任務(wù)優(yōu)先級的設(shè)置問題。 一、 單條任務(wù)鏈的任務(wù)優(yōu)先級設(shè)置 雖然整個系統(tǒng)由多個任務(wù)組成,但是對于某個特定輸入來講,并不是所有任務(wù)都要參與它的處理過程。我們可以將與各個輸入有關(guān)的任務(wù)提取出來,構(gòu)成一個個子系統(tǒng)。這些子系統(tǒng)的最簡單結(jié)構(gòu)即如圖2所示的任務(wù)鏈。 對同一個信息,各任務(wù)按順序進行處理。每個任務(wù)的功能結(jié)構(gòu)大體是一樣的,如圖3所示。 圖3對數(shù)據(jù)進行計算和處理的過程因應(yīng)用不同、任務(wù)不同而異,一旦功能和算法確定,其最大執(zhí)行時間也是一定的。數(shù)據(jù)的申請和發(fā)送涉及任務(wù)間的通信問題,與操作系統(tǒng)提供的相應(yīng)機制有關(guān)。設(shè)有任務(wù)a1和a2,任務(wù)a1調(diào)用通信原語向任務(wù)a2發(fā)送消息,如果任務(wù)a2的優(yōu)先級高于任務(wù)a1的優(yōu)先級,則它一旦獲得任務(wù)a1的消息就搶占任務(wù)a1,反之,則要等到任務(wù)a1阻塞(或掛起)后才能占用CPU。因此,對同一條處理鏈,就有兩種基本的任務(wù)優(yōu)先級設(shè)置方式: (1) 對任意2個任務(wù)ai和aj(ipj,如圖4(b)所示:輸出最終結(jié)果和達到穩(wěn)定狀態(tài)的時刻分別為t22和t23。 t12=t1+∑n[]i=1(tig+tic+tis)+(n-1)(tif+tsw)(1) t13=t1+∑n[]i=1(tig+tic+tis+tif)+(n-1)tsw(2) t22=t1+∑n[]i=1(tig+tic+tis)+(n-1)tsw(3) t23=t1+∑n[]i=1(tig+tic+tis+tif)+2(n-1)tsw(4)圖4(a)圖4(b) 可見,在第2種任務(wù)優(yōu)先級設(shè)置情況下,任務(wù)鏈能夠盡快輸出處理結(jié)果,但回到穩(wěn)定狀態(tài)的時延較長。如果外部事件周期性地到達,周期為T,則在這2種設(shè)置情況下,對任務(wù)鏈實時性的基本要求是:t1z=t13-t1 |