微核心作業系統
目錄
-
1.微核心作業系統的基本概念
- 1) 足夠小的核心
- 2) 基於客戶/伺服器模式
- 3) 應用“機制與策略分離”原理
- 4) 採用物件導向技術
-
2.微核心的準系統
- 1) 進程(線程)管理
- 2) 低級儲存空間管理
- 3) 中斷和陷入處理
-
3.微核心作業系統的優點
- 1) 提高了系統的可擴充性
- 2) 增強了系統的可靠性
- 3) 可移植性
- 4) 提供了對分布式系統的支援
- 5) 融入了物件導向技術
-
4.微核心作業系統存在的問題
-
1.微核心作業系統的基本概念
- 1) 足夠小的核心
- 2) 基於客戶/伺服器模式
- 3) 應用“機制與策略分離”原理
- 4) 採用物件導向技術
-
2.微核心的準系統
- 1) 進程(線程)管理
- 2) 低級儲存空間管理
- 3) 中斷和陷入處理
-
3.微核心作業系統的優點
- 1) 提高了系統的可擴充性
- 2) 增強了系統的可靠性
- 3) 可移植性
- 4) 提供了對分布式系統的支援
- 5) 融入了物件導向技術
-
4.微核心作業系統存在的問題
展開
微核心作業系統(Microkernel Operating System)結構,是20世紀80年代後期發展起來的。由於它能有效地支援多處理機運行,故非常適用於分布式系統內容。當前比較流行的、能支援多處理機啟動並執行作業系統,幾乎全部都採用了微核心結構,如卡耐基梅隆大學研製的Mach OS,便屬於微核心結構作業系統;又如當前廣泛使用的Windows作業系統,也採用了微核心結構。
編輯本段
1.微核心作業系統的基本概念
為了提高作業系統的“正確性”、“靈活性”、“易維護性”和”可擴充性”,在進行現代作業系統結構設計時,即使在單處理機環境下,大多也採用基於客戶/伺服器模式(即C/S模式)的微核心結構,將作業系統劃分為兩大部分:微核心和多個伺服器。至於什麼是微核心作業系統結構,現在尚無一致公認的定義,但我們可以從下面四個方面,對微核心結構的作業系統進行描述。
1) 足夠小的核心
在微核心作業系統中,核心是指精心設計的、能實現現代OS最基本的核心功能的部分。微核心並非是一個完整的OS,而只是作業系統中最基本的部分,它通常用於:
① 實現與硬體緊密相關的處理;
② 實現一些較基本的功能;
③ 負責客戶和伺服器之間的通訊。
它們只是為構建通用OS提供一個重要基礎,這樣就可以確保把作業系統核心做得很小。
2) 基於客戶/伺服器模式
由於客戶/伺服器(Client/Server)模式,具有非常多的優點,故在單機微核心作業系統中幾乎無一例外地都採用客戶/伺服器模式,將作業系統中最基本的部分放入核心中,而把作業系統的絕大部分功能都放在微核心外面的一組伺服器(進程)中實現。例如用於提供對進程(線程)進行管理的進程(線程)伺服器,提供虛擬儲存空間管理功能的虛擬儲存空間伺服器,提供I/O裝置管理的I/O裝置管理伺服器等,它們都是被作為進程來實現的,運行在使用者態,客戶與伺服器之間是藉助微核心提供的訊息傳遞機制來實現資訊互動的。
3) 應用“機制與策略分離”原理
在現代作業系統的結構設計中,經常利用“機制與策略分離”的原理來構造OS結構。所謂機制,是指實現某一功能的具體執行機構。而策略,則是在機制的基礎上,藉助於某些參數和演算法來實現該功能的最佳化,或達到不同的功能目標。通常,機制處於一個系統的基層,而策略則處於系統的高層。在傳統的OS中,將機制放在OS的核心的較低層,把策略放在核心的較高層次中。而在微核心作業系統中,通常將機制放在OS的微核心中。正因為如此,才有可能將核心做得很小。
4) 採用物件導向技術
作業系統是一個極其複雜的大型軟體系統,我們不僅可以通過結構設計來分解作業系統的複雜度,還可以基於物件導向技術中的“抽象”和“隱蔽”原則控制系統的複雜性,再進一步利用“對象”、“封裝”和“繼承”等概念來確保作業系統的“正確性”、“可靠性”、“易修改性”、“易擴充性”等,並提高作業系統的設計速度。正因為物件導向技術能帶來如此多的好處,故物件導向技術被廣泛應用於現代作業系統的設計中。
編輯本段
2.微核心的準系統1) 進程(線程)管理
大多數的微核心OS,對於進程管理功能的實現,都採用“機制與策略分離”的原理。例如,為實現進程(線程)調度功能,須在進程管理中設定一個或多個進程(線程)優先順序隊列;能將指定優先順序進程(線程)從所在隊列中取出,並將其投入執行。由於這一部分屬於調度功能的機制部分,應將它放入微核心中。應如何確定每類使用者(進程)的優先順序,以及應如何修改它們的優先順序等,都屬於策略問題,可將它們放入微核心外的進程(線程)管理伺服器中。
2) 低級儲存空間管理
通常在微核心中,只配置最基本的低級儲存空間管理機制。如用於實現將使用者空間的邏輯地址變換為記憶體空間的物理地址的頁表機制和地址變換機制,這一部分是依賴於機器的,因此放入微核心。而實現虛擬儲存空間管理的策略,則包含應採取何種頁面置換演算法,採用何種記憶體配置與回收策略等,應將這部分放在微核心外的儲存空間管理伺服器中去實現。
3) 中斷和陷入處理
大多數微核心作業系統都是將與硬體緊密相關的一小部分放入微核心中處理。此時微核心的主要功能,是捕獲所發生的中斷和陷入事件,並進行相應的前期處理。如進行中斷現場保護,識別中斷和陷入的類型,然後將有關事件的資訊轉換成訊息後,把它發送給相關的伺服器。由伺服器根據中斷或陷入的類型,調用相應的處理常式來進行後期處理。
在微核心OS中是將進程管理、儲存空間管理以及I/O管理這些功能一分為二,屬於機制的很小一部分放入微核心中,另外絕大部分放在微核心外的各種伺服器中來實現。事實上,其中大多數伺服器都比微核心大。這進一步說明了為什麼能在採用客戶/伺服器模式後,還能把微核心做得很小的原因。
編輯本段
3.微核心作業系統的優點1) 提高了系統的可擴充性
由於微核心OS的許多功能是由相對獨立的伺服器軟體來實現的,當開發了新的硬體和軟體時,微核心OS只須在相應的伺服器中增加新的功能,或再增加一個專門的伺服器。與此同時,也必然改善系統的靈活性,不僅可在作業系統中增加新的功能,還可修改原有功能,以及刪除已淘汰的功能,以形成一個更為精幹有效作業系統。
2) 增強了系統的可靠性
這一方面是由於微核心是出於精心設計和嚴格測試的,容易保證其正確性;另一方面是它提供了規範而精簡的應用程式介面(API),為微核心外部的程式編製高品質的代碼創造了條件。此外,由於所有伺服器都是運行在使用者態,伺服器與伺服器之間採用的是訊息傳遞通訊機制,因此,當某個伺服器出現錯誤時,不會影響核心,也不會影響其它伺服器。
3) 可移植性
隨著硬體的快速發展,出現了各種各樣的硬體平台,作為一個好的作業系統,必須具備可移植性,使其能較容易地運行在不同的電腦硬體平台上。在微核心結構的作業系統中,所有與特定CPU和I/O裝置硬體有關的代碼,均放在核心和核心下面的硬體隱藏層中,而作業系統其它絕大部分(即各種伺服器)均與硬體平台無關,因而,把作業系統移植到另一個電腦硬體平台上所需作的修改是比較小的。
4) 提供了對分布式系統的支援
由於在微核心OS中,客戶和伺服器之間以及伺服器和伺服器之間的通訊,是採用訊息傳遞通訊機制進行的,致使微核心OS能很好地支援分布式系統和網路系統。事實上,只要在分布式系統中賦予所有進程和伺服器惟一的標識符,在微核心中再配置一張系統映射表(即進程和伺服器的標識符與它們所駐留的機器之間的對應表),在進行客戶與伺服器通訊時,只需在所發送的訊息中標上發送進程和接收進程的標識符,微核心便可利用系統映射表,將訊息發往目標,而無論目標是駐留在哪台機器上。
5) 融入了物件導向技術
在設計微核心OS時,採用了物件導向的技術,其中的“封裝”,“繼承”,“對象類”和“多態性”,以及在對象之間採用訊息傳遞機制等,都十分有利於提高系統的“正確性”、“可靠性”、“易修改性”、“易擴充性”等,而且還能顯著地減少開發系統所付出的開銷。
編輯本段
4.微核心作業系統存在的問題
應當指出,在微核心OS中,由於採用了非常小的核心,以及客戶/伺服器模式和訊息傳遞機制,這些雖給微核心OS帶來了許多優點,但由此也使微核心OS存在著潛在的缺點。其中最主要的是,較之早期OS,微核心OS的運行效率有所降低。
效率降低的最主要的原因是,在完成一次客戶對OS提出的服務要求時,需要利用訊息實現多次互動和進行使用者/核心模式及內容相關的多次切換。然而,在早期的OS中,使用者進程在請求取得OS服務時,一般只需進行兩次內容相關的切換:一次是在執行系統調用後,由使用者態轉向系統態時;另一次是在系統完成使用者請求的服務後,由系統態返回使用者態時。在微核心OS中,由於客戶和伺服器及伺服器和伺服器之間的通訊,都需通過微核心,致使同樣的服務要求至少需要進行四次環境切換。第一次是發生在客戶發送請求訊息給核心,以請求取得某伺服器特定的服務時;第二次是發生在由核心把客戶的請求訊息發往伺服器時;第三次是當伺服器完成客戶請求後,把響應訊息發送到核心時;第四次是在核心將響應訊息發送給客戶時。
實際情況是往往還會引起更多的環境切換。例如,當某個伺服器自身尚無能力完成客戶請求,而需要其它伺服器的協助時,其中的檔案伺服器還需要磁碟伺服器的協助,這時就需要進行八次內容相關的切換。[1]
-
參考資料
-
- 1
《電腦作業系統》(第三版)西安電子科技大學出版社