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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 通用計(jì)算機(jī)操作系統(tǒng)典型體系結(jié)構(gòu)綜述

          通用計(jì)算機(jī)操作系統(tǒng)典型體系結(jié)構(gòu)綜述

          作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:隨著操作系統(tǒng)應(yīng)用領(lǐng)域的擴(kuò)大,以及操作系統(tǒng)硬件平臺(tái)的多樣化,操作系統(tǒng)的體系結(jié)構(gòu)和開(kāi)發(fā)方式都在不斷更新,目前通用機(jī)上常見(jiàn)操作系統(tǒng)的體系結(jié)構(gòu)有如下幾種:模塊組合結(jié)構(gòu)、層次結(jié)構(gòu)、虛擬機(jī)結(jié)構(gòu)和微內(nèi)核結(jié)構(gòu)。

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

          關(guān)鍵詞:操作系統(tǒng);體系結(jié)構(gòu)

          一、模塊組合結(jié)構(gòu)

          模塊組合結(jié)構(gòu)是在軟件工程出現(xiàn)以前的早期操作系統(tǒng)以及目前一些小型操作系統(tǒng)最常用的組織方式。

          操作系統(tǒng)剛開(kāi)始發(fā)展時(shí)是以建立一個(gè)簡(jiǎn)單的小系統(tǒng)為目標(biāo)來(lái)實(shí)現(xiàn)的,但是為了滿足其他需求又陸續(xù)加入一些新的功能,其結(jié)構(gòu)漸漸變得復(fù)雜而無(wú)法掌握。以前我們使用的MS-DOS就是這種結(jié)構(gòu)最的例子。這種操作系統(tǒng)是一個(gè)有多種功能的系統(tǒng)程序,也可以看成是一個(gè)大的可執(zhí)行體,即整個(gè)操作系統(tǒng)是一些過(guò)程的集合。系統(tǒng)中的每一個(gè)過(guò)程模塊根據(jù)它們要完成的功能進(jìn)行劃分,然后按照一定的結(jié)構(gòu)方式組合起來(lái),協(xié)同完成整個(gè)系統(tǒng)的功能。如圖1所示:

          在模塊組合結(jié)構(gòu)中,沒(méi)有一致的系統(tǒng)調(diào)用界面,模塊之間通過(guò)對(duì)外提供的接口傳遞信息,模塊內(nèi)部實(shí)現(xiàn)隱藏的程序單元,使其對(duì)其它過(guò)程模塊來(lái)說(shuō)是透明的。但是,隨著功能的增加,模塊組合結(jié)構(gòu)變得越來(lái)越復(fù)雜而難以控制,模塊間不加控制地相互調(diào)用和轉(zhuǎn)移,以及信息傳遞方式的隨意性,使系統(tǒng)存在一定隱患。

          二、層次結(jié)構(gòu)

          為了彌補(bǔ)模塊組合結(jié)構(gòu)中模塊間調(diào)用存在的固有不足之處,就必須減少模塊間毫無(wú)規(guī)則的相互調(diào)用、相互依賴的關(guān)系,尤其要清除模塊間的循環(huán)調(diào)用。從這一點(diǎn)出發(fā),層次結(jié)構(gòu)的設(shè)計(jì)采用了高層建筑結(jié)構(gòu)的理念,將操作系統(tǒng)或軟件系統(tǒng)中的全部構(gòu)成模塊進(jìn)行分類:將基礎(chǔ)的模塊放在基層(或稱底層、一層),在此基礎(chǔ)上,再將某些模塊放在二層,二層的模塊在基礎(chǔ)模塊提供的環(huán)境中工作;它只能調(diào)用基層的模塊為其工作,反之不行。嚴(yán)格的層次結(jié)構(gòu),第N+l層只能在N層模塊提供的基礎(chǔ)上建立,只能在N層提供的環(huán)境中工作,也只能向N層的模塊發(fā)調(diào)用請(qǐng)求。

          在采用層次結(jié)構(gòu)的操作系統(tǒng)中,各個(gè)模塊都有相對(duì)固定的位置、相對(duì)固定的層次。處在同一層次的各模塊,其相對(duì)位置的概念可以不非常明確。處于不同層次的各模塊,一般而言,不可以互相交換位置,只存在單向調(diào)用和單向依賴。Unix/Linux系統(tǒng)采用的就是這種體系結(jié)構(gòu)。如圖2:

          在層次結(jié)構(gòu)中,強(qiáng)調(diào)的是系統(tǒng)中各組成部分所處的位置,但是想要讓系統(tǒng)正常運(yùn)作,不得不協(xié)調(diào)兩種關(guān)系,即依賴關(guān)系和調(diào)用關(guān)系。

          依賴關(guān)系是指處于上層(或外層)的軟件成分依賴下層軟件的存在、依賴下層軟件的運(yùn)行而運(yùn)行。例如,瀏覽器這部分軟件就依賴GUI的存在和運(yùn)行,GUI又依賴操作系統(tǒng)的存在和運(yùn)行。在操作系統(tǒng)內(nèi)部,外圍部分依賴內(nèi)核的存在而存在,依賴內(nèi)核的運(yùn)行而運(yùn)行,內(nèi)核又依賴HAL而運(yùn)行。處在同層之內(nèi)的軟件成分可以是相對(duì)獨(dú)立的,相互之間一般不存在相互依賴關(guān)系。

          三、虛擬機(jī)結(jié)構(gòu)

          虛擬機(jī)的基本思想是系統(tǒng)能提供兩個(gè)功能:①多道程序處理能力;②提供一個(gè)比裸機(jī)有更方便擴(kuò)展界面的計(jì)算機(jī)。操作系統(tǒng)是覆蓋在硬件裸機(jī)上的一層軟件,它通過(guò)系統(tǒng)調(diào)用向位于它之上的用戶應(yīng)用程序服務(wù)。從應(yīng)用程序的角度看來(lái),操作系統(tǒng)像是一臺(tái)“計(jì)算書(shū)”,只不過(guò)它的功能比硬件裸機(jī)更強(qiáng),它的指令系統(tǒng)是系統(tǒng)調(diào)用集而己。因此,從概念上來(lái)講,操作系統(tǒng)是“虛擬機(jī)”。這是“虛擬機(jī)”概念的來(lái)源。利用CPU調(diào)度以及虛擬內(nèi)存技術(shù),操作系統(tǒng)可以給運(yùn)行于系統(tǒng)中的進(jìn)程以假象:好像進(jìn)程擁有自己的CPU和存儲(chǔ)器,如同系統(tǒng)中只有一個(gè)進(jìn)程,系統(tǒng)所有資源都為它服務(wù)。從這個(gè)角度來(lái)講,操作系統(tǒng)為每一個(gè)進(jìn)程創(chuàng)建了一個(gè)使該進(jìn)程獨(dú)立運(yùn)行于其中的“虛擬機(jī)”,在這個(gè)“虛擬機(jī)”中,進(jìn)程擁有自己的“CPU”和“存儲(chǔ)器”,同時(shí)進(jìn)程還得到了硬件所無(wú)法提供的文件系統(tǒng)功能。虛擬機(jī)操作系統(tǒng)就是根據(jù)這一想法而產(chǎn)生的。

          虛擬機(jī)操作系統(tǒng)不提供傳統(tǒng)操作系統(tǒng)中的文件系統(tǒng)的功能。最初的虛擬機(jī)僅僅為進(jìn)程提供一個(gè)訪問(wèn)底層的接口,它通過(guò)對(duì)硬件的復(fù)用提供給每一個(gè)進(jìn)程以硬件的一個(gè)拷貝,因此能夠直接的運(yùn)行在硬件上的程序都可以直接運(yùn)行在虛擬機(jī)之上。后來(lái)出現(xiàn)了另外三種體系結(jié)構(gòu)的虛擬機(jī):由機(jī)器虛擬指令映射構(gòu)成的虛擬機(jī)。

          虛擬機(jī)操作系統(tǒng)并沒(méi)有提供一個(gè)供應(yīng)用程序直接運(yùn)行的現(xiàn)成環(huán)境,它僅僅是對(duì)硬件進(jìn)行(分時(shí))復(fù)用從而得到硬件的多個(gè)拷貝,應(yīng)用程序不可以直接運(yùn)行在硬件之上,因此它也無(wú)法運(yùn)行在虛擬機(jī)操作系統(tǒng)之上。通常的情況是,普通的操作運(yùn)行在虛擬機(jī)之上。而應(yīng)用程序運(yùn)行在各自的操作系統(tǒng)之上,由于虛擬機(jī)操作系統(tǒng)是通過(guò)(分時(shí))復(fù)用硬件資源同時(shí)提供多臺(tái)虛擬機(jī),因此同時(shí)可以有多個(gè)不同的操作系統(tǒng)運(yùn)行在同一物理硬件機(jī)器之上,因此可以有多個(gè)不同操作系統(tǒng)的應(yīng)用程序可以同時(shí)運(yùn)行在同一臺(tái)物理硬件機(jī)器之上。

          雖然虛擬機(jī)操作系統(tǒng)有著誘人的特性,但是最突出的一個(gè)問(wèn)題是實(shí)現(xiàn)比較困難。如果要實(shí)現(xiàn)的是底層硬件的完全拷貝,也即它要模擬硬件幾乎所有的特性,那將是相當(dāng)困難的一件事情。因此現(xiàn)代許多商業(yè)虛擬機(jī)采用映射部分指令結(jié)合直接調(diào)用宿主操作系統(tǒng)功能的方法,但這樣必然會(huì)導(dǎo)致虛擬機(jī)性能的損失,所以虛擬機(jī)操作系統(tǒng)在業(yè)界是屬于非主流的,但是在學(xué)術(shù)界有著重要意義,因?yàn)樗茄芯坎僮飨到y(tǒng)技術(shù)的理想平臺(tái)。

          四、微內(nèi)核結(jié)構(gòu)

          操作系統(tǒng)研究領(lǐng)域最近十幾年突出的成就應(yīng)該是微內(nèi)核技術(shù)。微內(nèi)核的研究動(dòng)機(jī)是為克服已有的操作系統(tǒng)內(nèi)核由于功能的增加而逐漸變大的缺點(diǎn)。圖3所示:

          微內(nèi)核體系結(jié)構(gòu)的基本思想是把操作系統(tǒng)中與硬件直接相關(guān)的部分抽取出來(lái)作為一個(gè)公共層,稱之為硬件抽象層(HAL)。這個(gè)硬件抽象層其實(shí)就是一種虛擬機(jī),它向所有基于該層的其它層通過(guò)API接口提供一系列標(biāo)準(zhǔn)服務(wù)。在微內(nèi)核中只保留了處理機(jī)調(diào)度、存儲(chǔ)管理和消息通訊等少數(shù)幾個(gè)組成部分,將傳統(tǒng)操作系統(tǒng)內(nèi)核中的一些組成部分放到內(nèi)核之外來(lái)實(shí)現(xiàn)。如傳統(tǒng)操作系統(tǒng)中的文件管理系統(tǒng)、進(jìn)程管理、設(shè)備管理、虛擬內(nèi)存和網(wǎng)絡(luò)等內(nèi)核功能都放在內(nèi)核外作為一個(gè)獨(dú)立的子系統(tǒng)來(lái)實(shí)現(xiàn)。因此,操作系統(tǒng)的大部分代碼只要在一種統(tǒng)一的硬件體系結(jié)構(gòu)上進(jìn)行設(shè)計(jì)就可以了。

          微內(nèi)核體系結(jié)構(gòu)的主要特點(diǎn)有:①內(nèi)核非常小。②許多操作系統(tǒng)服務(wù)不屬于內(nèi)核,而是運(yùn)行在內(nèi)核之上的,這樣,當(dāng)高層模塊更新時(shí)內(nèi)核無(wú)須重新編譯。③有一個(gè)硬件抽象層,內(nèi)核能方便地移植到其它的硬件體系結(jié)構(gòu)中。因?yàn)楫?dāng)需要移植到新的軟件或硬件環(huán)境中時(shí),只需對(duì)與硬件相關(guān)的部分稍加修改即可把微內(nèi)核嵌入到新的硬件環(huán)境中,在多數(shù)情況下并不需要移植外部服務(wù)器或客戶應(yīng)用。④靈活性和擴(kuò)展性.微內(nèi)核最大的優(yōu)點(diǎn)之一就是它的靈活性和擴(kuò)展性。如果要實(shí)現(xiàn)另一個(gè)視圖,可以增加一個(gè)外部服務(wù)器。若要想擴(kuò)展功能,可以增加和擴(kuò)展內(nèi)部服務(wù)器。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();