當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]改進(jìn)Minix 3進(jìn)程間通信

1、引言

        早期的操作系統(tǒng)都是基于宏內(nèi)核的思想實現(xiàn)的[5],例如UNIX、Linux、Solaris等。設(shè)計者將進(jìn)程管理、文件系統(tǒng)、設(shè)備驅(qū)動程序、存儲管理等功能全部放在內(nèi)核中完成。隨著技術(shù)的發(fā)展,操作系統(tǒng)性能不斷的提升的同時,也帶來了大量的錯誤[1]。把所有這些功能都放在具有最高特權(quán)級的內(nèi)核中使得內(nèi)核變得異常龐大,可靠性、安全性下降,可擴(kuò)展性也變的十分困難[3]。因此,微內(nèi)核的思想被提出。

        微內(nèi)核只提供基本的操作系統(tǒng)功能服務(wù),采用了機(jī)制與策略分離的設(shè)計思想,相關(guān)的驅(qū)動與一些服務(wù)被移出內(nèi)核,策略則由用戶層來實現(xiàn),使得系統(tǒng)中各進(jìn)程相對獨立,互不干擾[4],提高了系統(tǒng)的安全性,可靠性。但是,這種思想的實現(xiàn)對性能方面卻產(chǎn)生了一些影響。在微內(nèi)核中,困擾性能的兩大因素主要是進(jìn)程間通信以及任務(wù)切換。

        相比較宏內(nèi)核而言,微內(nèi)核將大部分實現(xiàn)操作系統(tǒng)功能的服務(wù)移出了內(nèi)核,內(nèi)核僅僅實現(xiàn)不可避免的機(jī)制。這使得內(nèi)核成了服務(wù)的中轉(zhuǎn)站,因此加大了信息處理的開銷,客戶進(jìn)程與服務(wù)進(jìn)程間的通信多了道門檻,地址空間的切換也急劇增加。

        隨著技術(shù)的發(fā)展,微內(nèi)核技術(shù)已發(fā)展到第二代。Minix 3[3]就是第二代微內(nèi)核的典型代表。在保持著性能的最小損失的同時,實現(xiàn)了高可靠性與高穩(wěn)定性。

2、對Minix 3改進(jìn)

2.1 Minix 3存在的缺陷

        Minix最初是由Tanenbaum教授為了教學(xué)而寫的一個操作系統(tǒng),發(fā)展到現(xiàn)在已經(jīng)是第三代,它采用微內(nèi)核模式,由服務(wù)器和驅(qū)動程序等進(jìn)程模塊和內(nèi)核組成,大大提高了操作系統(tǒng)的可靠性[3]。

        由于Minix 3采用了第二代微內(nèi)核技術(shù),用戶進(jìn)程及服務(wù)器進(jìn)程和驅(qū)動進(jìn)程都擁有自己的地址空間,它們之間相互獨立且相互不可見。為了能夠進(jìn)行進(jìn)程間通信,內(nèi)核成了服務(wù)的中轉(zhuǎn)站,因為只有內(nèi)核才進(jìn)入各進(jìn)程的地址空間中。經(jīng)過代碼的閱讀,我們認(rèn)為:Minix 3的編寫者為了提高效率,實現(xiàn)簡單,僅僅使用了分段機(jī)制。這直接導(dǎo)致了Minix3存在以下的缺陷:

  1. 分段機(jī)制并不能充分利用物理內(nèi)存。將導(dǎo)致物理內(nèi)存存在大量的浪費。

  2. 微內(nèi)核必須緊緊結(jié)合硬件結(jié)構(gòu),這是為了能夠提升微內(nèi)核的性能,而支持分段結(jié)構(gòu)的CPU僅僅是Intel的IA32系列,這就大大將局限Minix3在別的CPU體系的發(fā)展。

  3. 采用分段機(jī)制,并沒有真正實現(xiàn)將各進(jìn)程的地址空間相隔離。如果采用分頁機(jī)制與虛擬內(nèi)存,將使得每個用戶進(jìn)程,服務(wù)器進(jìn)程與驅(qū)動進(jìn)程真正的相隔離,每個進(jìn)程都有自己的地址空間,更加符合微內(nèi)核操作系統(tǒng)的設(shè)計思想。

        Minix3中為了使得內(nèi)核能夠進(jìn)入所有進(jìn)程的地址空間而沒有采用分頁機(jī)制,僅僅使用了分段機(jī)制,這對系統(tǒng)的可靠性和穩(wěn)定性帶來了一定的隱患,并且沒有分頁機(jī)制的操作系統(tǒng)也不是一種好的設(shè)計體系,并不能有效的使用物理內(nèi)存。所以必須對Minix 3進(jìn)行改進(jìn),引入分頁機(jī)制。

        高性能和高靈活性的要求決定微內(nèi)核必須盡可能縮到最小,這就將大量的服務(wù)放到了內(nèi)核之外,服務(wù)進(jìn)程與用戶進(jìn)程、內(nèi)核之間將產(chǎn)生大量的進(jìn)程間通信和任務(wù)切換,這是導(dǎo)致微內(nèi)核性能降低的主要因素。而采用分頁機(jī)制后,由于引進(jìn)了頁目錄和頁表,這必將導(dǎo)致內(nèi)核的性能進(jìn)一步下降。其次,Minix 3對分段機(jī)制下的進(jìn)程間通信采取了一定的優(yōu)化,但這些優(yōu)化并不適用于分頁機(jī)制中。因此,必須在分頁機(jī)制下對進(jìn)程間通信加以優(yōu)化,提高操作系統(tǒng)的效率。

