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

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

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

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

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

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

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

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

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

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


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


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

圖片

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

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

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

圖片

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

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

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

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

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

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

總之,從技術(shù)發(fā)展趨勢(shì)看,上述的這些基于優(yōu)先級(jí)的搶占式進(jìn)程調(diào)度機(jī)制通過一定程度的    “動(dòng)態(tài)” 優(yōu)化,都能很好地在滿足硬實(shí)時(shí)任務(wù)的截止時(shí)間要求的基礎(chǔ)上,照顧到軟實(shí)時(shí)業(yè)務(wù)和其他非實(shí)時(shí)業(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)用的實(shí)時(shí)性和確定性要求外,功能安全的保證也同等重要的。由于操作系統(tǒng)內(nèi)核是由軟件代碼組成,從軟件工程的角度來看,缺陷幾乎是不可避免的,而這些缺陷在某些特定條件下有可能會(huì)引發(fā)功能安全故障。因此,為了及時(shí)在系統(tǒng)運(yùn)行過程中發(fā)現(xiàn)這些故障,并及時(shí)處理以防止故障的擴(kuò)散,避免引發(fā)功能安全事故,采取健康監(jiān)控是一種必要的解決方案。

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

圖片

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

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

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


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


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

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

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

  • 分區(qū)級(jí)


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

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

  • 管理級(jí)


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

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

  • 核心級(jí)


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

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

圖片

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

整個(gè)健康監(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)核檢測(cè)到一個(gè)故障時(shí),在系統(tǒng)健康監(jiān)控表中通過系統(tǒng)狀態(tài)和故障類型,獲取事先定義的故障處理級(jí)別。系統(tǒng)健康監(jiān)控表根據(jù)錯(cuò)誤代碼和注入時(shí)的系統(tǒng)狀態(tài)指定故障的分派級(jí)別(分區(qū)級(jí)、管理級(jí)或核心級(jí))。系統(tǒng)健康監(jiān)控表是作為健康監(jiān)控總體故障處理派發(fā)的一級(jí)表,當(dāng)故障處理進(jìn)入對(duì)應(yīng)故障級(jí)別的處理流程后, 根據(jù)各自故障級(jí)別的健康監(jiān)控表(分區(qū)健康監(jiān)控表、管理健康監(jiān)控表、核心健康監(jiān)控表)中對(duì)應(yīng)的故障類型調(diào)用相應(yīng)的處理程序(系統(tǒng)默認(rèn)處理或用戶自定義處理)。

分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25