亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        汽車電子操作系統(tǒng)存儲(chǔ)保護(hù)機(jī)制的設(shè)計(jì)

        2012-12-31 00:00:00燕立明羅蕾

        摘要:存儲(chǔ)保護(hù)在保證實(shí)時(shí)嵌入式操作系統(tǒng)的安全性中起到了重要的作用。針對(duì)AUTOSAR OS標(biāo)準(zhǔn)中關(guān)于存儲(chǔ)保護(hù)的要求,基于PowerPC的一款硬件平臺(tái)MPC5634設(shè)計(jì)并實(shí)現(xiàn)了一種汽車電子操作系統(tǒng)存儲(chǔ)保護(hù)的機(jī)制。通過(guò)對(duì)系統(tǒng)進(jìn)行域的劃分,并根據(jù)域的配置信息來(lái)規(guī)定域之間的相互訪問(wèn)的約束關(guān)系。底層基于存儲(chǔ)管理單元(MMU)的支持,設(shè)計(jì)TLB的管理,任務(wù)切換以及系統(tǒng)調(diào)來(lái)支持域之間訪問(wèn)的約束和隔離從而達(dá)到保護(hù)作用。通過(guò)分析和測(cè)試基于硬件的存儲(chǔ)保護(hù)機(jī)制,表明該設(shè)計(jì)能有效地達(dá)到存儲(chǔ)保護(hù)的要求,并且系統(tǒng)有較好的性能。

        關(guān)鍵詞:嵌入式系統(tǒng);汽車電子;存儲(chǔ)保護(hù);AUTOSAR

        中圖分類號(hào):TP316.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 22-0000-02

        存儲(chǔ)保護(hù)機(jī)制是實(shí)時(shí)嵌入式系統(tǒng)中保證系統(tǒng)安全可靠運(yùn)行的重要方法。尤其是在對(duì)安全性要求極高的嵌入式汽車電子領(lǐng)域,存儲(chǔ)保護(hù)凸顯出越來(lái)越大的重要性。作為嵌入式系統(tǒng)的一個(gè)領(lǐng)域,早期的汽車電子操作系統(tǒng)標(biāo)準(zhǔn),如OSEK OS并不支持存儲(chǔ)保護(hù)的機(jī)制。這些年來(lái)隨著存儲(chǔ)保護(hù)機(jī)制作用的不斷凸顯,汽車電子操作系統(tǒng)也吸納了存儲(chǔ)保護(hù)的機(jī)制,并把它作為可配置功能的一部分寫(xiě)入了規(guī)范中(AUTOSAR OS)。根據(jù)AUTOSAR OS規(guī)范的要求,基于硬件平臺(tái)MPC5634設(shè)計(jì)并實(shí)現(xiàn)了一種汽車電子操作系統(tǒng)的存儲(chǔ)保護(hù)機(jī)制。

        MPC5634中的存儲(chǔ)管理單元(MMU)是整個(gè)保護(hù)機(jī)制的硬件基礎(chǔ)[2],而域是整個(gè)保護(hù)機(jī)制的邏輯劃分。在航空電子等多種高可靠領(lǐng)域里,其保護(hù)機(jī)制也是建立在域的概念上的[1]。通過(guò)配置將系統(tǒng)劃分為多個(gè)域,來(lái)使系統(tǒng)中不同的區(qū)域相互隔離保護(hù)開(kāi)來(lái)。這樣即使某一個(gè)域中的程序運(yùn)行出現(xiàn)了問(wèn)題也不會(huì)破壞其它域的正常運(yùn)行。為了支持域之間的隔離和保護(hù),需要基于存儲(chǔ)管理單元(MMU)設(shè)計(jì)若干模塊,包括TLB的初始化和管理、進(jìn)程切換和系統(tǒng)調(diào)用。

        通過(guò)存儲(chǔ)管理機(jī)制,可以在不大幅影響原有系統(tǒng)性能的前提下安全可靠地共享一個(gè)微控制器。存儲(chǔ)保護(hù)的另外一個(gè)好處就是可以簡(jiǎn)化調(diào)試的工作,因?yàn)橥ㄟ^(guò)存儲(chǔ)保護(hù)機(jī)制可以檢查到許多很難發(fā)現(xiàn)的錯(cuò)誤[3]。

        1 系統(tǒng)總體設(shè)計(jì)

        1.1 AUTOSAR OS的存儲(chǔ)保護(hù)方案

        AUTOSAR OS是在原有OSEK OS的基礎(chǔ)之上擴(kuò)展改進(jìn)而來(lái)的。原有OSEK OS并不具有存儲(chǔ)保護(hù)功能,所有的應(yīng)用包括內(nèi)核都具有一樣的特權(quán)級(jí),對(duì)于它們之間的訪問(wèn)沒(méi)有限制和約束。

        為了在其基礎(chǔ)之上實(shí)現(xiàn)AUTOSAR OS所要求的存儲(chǔ)保護(hù)功能,需要在原有系統(tǒng)之上擴(kuò)展并構(gòu)建域,它的主要特點(diǎn)是:

        1)支持兩態(tài),即特權(quán)態(tài)和用戶態(tài)。

        操作系統(tǒng)與可信的應(yīng)用程序運(yùn)行在特權(quán)態(tài),不可信的應(yīng)用程序運(yùn)行在用戶態(tài)。

        2)支持域之間及域與操作系統(tǒng)的存儲(chǔ)保護(hù)。

        在操作系統(tǒng)中,各個(gè)域具有獨(dú)立的存儲(chǔ)器資源,從而實(shí)現(xiàn)用戶與操作系統(tǒng)、用戶與用戶之間在存儲(chǔ)空間上進(jìn)行隔離,達(dá)到互不影響的目的。

        1.2 存儲(chǔ)保護(hù)系統(tǒng)的設(shè)計(jì)

        1.2.1 域的設(shè)計(jì)

        域這個(gè)概念在AUTOSAR OS中對(duì)應(yīng)為OS-Application,它是系統(tǒng)中資源組織和管理的單元[4]。一組相關(guān)的資源,比如任務(wù)、計(jì)數(shù)器、警報(bào)等都是以域?yàn)閱挝唤M織在一起的,因此OS模塊需要根據(jù)域的配置信息來(lái)對(duì)資源訪問(wèn)的合法性進(jìn)行判斷。

        為了支持系統(tǒng)運(yùn)行過(guò)程中域之間的通信及交互,需要實(shí)現(xiàn)域的轉(zhuǎn)換。域的轉(zhuǎn)換一般發(fā)生在:

        1)任務(wù)的切換;

        2)操作系統(tǒng)的系統(tǒng)調(diào)用。

        1.2.2 底層存儲(chǔ)保護(hù)機(jī)制的設(shè)計(jì)

        為了實(shí)現(xiàn)域之間的訪問(wèn)約束和隔離,需要底層的存儲(chǔ)保護(hù)機(jī)制的支持。底層的存儲(chǔ)保護(hù)機(jī)制包括以下功能模塊:

        1)基于軟件的TLB的管理

        在具有MMU的CPU中,整個(gè)存儲(chǔ)保護(hù)權(quán)限的檢查都是在訪存過(guò)程中通過(guò)CPU自動(dòng)地將當(dāng)前的狀態(tài)信息與TLB對(duì)應(yīng)項(xiàng)進(jìn)行匹配來(lái)實(shí)現(xiàn)的。與CISC處理器不同,RISC處理器只提供了TLB,而未提供TLB的管理機(jī)制,因此相應(yīng)的TLB的管理都是有軟件來(lái)完成的[5]。TLB的管理是整個(gè)底層存儲(chǔ)保護(hù)機(jī)制的核心,因?yàn)門(mén)LB管理的好壞會(huì)對(duì)系統(tǒng)的性能有至關(guān)重要的影響

        2)權(quán)限訪問(wèn)異常的處理

        當(dāng)應(yīng)用在運(yùn)行過(guò)程中,如果非法訪問(wèn)其它域的存儲(chǔ)空間,系統(tǒng)則會(huì)產(chǎn)生訪問(wèn)權(quán)限異常。在異常處理程序中,需要根據(jù)異常的類型進(jìn)行相應(yīng)的處理。

        3)任務(wù)的管理

        任務(wù)管理的核心是任務(wù)之間的切換。每個(gè)任務(wù)都隸屬于唯一的OS-Application,因此任務(wù)之間正確的切換是保證域之間相互隔離和轉(zhuǎn)換的關(guān)鍵。

        4)系統(tǒng)調(diào)用

        為了使應(yīng)用與內(nèi)核隔離開(kāi)來(lái),需要提供統(tǒng)一的系統(tǒng)調(diào)用接口使應(yīng)用程序能夠正確地陷入到內(nèi)核中,從而保證內(nèi)核不會(huì)被應(yīng)用破壞。

        2 系統(tǒng)的實(shí)現(xiàn)方式

        2.1 OS-Application的實(shí)現(xiàn)

        2.1.1 OS-Application的資源管理

        作為資源統(tǒng)一管理的單元,OS-Application需要記錄其所管理的所有資源信息。在這里將各種類型資源的數(shù)量和標(biāo)識(shí)號(hào)都以表的方式保存在OS-Application的配置結(jié)構(gòu)中。由于在操作某一資源時(shí),需要通過(guò)該資源訪問(wèn)其所隸屬的OS-Application,因此在對(duì)應(yīng)的資源的配置結(jié)構(gòu)中也需要記錄其所隸屬的OS-Application的標(biāo)識(shí)號(hào)。

        2.1.2 OS-Application與底層的映射

        OS-Application作為域在邏輯層面上將系統(tǒng)劃分開(kāi)來(lái)需要底層的支持。在存儲(chǔ)保護(hù)中,域主要體現(xiàn)了系統(tǒng)存儲(chǔ)空間的隔離。為了實(shí)現(xiàn)域與存儲(chǔ)空間之間的映射,需要在源程序中將若干個(gè)域劃分為各自的輸入段,然后通過(guò)鏈接腳本將域定位到程序可執(zhí)行印象的指定存儲(chǔ)空間中[6]。

        由于MPC5634中的存儲(chǔ)管理單元(MMU)是基于分頁(yè)的機(jī)制來(lái)實(shí)現(xiàn)存儲(chǔ)管理的,所以必須將物理存儲(chǔ)空間中的系統(tǒng)的各個(gè)部分根據(jù)各自的屬性劃分成相應(yīng)的頁(yè)。頁(yè)的大小以4的倍數(shù)遞增,從4k到4G不等。每一個(gè)頁(yè)具有讀、寫(xiě)和可執(zhí)行的訪問(wèn)屬性,以及表示其特權(quán)模式的屬性和標(biāo)識(shí)其所隸屬的進(jìn)程ID的PID屬性。通過(guò)PID屬性可以標(biāo)識(shí)該頁(yè)所屬的域。通過(guò)將存儲(chǔ)空間分頁(yè)把系統(tǒng)的不同部分劃分開(kāi)來(lái)。

        2.2 TLB的管理實(shí)現(xiàn)

        每當(dāng)程序進(jìn)行訪存時(shí),MMU會(huì)將訪存地址、PID和當(dāng)前的特權(quán)模式與TLB中的項(xiàng)目相比較,若命中并且滿足權(quán)限要求則會(huì)將有效地址轉(zhuǎn)換為物理地址,否則產(chǎn)生異常?;谟布拇鎯?chǔ)保護(hù)機(jī)制就是通過(guò)TLB來(lái)對(duì)訪存加以權(quán)限檢查從而達(dá)到保護(hù)的功能。

        TLB共有16項(xiàng),為了有效地支持存儲(chǔ)保護(hù),根據(jù)系統(tǒng)的運(yùn)行特點(diǎn)這里將TLB的前8項(xiàng)作為固定項(xiàng)用以保存經(jīng)常被訪問(wèn)的系統(tǒng)頁(yè)面,比如內(nèi)核代碼和數(shù)據(jù)。而剩下的8項(xiàng)用來(lái)動(dòng)態(tài)地維護(hù)應(yīng)用使用的頁(yè)面。通常應(yīng)用的頁(yè)的數(shù)量會(huì)超過(guò)TLB中的項(xiàng)數(shù)。

        2.2.1 頁(yè)表的設(shè)計(jì)

        頁(yè)表分為兩種,系統(tǒng)頁(yè)表和應(yīng)用頁(yè)表。系統(tǒng)頁(yè)表中對(duì)應(yīng)的是系統(tǒng)初始化及內(nèi)核相關(guān)的數(shù)據(jù)和代碼。這些頁(yè)面信息是長(zhǎng)駐TLB中的,其特權(quán)模式是內(nèi)核態(tài),并且其所對(duì)應(yīng)的程序是作為共享資源來(lái)訪問(wèn)的。應(yīng)用頁(yè)表中對(duì)應(yīng)的是應(yīng)用的數(shù)據(jù)和代碼。這些頁(yè)面信息不是長(zhǎng)駐TLB中的,當(dāng)發(fā)生缺頁(yè)異常的時(shí)候TLB中某些應(yīng)用的頁(yè)面信息會(huì)被替換掉。

        為了有效地維護(hù)頁(yè),這里以散列表的方式來(lái)記錄頁(yè)起始地址與頁(yè)在頁(yè)表中位置的關(guān)系。頁(yè)的起始地址作為散列表的關(guān)鍵碼,通過(guò)散列函數(shù)將其轉(zhuǎn)換為對(duì)應(yīng)的散列表中的位置。散列表該位置處的元素記錄了頁(yè)在頁(yè)表中的位置。

        2.2.2 頁(yè)的替換算法

        因?yàn)閼?yīng)用的頁(yè)的數(shù)量通??赡軙?huì)超過(guò)可用的TLB的項(xiàng)數(shù),所以在運(yùn)行過(guò)程中可能會(huì)發(fā)生TLB未命中的情況。在TLB未命中異常處理函數(shù)中需要對(duì)TLB中的項(xiàng)進(jìn)行替換,將需要訪問(wèn)的應(yīng)用的頁(yè)置入TLB中。這里以先進(jìn)先出的方式實(shí)現(xiàn)替換。在發(fā)生未命中異常的時(shí)候,我們能得到的信息有有效地址以及當(dāng)前的PID,我們必須通過(guò)有效地址來(lái)找到需要置換進(jìn)TLB的頁(yè)面,以及再找到需要置換出TLB的頁(yè)面。前者我們通過(guò)一個(gè)散列表表來(lái)查找需要置換進(jìn)來(lái)的頁(yè)面,而后者我們維護(hù)一個(gè)先進(jìn)先出的鏈表來(lái)決定需要置換出去的頁(yè)面。

        2.3 系統(tǒng)調(diào)用的實(shí)現(xiàn)

        系統(tǒng)調(diào)用由兩部分構(gòu)成,接口函數(shù)和系統(tǒng)調(diào)用異常處理函數(shù)。

        2.3.1 接口函數(shù)的實(shí)現(xiàn)

        每個(gè)接口函數(shù)都對(duì)應(yīng)一個(gè)系統(tǒng)服務(wù)。在接口函數(shù)中以函數(shù)指針的方式來(lái)建立與系統(tǒng)服務(wù)的關(guān)聯(lián)。當(dāng)用戶調(diào)用接口函數(shù)時(shí),需要判斷當(dāng)前的特權(quán)模式。如果當(dāng)前是特權(quán)態(tài)則直接調(diào)用系統(tǒng)服務(wù)。否則需要保存系統(tǒng)服務(wù)函數(shù)的地址到寄存器,然后再通過(guò)匯編指令SC觸發(fā)系統(tǒng)調(diào)用異常處理函數(shù)來(lái)實(shí)現(xiàn)特權(quán)模式的切換。

        2.3.2 系統(tǒng)調(diào)用異常處理函數(shù)的實(shí)現(xiàn)

        進(jìn)入到異常處理函數(shù)中后,系統(tǒng)進(jìn)入特權(quán)態(tài)。其后需要根據(jù)當(dāng)前任務(wù)分配系統(tǒng)棧,并使程序跳轉(zhuǎn)到保存在寄存器中的系統(tǒng)服務(wù)函數(shù)的入口地址處。

        2.4 任務(wù)的管理

        任務(wù)管理的核心在于當(dāng)任務(wù)發(fā)生切換的時(shí)候,需要完成任務(wù)之間上下文環(huán)境的切換。與此同時(shí)任務(wù)執(zhí)行過(guò)程中所代表的域的保護(hù)信息也需要進(jìn)行切換,從而保證域與域之間正確的轉(zhuǎn)換。這些信息包括:

        1)OS-Application的ID號(hào);

        2)任務(wù)所隸屬的OS-Application的特權(quán)模式;

        3)任務(wù)的系統(tǒng)棧。

        若切換至的任務(wù)是第一次運(yùn)行,則需要通過(guò)接口函數(shù)來(lái)實(shí)現(xiàn)到任務(wù)入口函數(shù)的跳轉(zhuǎn)。在接口函數(shù)中根據(jù)任務(wù)所屬OS-Application的特權(quán)模式來(lái)進(jìn)行不同的處理。若是特權(quán)態(tài)則直接進(jìn)行跳轉(zhuǎn),否則需要將當(dāng)前特權(quán)模式更改為用戶態(tài)再進(jìn)行跳轉(zhuǎn)。

        3 結(jié)論

        3.1 功能驗(yàn)證

        為了對(duì)存儲(chǔ)保護(hù)機(jī)制進(jìn)行驗(yàn)證,這里設(shè)計(jì)了兩個(gè)簡(jiǎn)單的OS-Application,如表1所示:

        當(dāng)task2訪問(wèn)OS-Application1中的數(shù)據(jù)變量a時(shí)系統(tǒng)就會(huì)產(chǎn)生數(shù)據(jù)權(quán)限訪問(wèn)異常;當(dāng)task2調(diào)用OS-Application1中的子例程subroutine1時(shí)則會(huì)產(chǎn)生代碼權(quán)限訪問(wèn)異常。添加了存儲(chǔ)保護(hù)機(jī)制的系統(tǒng)可以有效地對(duì)存儲(chǔ)訪問(wèn)進(jìn)行保護(hù),提高了系統(tǒng)的健壯性。

        3.2 性能分析

        在為系統(tǒng)增加了存儲(chǔ)保護(hù)機(jī)制的同時(shí)也給系統(tǒng)帶來(lái)了額外的負(fù)荷,系統(tǒng)的效率與原有相比有所降低。通過(guò)對(duì)代碼的分析可以發(fā)現(xiàn)對(duì)系統(tǒng)性能的影響主要在于以下幾個(gè)方面:

        1)系統(tǒng)調(diào)用

        與未使用存儲(chǔ)保護(hù)機(jī)制相比,每個(gè)系統(tǒng)調(diào)用需要增加額外的代碼量,包括接口函數(shù)和系統(tǒng)調(diào)用異常處理函數(shù)。接口函數(shù)占24個(gè)匯編指令,異常處理函數(shù)占22個(gè)。

        2)任務(wù)切換

        任務(wù)切換過(guò)程中域相關(guān)信息的處理需要額外的23個(gè)匯編指令。

        3)缺頁(yè)異常處理

        當(dāng)OS-Application數(shù)為4個(gè)時(shí)剛好占用TLB中的8個(gè)項(xiàng),但當(dāng)OS-Application數(shù)超過(guò)4時(shí)則會(huì)發(fā)生缺頁(yè)現(xiàn)象,隨著OS-Application數(shù)量的增加系統(tǒng)開(kāi)銷也會(huì)大幅度上升。

        盡管存儲(chǔ)保護(hù)機(jī)制給系統(tǒng)帶來(lái)了額外的開(kāi)銷,但是在滿足系統(tǒng)實(shí)時(shí)性要求的情況下它對(duì)增強(qiáng)系統(tǒng)的健壯性和安全性是大有好處的。

        參考文獻(xiàn):

        [1]OSEK/VDX. Osek/vdx operating system [S]. Version 2.2.3.

        [2]Freescale Semiconductor. e200z3 Power Architecture? Core Reference Manual [R]. Rev. 2.2008-06.

        [3]Shimpei Yamada, Yukikazu Nakamoto, Takuya Azumi, et al. Generic Memory Protection Mechanism for Embedded System and Its Application to Embedded Component Systems [C]. IEEE 8th International Conference on Computer and Information Technology Workshops. 2008:557-562.

        [4]AUTOSAR Development Partnership. AUTOSAR Operating System Specification [S]. V 4.0.0Rev 1. AUTOSAR GbR,2009.

        [5]David Nagle, Richard Uhlig, Tim Stanley,et al. Design Tradeoffs for Software-Managed TLBs [C]. Proceeding of the 20th Anniversary International Symposium on Computer Architecture. Michigan USA,1993: 27-38.

        [6]AUTOSAR Development Partnership. Specification of Memory Mapping 3.1.1 [S]. AUTOSAR GbR,2009.

        亚洲av色影在线| 人妻少妇久久精品一区二区| 亚洲乱码av中文一区二区第八页| 亚洲成av人片在www鸭子| 久久综合国产乱子伦精品免费 | 色窝综合网| 丰满老熟女性生活视频| 久久精品国产亚洲av香蕉| 国产女女做受ⅹxx高潮| 91精品国产91久久综合桃花| 深夜日韩在线观看视频| 在线观看的网站| 97免费人妻在线视频| 最新永久免费AV网站| 在线观看国产白浆一区三区| 成年女人a毛片免费视频| 亚洲国产精品无码久久电影| 强d乱码中文字幕熟女1000部 | 日本中出熟女一区二区| 亚洲精品国产av成人精品| 最近免费mv在线观看动漫| 狠狠躁狠狠躁东京热无码专区| 亚洲中文字幕乱码在线视频| 国产人妖乱国产精品人妖| 水蜜桃在线观看一区二区国产| 国产av一区二区三区在线 | 久久久2019精品视频中文字幕| 在线观看午夜视频国产| 精品免费久久久久久久| 亚洲a∨天堂男人无码| 久久伊人久久伊人久久| 亚洲乱码国产乱码精华| 无尽动漫性视频╳╳╳3d| 蜜桃av多人一区二区三区| 中文字幕人妻少妇伦伦| 国产麻豆成人精品av| 一区二区免费电影| 深夜福利国产精品中文字幕| 国产精品vⅰdeoxxxx国产| 免费视频一区二区| 亚洲国产精品一区二区|