日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

智能汽車車用基礎(chǔ)軟件的內(nèi)核和中間件

2022-09-25 17:46:09·  來源:汽車測試網(wǎng)  
 
3. 實時任務(wù)調(diào)度技術(shù)在汽車應(yīng)用領(lǐng)域,不可避免地要應(yīng)對兩類實時任務(wù)。一類被稱為硬實時任務(wù),這類任務(wù)無論在什么樣的情況下都必須在規(guī)定的截止時間內(nèi)執(zhí)行完畢,

3.  實時任務(wù)調(diào)度技術(shù)

在汽車應(yīng)用領(lǐng)域,不可避免地要應(yīng)對兩類實時任務(wù)。一類被稱為硬實時任務(wù),這類任務(wù)無論在什么樣的情況下都必須在規(guī)定的截止時間內(nèi)執(zhí)行完畢,否則會造成不可接受的后果(如因碰撞傳感器引發(fā)的安全氣囊彈出);另一類為軟實時任務(wù),這類任務(wù)也規(guī)定了嚴(yán)格的截止時間,但是偶爾超過了時間門限也不會引發(fā)嚴(yán)重的后果,如觸摸屏交互,即使反應(yīng)時間超限導(dǎo)致應(yīng)用體驗不好,也不會釀成安全事故。

實時任務(wù)又可分為周期性任務(wù),偶發(fā)任務(wù)(通常是硬實時)和非周期任務(wù)(通常是軟實時)。

無論是哪種車用操作系統(tǒng),都面臨著多個軟硬實時任務(wù)(進(jìn)程 / 線程)同時爭奪有限資源的問題, 需要操作系統(tǒng)內(nèi)核提供合適的調(diào)度機(jī)制來滿足硬實時任務(wù)截止時間要求,在此基礎(chǔ)上,還需要滿足其他 系統(tǒng)和應(yīng)用指標(biāo)(周轉(zhuǎn)時間,資源占用效率)。操作系統(tǒng)內(nèi)核的任務(wù)調(diào)度機(jī)制通??煞譃閮纱箢?- 搶占式和非搶占式。

  • 非搶占調(diào)度方式是指當(dāng)一個低優(yōu)先級任務(wù)獲得了處理器執(zhí)行資源后,即使內(nèi)核知道有更高優(yōu)先級的任務(wù)在等待處理器資源,仍然會讓這個低優(yōu)先級任務(wù)繼續(xù)執(zhí)行,直到當(dāng)前任務(wù)完成或發(fā)生某種事件而進(jìn)入阻塞態(tài)時,才會把處理器資源分配給當(dāng)前最高優(yōu)先級的任務(wù)。雖然這種調(diào)度方式比較簡單,但它不適合于分時系統(tǒng),也不適合于實時系統(tǒng)。


  • 搶占式調(diào)度方式是指當(dāng)一個低優(yōu)先級任務(wù)正在處理器上執(zhí)行時,如果有更高優(yōu)先級的任務(wù)出現(xiàn)需 要使用處理器資源,內(nèi)核會立即暫停正在執(zhí)行的任務(wù),將處理器資源分配給當(dāng)前更高優(yōu)先級的任務(wù)。這種方式對提高系統(tǒng)的實時性和響應(yīng)效率有明顯的好處,但也要遵循一定原則,否則可能因為頻 繁切換任務(wù)而降低處理器效率,或者讓低優(yōu)先級任務(wù)等待時間過長影響系統(tǒng)整體性能。


很顯然,車用領(lǐng)域的操作系統(tǒng)內(nèi)核都必須支持基于任務(wù)優(yōu)先級的搶占式調(diào)度方式。內(nèi)核任務(wù)調(diào)度系統(tǒng)設(shè)計的核心是如何為每個任務(wù)定義合適的優(yōu)先級,以保證包括任務(wù)截止時間在內(nèi)的各項系統(tǒng)性能指標(biāo)都能得到滿足。

圖片

圖 2.3-9 優(yōu)先級隊列調(diào)度策略示意圖(隊列0具有最高優(yōu)先級)