2.2 內(nèi)存快速映射技術(shù)

        Minix 3的進(jìn)程間的通信采用了聚合的方式(rendzvous),使用固定大小的消息通信(見圖1)。因此,Minix 3中的進(jìn)程間通信完全通過消息完成。用戶進(jìn)程也用這種方式與操作系統(tǒng)組件進(jìn)行通信。聚合原則使得消息的傳遞不用任何中間緩沖。


 
        每個進(jìn)程都有自己的地址空間,進(jìn)程之間相互不能看見另外進(jìn)程的地址空間,這就大大提高了系統(tǒng)的安全性和可靠性。然而,在進(jìn)程間通信時,需要將A進(jìn)程的消息傳遞給B進(jìn)程時就出現(xiàn)了問題。在Minix 3中,由于采用的是分段機(jī)制,內(nèi)核地址空間分布在物理內(nèi)存中的不同的邏輯段中,通過內(nèi)核,可以將A進(jìn)程的消息一次直接復(fù)制到B進(jìn)程中去。不需要在內(nèi)核中設(shè)置消息緩沖。

        在采用了分頁機(jī)制后,也可以通過類似的方法復(fù)制消息,內(nèi)核將進(jìn)程A中的消息復(fù)制到內(nèi)核共有的共享消息緩沖區(qū)中,在將消息復(fù)制給進(jìn)程B。這樣就實現(xiàn)了消息的傳遞。即用戶進(jìn)程A的地址空間→內(nèi)核地址空間→用戶進(jìn)程B的地址空間,由于內(nèi)核可以根據(jù)各進(jìn)程的頁目錄和頁表看到所有進(jìn)程的地址空間,所以這種方法是可行的(見圖2)。也只有通過內(nèi)核,才能使消息在不同的地址空間內(nèi)傳遞。 [!--empirenews.page--]

        但是通過內(nèi)核緩沖的方法降低了系統(tǒng)的性能。首先內(nèi)核必須在內(nèi)核空間開辟公用的消息緩沖,在很多進(jìn)程都需要消息傳遞時,緩沖區(qū)將出現(xiàn)溢出情況,并且不同進(jìn)程改變緩沖區(qū)的消息時,使得進(jìn)程地址空間相互獨立的設(shè)計思想被變相的破壞了,進(jìn)程可以通過改變緩沖區(qū)中的消息來實現(xiàn)改變其他進(jìn)程地址空間的內(nèi)容,這使得微內(nèi)核Minix 3原本的高可靠性和高安全性設(shè)計思想被破壞。其次,消息必須被復(fù)制兩次,這兩次數(shù)據(jù)拷貝可能耗時很大,拷貝消息n字節(jié)的消息必須消耗20+0.75n次CPU指令周期[2],并且還會導(dǎo)致TLB和cache的未命中。

        在這里我們提出一種新的設(shè)計思路。內(nèi)核通過將進(jìn)程A地址空間中的消息映射給B通過這種快速映射來實現(xiàn)消息的傳遞(見圖3)。在映射過程為了防止進(jìn)程B對進(jìn)程A中的該頁面進(jìn)行修改而產(chǎn)生的不可靠性,在映射過程中采用了寫時拷貝技術(shù)。資源的復(fù)制是在進(jìn)程B需要寫入時才會進(jìn)行,在此之前,頁面以只讀方式共享。它將地址空間上的頁的拷貝被推遲到實際發(fā)生寫入的時候。

        這種方法避免了在內(nèi)核中設(shè)置消息緩沖,這也符合了是Minix 3在消息傳遞采用的聚合原則。

        Intel系列CPU的MMU可以采用兩級頁表,第一級為頁目錄,大小為4KB,存儲在物理頁中,每個表項4字節(jié)長,共1024個表項。每個表項對應(yīng)第二級的一個頁表,第二級的每一個頁表也有1024個表項,每個表項對應(yīng)一個物理頁。由于Minix 3采用了固定大小的消息通信,消息的大小隨機(jī)器的體系結(jié)構(gòu)的不同會有所不同,但消息大小肯定是在頁面大小以內(nèi)的。因此,一次消息的映射只需要復(fù)制一個頁表,即4字節(jié)而已(見圖4)。這種方法對于消息傳遞所付出的代價是可以忽略的。

3、實驗及結(jié)果分析

        測試所使用的機(jī)器配置是:CPU:Intel Celeron 1.7GHZ;Cache:256K;內(nèi)存:1G。
我們讓改進(jìn)后的Minix 3的測試進(jìn)程重復(fù)執(zhí)行系統(tǒng)調(diào)用,以此來達(dá)到頻繁切換地址空間與進(jìn)程間通信的目的。例如getpid系統(tǒng)調(diào)用就是一個用戶進(jìn)程到進(jìn)程管理器的一次進(jìn)程通信。測試結(jié)果如表1。
 
 
        可以看到,在加入分頁機(jī)制,對進(jìn)程間通信和地址空間的切換進(jìn)行改進(jìn)后,性能的犧牲僅僅是5-10%左右,但在保證Minix 3原有的穩(wěn)定性與可靠性的基礎(chǔ)上,再次提高了穩(wěn)定性和可靠性,這是非常值得的。

4、結(jié)論

        微內(nèi)核中困擾性能的兩大因素主要是進(jìn)程間通信以及任務(wù)切換。除了對進(jìn)程通信做出改進(jìn)以外,也需要對任務(wù)切換進(jìn)行優(yōu)化。大量的任務(wù)切換直接導(dǎo)致了地址空間的轉(zhuǎn)換,而地址空間的切換必然伴隨著TLB的刷新,隨著TLB容量的增加,TLB的刷新也為地址空間切換的帶來了很大的開銷,可以設(shè)計一種能有效避免TLB刷新的方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