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

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

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

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

    • 在線課堂

    • 電車測(cè)試

智能汽車車用基礎(chǔ)軟件的內(nèi)核和中間件關(guān)鍵技術(shù)解讀

2022-09-25 17:44:45·  來源:汽車測(cè)試網(wǎng)  
 
1. 高效 IPC 技術(shù)無論是安全車控、智能駕駛還是智能座艙應(yīng)用,都必然存在著多個(gè)任務(wù)并發(fā)執(zhí)行的情況。每一個(gè)任務(wù)都可能對(duì)應(yīng)著一個(gè)或多個(gè)進(jìn)程,用戶應(yīng)用進(jìn)程之間由

1.  高效 IPC 技術(shù)

無論是安全車控、智能駕駛還是智能座艙應(yīng)用,都必然存在著多個(gè)任務(wù)并發(fā)執(zhí)行的情況。每一個(gè)任務(wù)都可能對(duì)應(yīng)著一個(gè)或多個(gè)進(jìn)程,用戶應(yīng)用進(jìn)程之間由于可靠性和信息安全的需要采用了各種嚴(yán)格的時(shí)空隔離手段(技術(shù)原理參見 2.3.3.2 節(jié))進(jìn)行隔離,不能直接進(jìn)行通信。但是用戶進(jìn)程間的協(xié)作又必須要進(jìn)行信息交互,因此只能依賴于操作系統(tǒng)內(nèi)核提供的進(jìn)程間通信機(jī)制來完成,業(yè)界稱為 IPC 技術(shù)。IPC 機(jī)制在實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)傳遞功能的同時(shí),還需要內(nèi)核通過對(duì)進(jìn)程的運(yùn)行狀態(tài)和運(yùn)行時(shí)間的控制來實(shí)現(xiàn)控制流從發(fā)送者進(jìn)程到接收者進(jìn)程的切換(返回的過程類似),從而直接影響系統(tǒng)運(yùn)行效率。

目前宏內(nèi)核架構(gòu)和微內(nèi)核架構(gòu)的操作系統(tǒng)都能夠提供一些常見的 IPC 通信機(jī)制,包括管道、消息隊(duì)列、信號(hào)量、共享內(nèi)存、套接字 Socket 等。具體應(yīng)用場(chǎng)景和特點(diǎn)如下表 2.3-1 所示:

表 2.3-1 常用IPC技術(shù)對(duì)照表

圖片

圖片

圖片


出于最小內(nèi)核服務(wù)設(shè)計(jì)的考慮,在微內(nèi)核架構(gòu)系統(tǒng)中,類似于驅(qū)動(dòng),文件系統(tǒng)等傳統(tǒng)的內(nèi)核服務(wù)被 移到了用戶態(tài),許多原本可以通過簡(jiǎn)單系統(tǒng)調(diào)用就可實(shí)現(xiàn)的內(nèi)核功能也必須使用 IPC 機(jī)制來提供服務(wù), 在系統(tǒng)負(fù)荷較高的情況下可能會(huì)面臨著比宏內(nèi)核更加嚴(yán)重的效率問題。因此對(duì)微內(nèi)核系統(tǒng)的研究一般都 會(huì)將改進(jìn) IPC 效率作為優(yōu)化系統(tǒng)性能的重要選擇之一。

傳統(tǒng)的微內(nèi)核 IPC 機(jī)制設(shè)計(jì)是通過端口(port)和消息(message)來實(shí)現(xiàn)進(jìn)程間接通信。通信的雙方不需要顯式指定另一方,而是通過端口進(jìn)行通信,這樣可以將用戶進(jìn)程本身和 IPC 通信隔離開,只要一個(gè)進(jìn)程在內(nèi)核擁有某個(gè)端口,就能通過這個(gè)端口和另一端的進(jìn)程通信。進(jìn)程之間通過端口流通的數(shù)據(jù)就是消息。

在微內(nèi)核 IPC 通信機(jī)制優(yōu)化方案當(dāng)中,還有一些比較極端的手段,如遷移線程技術(shù)(thread migra- tion)。如果把其他 IPC 通信機(jī)制看作將需要處理的數(shù)據(jù)發(fā)送到其他進(jìn)程(或線程)進(jìn)行處理的話,那么遷移線程技術(shù)就是把其他進(jìn)程的代碼拉進(jìn)當(dāng)前進(jìn)程中運(yùn)行,這樣就會(huì)大量減少內(nèi)核進(jìn)程切換的代價(jià),同時(shí) 也能通過共享參數(shù)棧和寄存器來簡(jiǎn)化數(shù)據(jù)傳輸,減少序列化開銷,優(yōu)化并發(fā),避免共享的全局?jǐn)?shù)據(jù)結(jié)構(gòu)。在一些學(xué)術(shù)文獻(xiàn)中,遷移線程模型被用在了 LRPC(輕量級(jí)遠(yuǎn)程過程調(diào)用)技術(shù)當(dāng)中。

