- 嵌入式軟件系統(tǒng)測試:基于形式化方法的自動(dòng)化測試解決方案
- 殷永峰 姜博編著
- 2264字
- 2021-02-22 15:46:11
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)與實(shí)時(shí)系統(tǒng)
作為20世紀(jì)人類社會(huì)最偉大的發(fā)明之一,計(jì)算機(jī)已逐步把人類帶入了數(shù)字化時(shí)代。同時(shí),后PC時(shí)代的到來,使得人們開始越來越多地接觸到一個(gè)新的概念——嵌入式產(chǎn)品。越來越多的復(fù)雜軟硬件系統(tǒng)內(nèi)嵌于醫(yī)療、汽車、工業(yè)控制、交通、通信、航空、航天及現(xiàn)代武器裝備中,如:NASA航天飛機(jī)的機(jī)載系統(tǒng)有近500 000行代碼,而這還不包括用于地面控制和處理的350 000行代碼;在美國電信通信中,支撐軟件的源代碼超過了1億行。表1-1給出了軟件在國外戰(zhàn)斗機(jī)中的應(yīng)用情況。
表1-1 軟件在國外戰(zhàn)斗機(jī)中的應(yīng)用

1990年,IEEE(電子與電氣工程師協(xié)會(huì))給出了嵌入式系統(tǒng)的定義:嵌入式計(jì)算機(jī)系統(tǒng)是較大系統(tǒng)的一部分,用于滿足該系統(tǒng)的某些要求,例如,用于飛機(jī)快速運(yùn)輸系統(tǒng)的計(jì)算機(jī)系統(tǒng)(An Embedded Computer System is part of a larger system and performs some of the requirements of that system;for example,a computer system used in an aircraftor rapid transit system)。通常,將用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)一般包括一系列軟硬件設(shè)施等,而嵌入式軟件是嵌入式系統(tǒng)的軟件部分,比如航天器的控制系統(tǒng)、飛機(jī)的航電系統(tǒng)、基于Android和iOS等系統(tǒng)的手機(jī)、機(jī)頂盒、汽車電子系統(tǒng)、通信系統(tǒng)中的路由器等。此外,廣義上也通常把單片機(jī)(STM32)、SOC等硬件構(gòu)成的控制系統(tǒng)一并稱為嵌入式系統(tǒng)。上述嵌入式軟件往往具有實(shí)時(shí)性的特征,因此也被稱為實(shí)時(shí)嵌入式系統(tǒng)。
通常,實(shí)時(shí)系統(tǒng)是指必須在外界環(huán)境規(guī)定的時(shí)間內(nèi)完成計(jì)算和I/O操作的專用計(jì)算機(jī)系統(tǒng),POSIX Standard 1003.1中定義實(shí)時(shí)系統(tǒng)為“有能力在限定的響應(yīng)時(shí)間范圍內(nèi),提供滿足需求的服務(wù)的操作系統(tǒng)”。在實(shí)時(shí)計(jì)算中,外界環(huán)境可以被看作一組約束─普遍被認(rèn)為是時(shí)間約束(也稱為時(shí)限)。時(shí)限的存在,是實(shí)時(shí)計(jì)算與非實(shí)時(shí)計(jì)算的最本質(zhì)區(qū)別。實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)的區(qū)別就在于實(shí)時(shí)系統(tǒng)必須提供某種機(jī)制以確保時(shí)限不會(huì)被破壞。對于非實(shí)時(shí)系統(tǒng)而言,系統(tǒng)的正確性僅僅取決于指令的正確執(zhí)行,其關(guān)鍵在于是否按指令的邏輯順序進(jìn)行,與指令在何時(shí)開始執(zhí)行及何時(shí)執(zhí)行完畢無關(guān)。例如,一個(gè)用于計(jì)算雙精度浮點(diǎn)數(shù)平方根的程序,可以運(yùn)行在500MHz的Pentium III計(jì)算機(jī)上,也可以運(yùn)行在4.77MHz的8086計(jì)算機(jī)上。兩者的區(qū)別僅僅在于計(jì)算速度的快慢,而不會(huì)影響計(jì)算結(jié)果的正確性。通常衡量實(shí)時(shí)系統(tǒng)的三個(gè)指標(biāo)如下:
·響應(yīng)時(shí)間(Response Time):計(jì)算機(jī)系統(tǒng)識別外部事件并做出響應(yīng)的時(shí)間。
·生存時(shí)間(Survival Time):數(shù)據(jù)的有效等待時(shí)間,在此時(shí)間段內(nèi)數(shù)據(jù)有效。
·吞吐量(Throughput):在給定時(shí)間內(nèi),系統(tǒng)可以處理的事件總數(shù)。
對于實(shí)時(shí)系統(tǒng)而言,系統(tǒng)的正確性不僅與計(jì)算結(jié)果的正確性有關(guān),而且更為重要的是必須在規(guī)定的時(shí)間內(nèi)完成計(jì)算,否則系統(tǒng)就會(huì)出錯(cuò)或失敗。
1.硬實(shí)時(shí)系統(tǒng)和軟實(shí)時(shí)系統(tǒng)
依據(jù)實(shí)時(shí)系統(tǒng)的特性,可以將其分為“硬”實(shí)時(shí)系統(tǒng)(Hard Real-Time System)和“軟”實(shí)時(shí)系統(tǒng)(Soft Real-Time System)兩類。
“硬”實(shí)時(shí)系統(tǒng)的特性是:
·在任何情況下,都不能有延遲;
·如果延遲發(fā)生,則輸出結(jié)果無效;
·當(dāng)無法滿足截止時(shí)間要求時(shí),系統(tǒng)將會(huì)導(dǎo)致災(zāi)難性失效;
·當(dāng)無法滿足截止時(shí)間要求時(shí),系統(tǒng)導(dǎo)致的經(jīng)濟(jì)損失巨大;
·系統(tǒng)響應(yīng)時(shí)間通常為毫秒或微秒級。
比如飛行控制系統(tǒng)和核反應(yīng)堆控制系統(tǒng)就是典型的“硬”實(shí)時(shí)系統(tǒng)。
“軟”實(shí)時(shí)系統(tǒng)的特性是:
·輸出結(jié)果的延遲會(huì)增加費(fèi)用;
·延遲會(huì)導(dǎo)致系統(tǒng)性能下降;
·系統(tǒng)響應(yīng)時(shí)間通常為毫秒或秒級。
比如網(wǎng)絡(luò)實(shí)況轉(zhuǎn)播系統(tǒng)就是一個(gè)典型的“軟”實(shí)時(shí)系統(tǒng)。
2.單機(jī)實(shí)時(shí)系統(tǒng)和分布式實(shí)時(shí)系統(tǒng)
按實(shí)時(shí)系統(tǒng)運(yùn)行環(huán)境的分布特性劃分,實(shí)時(shí)系統(tǒng)可以劃分為單機(jī)實(shí)時(shí)系統(tǒng)和分布式實(shí)時(shí)系統(tǒng)兩大類。
·單機(jī)實(shí)時(shí)系統(tǒng)。在單機(jī)實(shí)時(shí)系統(tǒng)中,所有的任務(wù)都在同一臺計(jì)算機(jī)上運(yùn)行,只受同一個(gè)操作系統(tǒng)的調(diào)度。單機(jī)實(shí)時(shí)系統(tǒng)的最大優(yōu)點(diǎn)在于軟硬件結(jié)構(gòu)簡單,易于開發(fā)。
·分布式實(shí)時(shí)系統(tǒng)。在分布式實(shí)時(shí)系統(tǒng)中,多個(gè)任務(wù)分布在多臺計(jì)算機(jī)上,不同節(jié)點(diǎn)上的任務(wù)通過互聯(lián)網(wǎng)絡(luò)進(jìn)行通信。這些任務(wù)協(xié)調(diào)工作,共同構(gòu)成一個(gè)實(shí)時(shí)系統(tǒng)。分布式實(shí)時(shí)系統(tǒng)的體系結(jié)構(gòu)如圖1-1所示。

