《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 多核對(duì)分區(qū)操作系統(tǒng)影響研究
多核對(duì)分區(qū)操作系統(tǒng)影響研究
來(lái)源:微型機(jī)與應(yīng)用2012年第2期
趙 純,龍 翔,王 雷
(北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,,北京100191)
摘要: 分區(qū)操作系統(tǒng)是綜合化航空電子領(lǐng)域中的核心技術(shù)。隨著單核性能極限的到來(lái),,處理器結(jié)構(gòu)向著多核發(fā)展,。將兩者結(jié)合起來(lái),在多核分區(qū)操作系統(tǒng)的基礎(chǔ)上研究分析多核處理器結(jié)構(gòu)為分區(qū)操作系統(tǒng)帶來(lái)的影響,。經(jīng)分析實(shí)驗(yàn)數(shù)據(jù)得出多核處理器結(jié)構(gòu)在多核處理器中共享Cache結(jié)構(gòu)和內(nèi)核中臨界資源并發(fā)訪問(wèn)兩方面對(duì)分區(qū)操作系統(tǒng)產(chǎn)生影響,。
Abstract:
Key words :

摘  要: 分區(qū)操作系統(tǒng)是綜合化航空電子領(lǐng)域中的核心技術(shù)。隨著單核性能極限的到來(lái),,處理器結(jié)構(gòu)向著多核發(fā)展,。將兩者結(jié)合起來(lái),在多核分區(qū)操作系統(tǒng)的基礎(chǔ)上研究分析多核處理器結(jié)構(gòu)為分區(qū)操作系統(tǒng)帶來(lái)的影響,。經(jīng)分析實(shí)驗(yàn)數(shù)據(jù)得出多核處理器結(jié)構(gòu)在多核處理器中共享Cache結(jié)構(gòu)和內(nèi)核中臨界資源并發(fā)訪問(wèn)兩方面對(duì)分區(qū)操作系統(tǒng)產(chǎn)生影響,。
關(guān)鍵詞: 多核;分區(qū),;操作系統(tǒng)

    綜合化航空電子IMA(Integrated Modular Avionics)系統(tǒng)是第四代航空電子的發(fā)展方向,。綜合化航空電子致力于最大化利用計(jì)算機(jī)硬件資源,減少航空電子設(shè)備對(duì)飛行器的負(fù)載,,提高飛行器運(yùn)載能力,。
    分區(qū)機(jī)制是綜合化航空電子的核心技術(shù)。分區(qū)機(jī)制是指將系統(tǒng)資源(內(nèi)存,、I/O等)進(jìn)行配置,,建立多個(gè)分區(qū),分區(qū)中包含系統(tǒng)所分配的資源,,分區(qū)與分區(qū)之間相互隔離,。分區(qū)包括時(shí)間分區(qū)和空間分區(qū)。時(shí)間分區(qū)是指系統(tǒng)為分區(qū)之間提供時(shí)間維度的隔離,,分區(qū)都有屬于自己的處理器獨(dú)立使用時(shí)間,,并且時(shí)間不受其他分區(qū)影響;空間分區(qū)是指系統(tǒng)為分區(qū)之間提供空間維度的隔離,,空間包括內(nèi)存地址空間及I/O地址空間,。通過(guò)空間分區(qū)隔離技術(shù)分區(qū)無(wú)法訪問(wèn)本分區(qū)外的空間資源,而外分區(qū)同樣無(wú)法訪問(wèn)本分區(qū)內(nèi)空間資源,。不同應(yīng)用運(yùn)行于不同的分區(qū)內(nèi),,應(yīng)用之間由于分區(qū)間的隔離而無(wú)法感知到其他分區(qū)應(yīng)用的存在而認(rèn)為獨(dú)享整個(gè)硬件資源。所以通過(guò)分區(qū)機(jī)制可以實(shí)現(xiàn)將運(yùn)行于不同硬件上的應(yīng)用運(yùn)行于同一硬件平臺(tái),,并且相互之間互不影響,,從而實(shí)現(xiàn)綜合化航空電子系統(tǒng)。
    單核處理器已經(jīng)達(dá)到性能瓶頸,,無(wú)法靠增加頻率,、帶寬帶來(lái)性能的提升。處理器結(jié)構(gòu)正向多核發(fā)展,。處理器這種結(jié)構(gòu)上的變化在多方面影響操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),,比如多核處理器系統(tǒng)中任務(wù)并發(fā)訪問(wèn)臨界資源以及多核處理器結(jié)構(gòu)中Cache一致性等。
    多核處理器在硬件層面的變化會(huì)影響到操作系統(tǒng)及相關(guān)應(yīng)用,,本文通過(guò)實(shí)驗(yàn)分析了多核結(jié)構(gòu)帶來(lái)的影響,。