為了簡化系統(tǒng)設(shè)計,有的簡要架構(gòu)系統(tǒng)(如 uC/OS-II)甚至規(guī)定所有任務(wù)的優(yōu)先級都不同,任務(wù)的優(yōu)先級也同時唯一標(biāo)識了該任務(wù)本身,但在復(fù)雜系統(tǒng)下這個方法不太適用。通常我們會將系統(tǒng)中所有的 任務(wù)按照一定的優(yōu)先級定義劃分為若干個不同優(yōu)先等級的多級隊列(Multi-Level Queue,MLQ( 圖 2.3- 9)),優(yōu)先級相同的任務(wù)放在一個隊列中,高優(yōu)先級任務(wù)隊列優(yōu)先得到服務(wù),當(dāng)高優(yōu)先級隊列為空或阻塞時,低優(yōu)先級隊列才能得到服務(wù)。此外,還需為每個任務(wù)隊列采用合適的任務(wù)調(diào)度策略來決定哪個任務(wù)該優(yōu) 先獲得資源(一般會采用 FIFO 和 RR 機(jī)制)。MLQ 方法中,系統(tǒng)性能表現(xiàn)主要依賴于對任務(wù)優(yōu)先級的合理定義。常用的任務(wù)調(diào)度策略和對應(yīng)的任務(wù)優(yōu)先級定義如下表 2.3-3 所示:

表 2.3-3 不同優(yōu)先級調(diào)度策略特點

圖片

