<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 改進Minix 3進程間通信

          改進Minix 3進程間通信

          作者: 時間:2009-07-22 來源:網(wǎng)絡(luò) 收藏

          1、引言

          本文引用地址:http://www.ex-cimer.com/article/157963.htm

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

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

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

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

          2、對 3

          2.1 3存在的缺陷

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

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

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

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

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

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

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



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

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: 通信 進程 Minix 改進

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();