1 多核分區(qū)操作系統(tǒng)
1.1 LESOS操作系統(tǒng)

    LESOS是北航嵌入式實(shí)驗(yàn)室一款多核分區(qū)操作系統(tǒng)。該操作系統(tǒng)在硬件上支持現(xiàn)在常見(jiàn)的多核處理器SMP(Symmetrical Multi-Processing)結(jié)構(gòu),,在軟件上支持線程,、進(jìn)程、虛擬內(nèi)存管理等功能,。系統(tǒng)中相應(yīng)的參數(shù)如表1所示,。

    本文后續(xù)工作都基于此操作系統(tǒng)完成。
1.2 分區(qū)模型
    分區(qū)操作系統(tǒng)中,,分區(qū)是資源的載體,,任務(wù)是操作的載體。系統(tǒng)為分區(qū)分配其所需的資源,,如內(nèi)存,、I/O、處理器執(zhí)行時(shí)間等,;分區(qū)則通過(guò)具體的任務(wù)完成相應(yīng)的功能,。一個(gè)分區(qū)中包含有若干不同的任務(wù),每個(gè)任務(wù)有不同的任務(wù)優(yōu)先級(jí),;分區(qū)內(nèi)部的所有任務(wù)共享此分區(qū)內(nèi)部資源,。系統(tǒng)中每個(gè)任務(wù)屬于且只能屬于一個(gè)分區(qū),任務(wù)不能脫離分區(qū)單獨(dú)存在,。
1.3 分區(qū)調(diào)度
    雙層調(diào)度模型選擇一個(gè)要執(zhí)行的任務(wù),,首先需要在分區(qū)一級(jí)進(jìn)行調(diào)度,選擇相應(yīng)的分區(qū)作為候選分區(qū),,然后在候選分區(qū)的所有任務(wù)中選擇相應(yīng)的任務(wù)作為候選任務(wù),。由于在調(diào)度過(guò)程中需要在兩個(gè)級(jí)別進(jìn)行兩次選擇,所以稱(chēng)為雙層調(diào)度,。
    首先在分區(qū)內(nèi)部的調(diào)度中,,調(diào)度器的調(diào)度單位是任務(wù)。此層調(diào)度使用的是基于優(yōu)先級(jí)搶占式的調(diào)度算法,,目的是使分區(qū)內(nèi)部重要的任務(wù)能夠及時(shí)得到處理,。調(diào)度器在所需調(diào)度的分區(qū)內(nèi)部所有的任務(wù)中選擇優(yōu)先級(jí)最高的任務(wù)作為此次調(diào)度的結(jié)果。
    其次在分區(qū)之間的調(diào)度中,,調(diào)度器的調(diào)度單位是分區(qū),。此層調(diào)度使用靜態(tài)時(shí)間片輪轉(zhuǎn)調(diào)度算法,目的是使各個(gè)分區(qū)之間都能夠得到相應(yīng)的運(yùn)行時(shí)間,,不會(huì)因?yàn)槟承┓謪^(qū)的異常而導(dǎo)致其他分區(qū)無(wú)法運(yùn)行,。調(diào)度器依據(jù)當(dāng)前系統(tǒng)時(shí)間以及靜態(tài)調(diào)度表選擇適當(dāng)分區(qū)作為此次調(diào)度的結(jié)果,。
    最后為了支持多核處理器,調(diào)度器為每個(gè)處理器核心維護(hù)一張靜態(tài)調(diào)度表,,這樣每個(gè)處理器可以在自身的靜態(tài)調(diào)度表中進(jìn)行調(diào)度,,從而避免相互影響。每個(gè)處理器需要獲得一個(gè)要執(zhí)行的任務(wù)時(shí),,首先通過(guò)處理器本身的靜態(tài)表進(jìn)行分區(qū)調(diào)度選擇合適的分區(qū),,然后在選中的分區(qū)中進(jìn)行分區(qū)內(nèi)部的任務(wù)調(diào)度選擇出合適的任務(wù),此任務(wù)就是處理器下一個(gè)要執(zhí)行的任務(wù),。
