張菡
摘 ?要:微內核操作系統結構能有效支持多處理機運行,非常適用于分布式系統環境,本文主要介紹了微內核操作系統的基本概念,重點分析了微內核操作系統主要功能、優點以及存在的問題。
關鍵詞:微內核;面向對象;客戶/服務器;機制與策略分離
一、微內核操作系統的基本概念
在進行現代操作系統結構設計時,即使在單計算機環境下,大多也采用基于客戶/服務器模式的微內核結構,將操作系統分為兩大部分:微內核和多個服務器。至于什么是微內核操作系統結構,尚無一致公認的定義,但可以從以下四個方面對微內核結構OS進行描述。
1. 足夠小的內核
微內核并非是一個完整的OS,而只是將OS中最基本的部分放入微內核,通常包含:與硬件處理緊密相關的部分;一些較基本的功能;客戶和服務器之間的通信。
2. 基于客戶/服務器模式
由于客戶/服務器模式有非常多的優點,故在單機微內核OS中無一例外都采用客戶/服務器模式,將操作系統中最基本的部分放入內核中,把操作系統的絕大部分功能都放在微內核外面的服務器中實現。
3. 應用“機制與策略分離”原理
在OS機構設計中,經常利用“機制與策略分離”原理來構造OS結構。機制處于一個系統的基層,策略處于系統的高層。傳統OS中,將機制放在OS內核的較低層,把策略放在內核的較高層次。而在微內核OS中,將機制放在OS的微內核中。正因如此,才有可能將內核做得很小。
4. 采用面向對象技術
OS是一個極其復雜的大型軟件系統,不僅可以通過結構設計分解OS的復雜度,還可以基于面向對象技術中的 “抽象”和“隱蔽”原則控制系統的復雜性,再利用“對象”、“封裝”和“繼承”等確保OS的“正確性”、“可靠性”、“易修改性”等,并提高OS設計速度。正因為面向對象技術能帶來如此多好處,故面向對象技術被廣泛應用于現代OS設計中。
二、微內核的基本功能
1.進程管理
大多數的微內核OS,對于進程管理功能的實現,都采用“機制與策略分離”原理。對于用戶如何進行分類,以及其優先級的確認方式或原則,都是屬于策略問題。可將它們放入微內核外的進程管理服務器中。
2.低級存儲器管理
在微內核中,只配置最基本的低級存儲器管理機制,如用于實現將用戶空間的邏輯地址變換為內存空間的物理地址的頁表機制和地址變換機制,這一部分是依賴于硬件的,因此放入微內核。實現虛擬存儲器管理的策略,則包含應采取何種頁面置換算法、采用何種內存分配與回收策略等,將這部分放在微內核外的存儲器管理服務器中實現。
3.中斷和陷入處理
大多數微內核OS都是將與硬件緊密相關的一小部分放入微內核中處理,此時微內核的主要功能是捕獲所發生的中斷和陷入事件,并進行相應的前期處理,將有關事件的信息轉換成消息后,把它發送給相關服務器。由于服務器根據中斷或陷入的類型調用相應的處理程序來進行后期處理。
三、微內核OS的優點
1.提高系統的可擴展性。當開發了新的硬件和軟件時,微內核OS只需在相應的服務器中增加新的功能或再增加一個專門的服務器。
2.增強系統的可靠性。一方面是由于微內核是通過精心設計和嚴格測試的,容易保證正確性,另一方面它提供了規范而精簡的應用程序接口,為微內核外部的程序編制高質量的代碼創造條件。
3.可移植性強。在微內核OS中,所有與特定CPU和I/O設備硬件有關的代碼,均放在內核和內核下面的硬件隱藏層中,而OS其他絕大部分均與硬件平臺無關,因而把OS移植到另一個計算機硬件平臺上所需的修改比較小的。
4.提供了對分布式系統的支持。只要在分布式系統中賦予所有進程和服務器唯一的標識符,在微內核中再配置一張系統映射表,在進行客戶與服務器通信時,只需在所發送的消息中標上發送進程和接收進程的標識符,微內核便可利用系統映射表將消息發往目標。
四、微內核OS存在的問題
由于微內核OS采用了非常小的內核,較之早期OS,微內核OS的運行效率有所降低,效率降低的主要原因是:在完成一次客戶對OS提出的服務請求時,需要利用消息實現多次交互和進行用戶/內核模式與上下文切換。
參考文獻:
[1]陳向群,向勇,王雷等.Windows操作系統原理(2版)[M].北京:機械工業出版社,2004.
[2]吳旭光,何軍紅.嵌入式操作系統原理與應用[M].北京:化學工業出版社,2007.
[3]張堯學等.計算機操作系統教程[M].北京:清華大學出版社,2013.