操作系統(tǒng)常見體系結(jié)構(gòu)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
簡(jiǎn)單體系結(jié)構(gòu)計(jì)算機(jī)操作系統(tǒng)誕生初期,其體系結(jié)構(gòu)就屬于簡(jiǎn)單體系結(jié)構(gòu),由于當(dāng)時(shí)各式各樣影響因素的作用,如硬件性能、平臺(tái)、軟件水平等方面的限制,使得當(dāng)時(shí)的計(jì)算機(jī)操作系統(tǒng)結(jié)構(gòu)呈現(xiàn)出一種混亂且結(jié)構(gòu)模糊的狀態(tài),其操作系統(tǒng)的用戶應(yīng)用程序和其內(nèi)核程序魚龍混雜,甚至其運(yùn)行的地址和空間都是一致的。這種操作系統(tǒng)實(shí)際上就是一系列過程和項(xiàng)目的簡(jiǎn)單組合,使用的模塊方法也相對(duì)較為粗糙,因此導(dǎo)致其結(jié)構(gòu)宏觀上非常模糊。
單體內(nèi)核結(jié)構(gòu)隨著科學(xué)技術(shù)的不斷發(fā)展和進(jìn)步,硬件及其平臺(tái)的水平和性能得到了很大程度的提高,其數(shù)量和種類也與日俱增,操作系統(tǒng)的復(fù)雜性也逐漸加深,其具備的功能以及性能越來越多,在此背景下,單體內(nèi)核結(jié)構(gòu)的操作系統(tǒng)誕生并得到了應(yīng)用,例如UNIX操作系統(tǒng)、windows NT/XP等。一般情況下,單體內(nèi)核結(jié)構(gòu)的操作系統(tǒng)主要具備以下幾種功能,分別是文件及內(nèi)存管理、設(shè)備驅(qū)動(dòng)、CPU調(diào)度以及網(wǎng)絡(luò)協(xié)議處理等。由于內(nèi)核的復(fù)雜性不斷加深,相關(guān)的開發(fā)設(shè)計(jì)人員為了實(shí)現(xiàn)對(duì)其良好的控制,逐漸開始使用了一些較為成熟的模塊化方法,并根據(jù)其不同的功能將其進(jìn)行結(jié)構(gòu)化,進(jìn)而將其劃分為諸多的模塊,例如文件及內(nèi)存管理模塊、驅(qū)動(dòng)模塊、CPU調(diào)度模塊及網(wǎng)絡(luò)協(xié)議處理等。這些模塊所使用的地址和空間與內(nèi)核使用的完全一致,其以函數(shù)調(diào)用的方式構(gòu)建了用于通訊的結(jié)構(gòu)來實(shí)現(xiàn)各個(gè)模塊之間的通訊。在使用模塊化的方法以后,只要其通訊接口沒有發(fā)生明顯的變化,即使整個(gè)結(jié)構(gòu)中的任何一個(gè)模塊發(fā)生變化也不會(huì)對(duì)結(jié)構(gòu)中的其他模塊造成任何的影響,為其系統(tǒng)的維護(hù)和改良擴(kuò)充提供了便利。雖然單體內(nèi)核結(jié)構(gòu)的計(jì)算機(jī)操作系統(tǒng)經(jīng)過了模塊化的處理,但是其中的全部模塊仍然是在硬件之上、應(yīng)用軟件之下的操作系統(tǒng)核心中運(yùn)轉(zhuǎn)和工作。模塊與模塊之間活動(dòng)的層次沒有任何的差別。 [1]
層次式結(jié)構(gòu)層次式結(jié)構(gòu)的計(jì)算機(jī)操作系統(tǒng)是為了減少以往操作系統(tǒng)中各個(gè)模塊之間由于聯(lián)系緊密而帶來的各種問題而誕生的,其可以做大程度的減少甚至是避免循環(huán)調(diào)用現(xiàn)象的發(fā)生,確保調(diào)用有序,為操作系統(tǒng)設(shè)計(jì)目標(biāo)的實(shí)現(xiàn)奠定了堅(jiān)實(shí)的基礎(chǔ)。在層次式結(jié)構(gòu)的計(jì)算機(jī)操作系統(tǒng)之中,其是由諸多系統(tǒng)分為若干個(gè)層次的,其最底層是硬件技術(shù),其他每一個(gè)層級(jí)均是建立在其下一層級(jí)之上的。在設(shè)計(jì)其計(jì)算機(jī)操作系統(tǒng)內(nèi)核時(shí),主要采用與抽象數(shù)據(jù)類型十分類似的設(shè)計(jì)方法進(jìn)行的,在系統(tǒng)中的每一個(gè)層級(jí)均包含著多種數(shù)據(jù)和操作,且每一個(gè)的數(shù)據(jù)和操作是其他層不可見的,在每一層當(dāng)中都配備了用于其他層使用的一操作接口,同時(shí)每一層發(fā)生的訪問行為只能針對(duì)其下層進(jìn)行,不能訪問其上層的數(shù)據(jù)和服務(wù),嚴(yán)格遵守了調(diào)用規(guī)則,在很大程度上避免了其他層次對(duì)某一層次的干擾和破壞。對(duì)于理想的層次式計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)來說,其之間的聯(lián)系不僅僅是單向依賴性的,同時(shí)各個(gè)層級(jí)之間也要具備相互的獨(dú)立性,且只能對(duì)低層次的模塊和功能進(jìn)行調(diào)用,例如THE系統(tǒng)。但是這種理想的全序?qū)哟问接?jì)算機(jī)操作系統(tǒng)在現(xiàn)實(shí)中建成是較為困難的,其無法完全避免模塊之間循環(huán)調(diào)用現(xiàn)象的出現(xiàn),某個(gè)層級(jí)之間仍舊存在某種循環(huán)關(guān)系,這種層次式結(jié)構(gòu)又被叫作半序?qū)哟问接?jì)算機(jī)操作系統(tǒng),例如SUE操作系統(tǒng)。 [1]
微內(nèi)核結(jié)構(gòu)微內(nèi)核計(jì)算機(jī)操作系統(tǒng)體系結(jié)構(gòu)又可以被叫作客戶機(jī)結(jié)構(gòu)或者服務(wù)器結(jié)構(gòu),其實(shí)際上就是一種將系統(tǒng)中的代碼轉(zhuǎn)移到更高層次當(dāng)中,盡可能地減少操作系統(tǒng)中的東西,僅僅保留一個(gè)小體積的內(nèi)核,一般情況下其使用的主要方法就是通過用戶進(jìn)程來實(shí)現(xiàn)操作系統(tǒng)所具備的各項(xiàng)功能,具體來說就是用戶進(jìn)程可以將相關(guān)的請(qǐng)求和要求發(fā)送到服務(wù)器當(dāng)中,然后由服務(wù)器完成相關(guān)的操作以后在通過某種渠道反饋到用戶進(jìn)程當(dāng)中。在微內(nèi)核結(jié)構(gòu)中,操作系統(tǒng)的內(nèi)核主要工作就是對(duì)客戶端和服務(wù)器之間的通信進(jìn)行處理,在系統(tǒng)中包括許多部分,每一個(gè)部分均具備某一方面的功能,例如文件服務(wù)、進(jìn)程服務(wù)、終端服務(wù)等,這樣的部分相對(duì)較小,相關(guān)的管理工作也較為便利。這種機(jī)構(gòu)的服務(wù)的運(yùn)行都是以用戶進(jìn)程的形式呈現(xiàn)的,既不在核心中運(yùn)行,也不直接地對(duì)硬件進(jìn)行訪問,這樣一來即使服務(wù)器發(fā)生錯(cuò)誤或受到破壞也不會(huì)對(duì)系統(tǒng)造成影響,僅僅只是會(huì)造成相對(duì)應(yīng)服務(wù)器的崩潰。 [1]
外核結(jié)構(gòu)外核結(jié)構(gòu)的計(jì)算機(jī)操作系統(tǒng)本質(zhì)上就是為了獲得更高的性能和靈活性而設(shè)計(jì)出來的,在系統(tǒng)中,操作系統(tǒng)接口處于硬件層,在內(nèi)核中提出全部由以往操作系統(tǒng)帶來的抽象,并將重點(diǎn)和關(guān)鍵放在了更多硬件資源的復(fù)用方面。在操作系統(tǒng)的外核結(jié)構(gòu)中,內(nèi)核負(fù)責(zé)的主要工作僅僅為簡(jiǎn)單的申請(qǐng)操作以及釋放和復(fù)用硬件資源,其由以往操作系統(tǒng)提供的抽象全部在用戶空間當(dāng)中運(yùn)行。 [1] 一般情況下,外核結(jié)構(gòu)中的內(nèi)核主要有三大方面的工作,分別是對(duì)資源的所有權(quán)進(jìn)行跟蹤、為操作系統(tǒng)的安全提供保護(hù)以及撤銷對(duì)資源的訪問行為。在核外,基本上所有的操作系統(tǒng)中的抽象都是以庫的形式呈現(xiàn)出來的,而用戶在訪問硬件資源時(shí)也是通過庫的調(diào)用來完成的。