2 測(cè)試及數(shù)據(jù)
    多核處理器與單核處理器結(jié)構(gòu)上的不同會(huì)影響操作系統(tǒng)及上層應(yīng)用程序的行為,、性能。本文在前述工作的基礎(chǔ)上通過(guò)以下實(shí)驗(yàn)研究分析多核處理器結(jié)構(gòu)為分區(qū)操作系統(tǒng)所帶來(lái)的影響,。
2.1 測(cè)試環(huán)境
    本文的實(shí)現(xiàn)工作是基于Freescale的HPCNet-8641D平臺(tái),。平臺(tái)中兩顆PowerPC E600處理器運(yùn)行于SMP模式。平臺(tái)基本參數(shù)如下:處理器頻率1 GHz,,系統(tǒng)總線頻率400 MHz,,內(nèi)存512 MB。兩顆處理器中分別包含指令,、數(shù)據(jù)為32 KB的一級(jí)Cache以及共享1 MB的二級(jí)Cache,。此外,平臺(tái)還有Dual-UART,、千兆以太網(wǎng)卡等外設(shè)接口,。
2.2 多核分區(qū)對(duì)Cache的影響
    由于多核處理器結(jié)構(gòu)從物理層面上引入了共享Cache,所以本文設(shè)計(jì)以下實(shí)驗(yàn)分析多核處理器結(jié)構(gòu)在Cache方面對(duì)上層應(yīng)用的影響,。
    首先,,在單核分區(qū)操作系統(tǒng)上分別執(zhí)行不同大小數(shù)據(jù)量的讀、寫(xiě),、拷貝任務(wù),,測(cè)試訪問(wèn)不同大小數(shù)據(jù)量的相關(guān)操作執(zhí)行時(shí)間。因?yàn)樵诙嗪颂幚砥魃?,Cache分為兩級(jí),,一級(jí)為32 KB處理器本地Cache,以及共享1 MB的二級(jí)Cache,,所以在設(shè)計(jì)實(shí)驗(yàn)時(shí)將數(shù)據(jù)量分為兩類(lèi),,一類(lèi)是一級(jí)Cache內(nèi)不同數(shù)據(jù)量的訪問(wèn)測(cè)試,另一類(lèi)是大于一級(jí)Cache大小數(shù)據(jù)量訪問(wèn)的測(cè)試,。其次,,在多核分區(qū)操作系統(tǒng)上處于不同處理器上的分區(qū)同時(shí)運(yùn)行上述任務(wù),收集相關(guān)測(cè)試數(shù)據(jù)。最后,,將兩者同性質(zhì)的數(shù)據(jù)進(jìn)行比較,,結(jié)果如圖1~圖6所示。

 

 

    通過(guò)以上數(shù)據(jù)可以得出以下幾點(diǎn)結(jié)論:(1)對(duì)于一級(jí)Cache容量(32 KB)大小以?xún)?nèi)的數(shù)據(jù)訪問(wèn),,單核分區(qū)系統(tǒng)與多核分區(qū)系統(tǒng)執(zhí)行性能相差無(wú)幾,,這是因?yàn)榇藭r(shí)對(duì)數(shù)據(jù)的訪問(wèn)大多集中于分區(qū)所在處理器本身的Cache中,所以多核分區(qū)性能并沒(méi)有受到影響,;(2)當(dāng)任務(wù)訪問(wèn)數(shù)據(jù)量大于一級(jí)Cache容量(32 KB)后,多核分區(qū)中的數(shù)據(jù)訪問(wèn)任務(wù)性能要略低于單核分區(qū)中相關(guān)任務(wù)的性能,。這是因?yàn)榇藭r(shí)分區(qū)同時(shí)運(yùn)行在不同的處理器上,,分區(qū)中數(shù)據(jù)訪問(wèn)任務(wù)存在對(duì)共享的二級(jí)Cache的爭(zhēng)用,導(dǎo)致分區(qū)數(shù)據(jù)訪問(wèn)過(guò)程中二級(jí)Cache命中率降低,,從而引起多核分區(qū)中數(shù)據(jù)訪問(wèn)性能下降,。