圖片

圖2.3-1 主流IPC的控制流轉(zhuǎn)移

圖片

圖 2.3-2 遷移線程IPC

上面兩張圖 ( 圖 2.3-1 和圖 2.3-2) 是主流 IPC 和遷移線程 IPC 設(shè)計(jì)的對(duì)比?!耙龅?‘將代碼拉到本地’ ,遷移線程首先需要對(duì)線程結(jié)構(gòu)進(jìn)行解耦,明確線程中哪些部分是對(duì)通信請(qǐng)求處理起關(guān)鍵作用的。然后,這部分允許被調(diào)用者(負(fù)責(zé)處理請(qǐng)求的邏輯)運(yùn)行在調(diào)用者的上下文中,將跨進(jìn)程調(diào)用變成更接 近函數(shù)調(diào)用的形式?!?,由于篇幅原因,遷移線程模型的實(shí)現(xiàn)就不做詳細(xì)介紹了,具體細(xì)節(jié)可參考相關(guān)文獻(xiàn)。

在行業(yè)中,即使是一些成熟的系統(tǒng)也會(huì)針對(duì)特定應(yīng)用場(chǎng)景提供改進(jìn)的 IPC 機(jī)制,比如 Android 系統(tǒng)(宏內(nèi)核)就使用了 Binder IPC 機(jī)制來改進(jìn)進(jìn)程通信效率。Binder IPC 機(jī)制中發(fā)起通信請(qǐng)求的用戶態(tài)進(jìn)程被稱為客戶端,執(zhí)行某種服務(wù)的用戶態(tài)進(jìn)程都被稱為服務(wù)端。Binder IPC 還引入了 Context Manager 進(jìn)程來負(fù)責(zé)建立通信連接。當(dāng)服務(wù)端在向內(nèi)核及 Context Manager 注冊(cè)時(shí),內(nèi)核 Binder 驅(qū)動(dòng)及服務(wù)端進(jìn)程會(huì)在內(nèi)核中維護(hù)一個(gè)對(duì)應(yīng)的 “線程池” 。線程池中的每個(gè)線程都可以代表服務(wù)端處理客戶端的請(qǐng)求并返回結(jié)果。客戶端首先從內(nèi)核和 Context Manager 處獲取服務(wù)端信息,然后通過內(nèi)核對(duì)服務(wù)端發(fā)起通信請(qǐng)求, 內(nèi)核會(huì)從對(duì)應(yīng)的服務(wù)端線程池里找到空閑的線程來響應(yīng)處理(通過內(nèi)存映射方式僅用一次拷貝完成數(shù)據(jù) 傳遞,比共享內(nèi)存兩次數(shù)據(jù)拷貝要快)。每個(gè)服務(wù)端在內(nèi)核中對(duì)應(yīng)的線程池大小可以通過消息來動(dòng)態(tài)改變, 內(nèi)核 Binder 驅(qū)動(dòng)也允許用戶為服務(wù)端配置一個(gè)最大上限線程數(shù),這樣動(dòng)態(tài)分配結(jié)合最大上限配置能夠防止資源浪費(fèi)和潛在的安全攻擊。需要特別強(qiáng)調(diào)的是,用戶態(tài)的客戶端,服務(wù)端和 Context Manager 進(jìn)程間的交互(下圖2.3-3 虛線部分)都不能直接交換信息,而是通過運(yùn)行在內(nèi)核的Binder 驅(qū)動(dòng)來間接完成(下圖 2.3-3 實(shí)線部分)。

圖片

圖2.3-3 Binder IPC機(jī)制框架

在車用環(huán)境中,無論是基于宏內(nèi)核還是基于微內(nèi)核架構(gòu)搭建的操作系統(tǒng),使用什么樣的 IPC 通信機(jī)制并不是固定的,需要根據(jù)不同的應(yīng)用和需求目標(biāo)進(jìn)行靈活選擇,必要時(shí)甚至?xí)髢?nèi)核改進(jìn) IPC 通信機(jī)制。

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