針對 MLQ 調(diào)度策略可能帶來的低優(yōu)先級任務(wù)饑餓(長時間得不到服務(wù))和優(yōu)先級反轉(zhuǎn)問題(高優(yōu)先級任務(wù)所需資源被低優(yōu)先級任務(wù)鎖?。殖霈F(xiàn)了多級反饋隊列(Multi-level Feedback Queue,MLFQ) 調(diào)度機(jī)制,這一機(jī)制采取了動態(tài)調(diào)整任務(wù)優(yōu)先級的策略,在 MLQ 機(jī)制的基礎(chǔ)上采用了短任務(wù)優(yōu)先級策略,

同時還會對任務(wù)的運行時間做評估,即統(tǒng)計每個任務(wù)已經(jīng)執(zhí)行了多長時間,并據(jù)此判斷此任務(wù)是長任務(wù)還是短任務(wù),然后調(diào)整對應(yīng)任務(wù)的優(yōu)先級,被判斷為長任務(wù)的優(yōu)先級會被逐次調(diào)低。為避免低優(yōu)先級任務(wù)長期得不到服務(wù),還可以定時 / 不定時將所有任務(wù)優(yōu)先級提到最高,再根據(jù)任務(wù)實際運行長短動態(tài)逐漸調(diào)整優(yōu)先級。

對于周期性實時任務(wù),除了上述 MLQF 方法外,還可使用速率單調(diào)(Rate-Monotonic, RM)策略。這種策略是要預(yù)先知道任務(wù)的周期,并根據(jù)周期靜態(tài)地為每個任務(wù)分配一個優(yōu)先級:任務(wù)的周期越短, 意味著截止時間要求越迫切,優(yōu)先級越高。RM 策略還可以支持搶占式調(diào)度,高優(yōu)先級的任務(wù)可以搶占低優(yōu)先級的任務(wù)。此外,RM 也可以引入動態(tài)優(yōu)先級變化機(jī)制,增加調(diào)度策略的調(diào)度能力。RM 方法由于優(yōu)先級固定,實現(xiàn)簡單,帶來的任務(wù)時延固定,成為解決周期性實時任務(wù)最佳策略。

在實時性任務(wù)調(diào)度中,還可以采用最早截止時間優(yōu)先(Earliest Deadline First, EDF)策略。這種策略和 RM 類似,只是該策略是根據(jù)任務(wù)的截止時間來動態(tài)分配任務(wù)優(yōu)先級。

另外,還有一種分區(qū)調(diào)度機(jī)制,該機(jī)制將處理器算力按一定比例分隔成幾個區(qū)(比如 70%,30%), 然后把不同線程分到這些分區(qū)里按上述調(diào)度策略進(jìn)行調(diào)度。當(dāng)分區(qū)里的處理器資源預(yù)算被用完以后,該 分區(qū)里所有可執(zhí)行線程都會被 “停住” ,直到預(yù)算恢復(fù)。為了提高處理器利用率,降低分區(qū)資源的空置率, 同樣可以采取   “自適應(yīng)分區(qū)調(diào)度”   機(jī)制來改進(jìn)調(diào)度性能,即定時計算各分區(qū)的算力閑置情況,在分區(qū)算力有富裕時,“自適應(yīng)” 允許把多出來的算力 “借給” 需要更多算力的分區(qū)。

需要指出的是,內(nèi)核硬實時調(diào)度機(jī)制只是支撐硬實時任務(wù)的一部分,整個任務(wù)的實時性還需要依賴于應(yīng)用本身的設(shè)計,例如在 AUTOSAR CP 中還提出了通過將應(yīng)用和 CPU 核(多核情況下)綁定,禁止動態(tài)分配內(nèi)存的方法來保證應(yīng)用運行的確定性。

總之,從技術(shù)發(fā)展趨勢看,上述的這些基于優(yōu)先級的搶占式進(jìn)程調(diào)度機(jī)制通過一定程度的    “動態(tài)” 優(yōu)化,都能很好地在滿足硬實時任務(wù)的截止時間要求的基礎(chǔ)上,照顧到軟實時業(yè)務(wù)和其他非實時業(yè)務(wù)的性能需求,達(dá)到系統(tǒng)最優(yōu)化,因此在現(xiàn)有的簡要架構(gòu)、宏內(nèi)核以及微內(nèi)核架構(gòu)中都被廣泛支持。

4.  健康監(jiān)控

在汽車安全車控和智能駕駛應(yīng)用領(lǐng)域,操作系統(tǒng)內(nèi)核除了要滿足應(yīng)用的實時性和確定性要求外,功能安全的保證也同等重要的。由于操作系統(tǒng)內(nèi)核是由軟件代碼組成,從軟件工程的角度來看,缺陷幾乎是不可避免的,而這些缺陷在某些特定條件下有可能會引發(fā)功能安全故障。因此,為了及時在系統(tǒng)運行過程中發(fā)現(xiàn)這些故障,并及時處理以防止故障的擴(kuò)散,避免引發(fā)功能安全事故,采取健康監(jiān)控是一種必要的解決方案。

健康監(jiān)控系統(tǒng)用于監(jiān)視硬件、應(yīng)用程序和操作系統(tǒng)的狀態(tài)。當(dāng)發(fā)現(xiàn)故障時,需進(jìn)行記錄故障、識別故障等級、按故障等級進(jìn)行不同的故障處理分派、提供防止故障蔓延的處置手段的操作。在安全可靠性要求極高的飛行器航空電子領(lǐng)域中,健康監(jiān)控功能已經(jīng)成為飛行器安全的重要保障機(jī)制。國際航空電子標(biāo)準(zhǔn)中定義的系統(tǒng)層次的健康監(jiān)控中,將單一 CPU 內(nèi)的健康監(jiān)控體系分為三層故障處理級別。與之類似,汽車電子系統(tǒng)雖然沒有統(tǒng)一的故障處理級別標(biāo)準(zhǔn),但也可以參考航空電子標(biāo)準(zhǔn)中的健康監(jiān)控機(jī)制,例如可將故障級別劃分為分區(qū)級、管理級和核心級三個等級,并可對不同級別的故障設(shè)置不同的處理策略 ( 圖2.3-10)。

圖片

圖 2.3-10 故障處理流程示意圖

分區(qū)級、管理級和核心級處理的異常是對應(yīng) CPU 硬件可捕獲的異常。當(dāng)產(chǎn)生 CPU 異常時,操作系統(tǒng)底層硬件抽象層的異常處理程序首先會根據(jù)異常產(chǎn)生的位置來判定異常處理級別,然后健康監(jiān)控系統(tǒng)根據(jù)異常級別做相應(yīng)處理。CPU 異常處理級別的確定方式如下所述:

  • 如果 CPU 異常產(chǎn)生的位置是在操作系統(tǒng)內(nèi)核態(tài),則該異常屬于核心級異常;


  • 如果 CPU 異常產(chǎn)生的位置是用戶態(tài),則進(jìn)行以下判斷:


如果用戶分區(qū)產(chǎn)生的異常不是二次異常(用戶分區(qū)觸發(fā)異常的處理過程中再次觸發(fā)的異常被認(rèn)定為二次異常),則作為分區(qū)級異常;

如果用戶分區(qū)產(chǎn)生的異常是二次異常,且此用戶分區(qū)的管理分區(qū)不是自身,則作為管理級異常;如果產(chǎn)生二次異常的用戶分區(qū)對應(yīng)的管理分區(qū)處于休眠態(tài),那么該異常升級為核心級異常。

針對分區(qū)級、管理級和核心級的異常,其健康監(jiān)控處理方式如下描述:

  • 分區(qū)級


主要處理用戶分區(qū)運行過程中用戶態(tài)產(chǎn)生的一些異常,如:進(jìn)程自身報錯、被零除、內(nèi)存保護(hù)、非法

系統(tǒng)調(diào)用等。分區(qū)級異常由用戶安裝的用戶分區(qū)異常處理程序處理。

  • 管理級


每個用戶分區(qū)可以配置一個管理分區(qū),用來幫助被管理用戶分區(qū)處理自身無法處理的異常。被升級到管理分區(qū)處理的異常稱為管理級異常,如用戶分區(qū)產(chǎn)生的二次異常。

當(dāng)用戶分區(qū)產(chǎn)生的異常升級為管理級時,健康監(jiān)控就會對產(chǎn)生異常的用戶分區(qū)進(jìn)行默認(rèn)處理(如掛起) 及后續(xù)一系列預(yù)設(shè)的異常處理。

  • 核心級


主要處理內(nèi)核態(tài)程序運行過程中產(chǎn)生的一些異常和管理分區(qū)無法處理的被管理用戶分區(qū)產(chǎn)生的異常, 如:內(nèi)核態(tài)程序產(chǎn)生了非法指令;管理分區(qū)是自身的用戶分區(qū)產(chǎn)生的二次異常。

內(nèi)核態(tài)程序運行過程中產(chǎn)生的異常需要執(zhí)行健康監(jiān)控中的內(nèi)核默認(rèn)異常處理,如記錄異常上下文信息,停止整個系統(tǒng),防止故障的蔓延。

圖片

圖 2.3-11 故障分派及處理示意圖

整個健康監(jiān)控系統(tǒng)的故障分派及處理的架構(gòu)如圖 2.3-11 所示,其核心是由操作系統(tǒng)內(nèi)核所維護(hù)的系統(tǒng)健康監(jiān)控表,該表由系統(tǒng)集成者進(jìn)行靜態(tài)配置,作為系統(tǒng)邏輯配置的一部分。當(dāng)處理器或操作系統(tǒng) 內(nèi)核檢測到一個故障時,在系統(tǒng)健康監(jiān)控表中通過系統(tǒng)狀態(tài)和故障類型,獲取事先定義的故障處理級別。系統(tǒng)健康監(jiān)控表根據(jù)錯誤代碼和注入時的系統(tǒng)狀態(tài)指定故障的分派級別(分區(qū)級、管理級或核心級)。系統(tǒng)健康監(jiān)控表是作為健康監(jiān)控總體故障處理派發(fā)的一級表,當(dāng)故障處理進(jìn)入對應(yīng)故障級別的處理流程后, 根據(jù)各自故障級別的健康監(jiān)控表(分區(qū)健康監(jiān)控表、管理健康監(jiān)控表、核心健康監(jiān)控表)中對應(yīng)的故障類型調(diào)用相應(yīng)的處理程序(系統(tǒng)默認(rèn)處理或用戶自定義處理)。

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25