2.3 多核分區(qū)間對(duì)鎖的競(jìng)爭(zhēng)
    在多核處理器結(jié)構(gòu)系統(tǒng)中,運(yùn)行于不同處理器上的分區(qū)會(huì)對(duì)某一臨界資源并發(fā)訪問(wèn),。操作系統(tǒng)為保證此種并發(fā)訪問(wèn)結(jié)果的一致性,,需要加鎖以保護(hù)臨界資源。在訪問(wèn)相應(yīng)臨界資源時(shí),,任務(wù)需要先獲得相應(yīng)互斥鎖,,然后再對(duì)資源進(jìn)行訪問(wèn)、修改,,最后釋放互斥鎖,。以下實(shí)驗(yàn)研究分析多核處理器結(jié)構(gòu)中增加鎖開(kāi)銷(xiāo)帶來(lái)的影響。
    首先,,構(gòu)造分區(qū)任務(wù),,分區(qū)任務(wù)在執(zhí)行過(guò)程中循環(huán)調(diào)用malloc函數(shù),申請(qǐng)1 MB的內(nèi)存,,然后調(diào)用free函數(shù)釋放剛申請(qǐng)的內(nèi)存,,在任務(wù)執(zhí)行過(guò)程中分別統(tǒng)計(jì)調(diào)用malloc及free函數(shù)所使用的時(shí)間。其次,,按照不同的分區(qū)之間相關(guān)系數(shù)將構(gòu)造的分區(qū)任務(wù)分別運(yùn)行于不同處理器的分區(qū)之中,。最后,測(cè)試不同用例中分區(qū)任務(wù)的運(yùn)行情況,,統(tǒng)計(jì),、分析實(shí)驗(yàn)數(shù)據(jù)。
    實(shí)驗(yàn)按照以下方式構(gòu)造不同相關(guān)系數(shù)的分區(qū)任務(wù),,相關(guān)系數(shù)如圖7所示,。不同處理器上的兩個(gè)完全相同的分區(qū)同時(shí)運(yùn)行,此時(shí)兩個(gè)分區(qū)由于行為完全一致,,所以?xún)蓚€(gè)分區(qū)之間的相關(guān)系數(shù)為1,。然后將一個(gè)處理器上的分區(qū)與之前一個(gè)分區(qū)錯(cuò)開(kāi)20%的執(zhí)行時(shí)間,,兩個(gè)分區(qū)之間只有80%的重疊部分,這樣兩個(gè)分區(qū)之間的相關(guān)系數(shù)為0.8,。依此類(lèi)推,,當(dāng)兩個(gè)分區(qū)執(zhí)行時(shí)間完全不重疊時(shí),給定時(shí)間內(nèi)只有一個(gè)分區(qū)運(yùn)行不會(huì)受其他分區(qū)影響,,所以此時(shí)分區(qū)之間的相關(guān)系數(shù)為0,。
 

    經(jīng)過(guò)上述兩個(gè)對(duì)比實(shí)驗(yàn)可以得到以下兩點(diǎn)結(jié)論,首先,,多核處理器由于在硬件上處理器之間需要共享Cache,,并發(fā)運(yùn)行的分區(qū)會(huì)對(duì)共享Cache爭(zhēng)用,從而影響其他分區(qū)的運(yùn)行結(jié)果,。此種情況由硬件結(jié)構(gòu)決定,,軟件可做工作很少。其次,,多核分區(qū)系統(tǒng)在內(nèi)核中保護(hù)臨界資源的鎖開(kāi)銷(xiāo)會(huì)影響分區(qū)運(yùn)行的性能,。為了避免此種性能損失,系統(tǒng)在安排分區(qū)時(shí)可以進(jìn)行優(yōu)化,,將相關(guān)性不高的分區(qū)安排在同時(shí)運(yùn)行,,避免高相關(guān)性分區(qū)同時(shí)運(yùn)行,從而降低對(duì)臨界資源的爭(zhēng)用,,提升系統(tǒng)性能,。
參考文獻(xiàn)
[1] Airlines electronic engineering committee(AEEC).Avionics application software standard interface(ARINC specification 653-1)[S].ARINC, Inc., 2003.
[2] RUSHBY J.Partitioning in avionics architectures:requirements, mechanisms and assurance[R]. Technical Report NASA  CR-1999-209347,SRI International,,California,,USA,1999.
[3] POWELL M L, KLEIMAN S R, BARTON S, et al. SunOS  multi-thread architecture[A]. USENIX Winter Conference[C], 1991.
[4] KEPECS J. Lightweight processes for UNIX implementation and applications[A]. USENIX Summer Conference[C]. 1985:299-308.
[5] BLACK R, FLETCHER M. Next generation space avionics: a highly reliable layered system implementation[A]. IEEE, 2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。