圖1-1 分布式實(shí)時(shí)系統(tǒng)體系結(jié)構(gòu)
在分布式實(shí)時(shí)系統(tǒng)中,部分節(jié)點(diǎn)計(jì)算機(jī)與受控設(shè)備(產(chǎn)生或接收數(shù)據(jù)、接受實(shí)時(shí)控制)相連,不僅需要完成一些實(shí)時(shí)計(jì)算任務(wù),還需要對外圍設(shè)備進(jìn)行實(shí)時(shí)控制。此外,還有其他節(jié)點(diǎn)計(jì)算機(jī)不與任何受控設(shè)備相連,它們只完成實(shí)時(shí)計(jì)算任務(wù)。
基于以上分類,實(shí)時(shí)嵌入式系統(tǒng)除了具備一般應(yīng)用軟件的特點(diǎn)之外,還有以下特點(diǎn):
·嵌入性。絕大多數(shù)實(shí)時(shí)系統(tǒng)是較為復(fù)雜的專用系統(tǒng),需要具備很高的容錯(cuò)能力,并且通常“嵌入”一個(gè)更大的系統(tǒng)中,即作為嵌入式軟件。圖1-2給出了典型的嵌入式系統(tǒng)結(jié)構(gòu)。

圖1-2 典型的嵌入式系統(tǒng)結(jié)構(gòu)
·同外部環(huán)境交互作用。典型的實(shí)時(shí)系統(tǒng)往往和外部設(shè)備之間交互作用,可能控制某種設(shè)備或過程。實(shí)時(shí)系統(tǒng)通過傳感器從外界采集數(shù)據(jù),通過輸出激勵(lì)信號來控制外部設(shè)備。
·實(shí)時(shí)約束。實(shí)時(shí)系統(tǒng)往往有著較強(qiáng)的時(shí)間約束,要求在規(guī)定時(shí)間內(nèi)必須完成事件的處理,如果延遲,往往會(huì)造成災(zāi)難性后果。
·實(shí)時(shí)控制。實(shí)時(shí)軟件往往涉及實(shí)時(shí)控制,通過采集來的數(shù)據(jù)決定如何控制外部交聯(lián)的設(shè)備。實(shí)時(shí)軟件中并不全是實(shí)時(shí)部件,也有非實(shí)時(shí)部分,如數(shù)據(jù)的事后分析、處理等功能。
·反應(yīng)式系統(tǒng)(Reactive System)。許多實(shí)時(shí)系統(tǒng)都是反應(yīng)式系統(tǒng),它們是基于事件驅(qū)動(dòng)的,并且需要響應(yīng)外部的激勵(lì)。一般而言,實(shí)時(shí)系統(tǒng)對于外部激勵(lì)的響應(yīng)大多是依賴于狀態(tài)的,也就是說,系統(tǒng)的響應(yīng)輸出不僅取決于當(dāng)前的激勵(lì),而且和之前的系統(tǒng)激勵(lì)有關(guān)。
·并發(fā)處理。大多數(shù)實(shí)時(shí)系統(tǒng)的一個(gè)顯著特征就是存在并發(fā)處理,有許多外部事件需要同時(shí)處理。通常,外部事件的到來是無法預(yù)期的,更應(yīng)注意的是實(shí)時(shí)系統(tǒng)的輸入負(fù)載隨時(shí)間的不同而發(fā)生顯著變化,且這種負(fù)載往往也是無法預(yù)期的。
綜上所述,本書將不區(qū)別實(shí)時(shí)系統(tǒng)(軟件)、嵌入式系統(tǒng)(軟件)和實(shí)時(shí)嵌入式系統(tǒng)(軟件),統(tǒng)稱為實(shí)時(shí)嵌入式系統(tǒng)(軟件)。
- 在最好的年紀(jì)學(xué)Python:小學(xué)生趣味編程
- Dynamics 365 Application Development
- Java開發(fā)入行真功夫
- Python GUI Programming Cookbook
- jQuery開發(fā)基礎(chǔ)教程
- Hands-On Full Stack Development with Go
- Scala Reactive Programming
- Learning jQuery(Fourth Edition)
- Android移動(dòng)開發(fā)案例教程:基于Android Studio開發(fā)環(huán)境
- Programming Microsoft Dynamics? NAV 2015
- OpenCV 3 Blueprints
- C++ Application Development with Code:Blocks
- OpenCV 3計(jì)算機(jī)視覺:Python語言實(shí)現(xiàn)(原書第2版)
- INSTANT LESS CSS Preprocessor How-to
- 歐姆龍PLC編程指令與梯形圖快速入門