【正文】
基于服務(wù)體的操作系統(tǒng)體系結(jié)構(gòu)李宏基金項(xiàng)目: 本項(xiàng)目受到國家自然科學(xué)基金項(xiàng)目(60273042)和安徽省自然科學(xué)基金項(xiàng)目(03042203)支持作者介紹: 李宏,男, 博士研究生,1975,研究方向操作系統(tǒng);吳明橋,男,博士研究生,1978,研究方向操作系統(tǒng);龔育昌,女,博士生導(dǎo)師,1945,研究方向數(shù)據(jù)庫,算法,操作系統(tǒng),超媒體;趙振西,男,博士生導(dǎo)師,1937,研究方向體系結(jié)構(gòu),超媒體,操作系統(tǒng),開放性固件,低功耗。,吳明橋,龔育昌, 趙振西中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系,合肥,230027Email: hil@摘要:在分析微內(nèi)核模型特點(diǎn)的基礎(chǔ)上,提出了基于服務(wù)體的操作系統(tǒng)體系結(jié)構(gòu),引入了執(zhí)行流和服務(wù)體等新的系統(tǒng)抽象以及服務(wù)體間通信等相應(yīng)機(jī)制。服務(wù)體模型具有微內(nèi)核模型的優(yōu)點(diǎn),克服了其效率低下的不足,為融合單內(nèi)核模型和微內(nèi)核模型提供了一種途徑。除了傳統(tǒng)多地址空間操作系統(tǒng)外,服務(wù)體模型還可應(yīng)用在單地址空間操作系統(tǒng)中。關(guān)鍵詞:微內(nèi)核 服務(wù)體 執(zhí)行流 中圖分類法: TP316 文獻(xiàn)標(biāo)識碼:AServerBlock Based Operating System ArchitectureLi Hong , Wu MingQiao , Gong YuChang,Zhao ZhenXi(Department Of Computer Science And Technology Of USTC, He Fei , 230027)Abstract: ServerBlock based operating system architecture is presented on the base of analysis of the traditional microkernel, introducing some new system abstraction and policy such as serverblock, executivestream and the munication between serverblocks. ServerBlock model overe the poor performance of microkernel and provide a unified approach to microkernel and macokernel。Beside the traditional multiply address operating system , the new model can also be used to implement the single address operating system.Key words: microkernel serverblock executivestream1研究背景操作系統(tǒng)內(nèi)核模型主要分為單內(nèi)核和微內(nèi)核兩種,單內(nèi)核模型效率高但結(jié)構(gòu)性、可擴(kuò)展性、可維護(hù)性均存在較大的不足;微內(nèi)核模型目標(biāo)是以統(tǒng)一的形式在一個(gè)系統(tǒng)內(nèi)兼容多個(gè)不同操作系統(tǒng),降低操作系統(tǒng)開發(fā)維護(hù)的開銷。微內(nèi)核模型以線程為系統(tǒng)基本抽象,以IPC為通訊手段,良好的體系結(jié)構(gòu)使得該核模易于維護(hù),易于分布式擴(kuò)展并且可以模擬其他操作系統(tǒng)的語義。用戶級進(jìn)程/線程作為系統(tǒng)功能的提供者也給操作系統(tǒng)的調(diào)試帶來莫大的方便,可以較為容易構(gòu)建用戶態(tài)操作系統(tǒng)的模擬調(diào)試環(huán)境。微內(nèi)核的主要缺點(diǎn)是過大的運(yùn)行開銷,主要集中于過于頻繁的上下文切換以及由于進(jìn)程空間的隔離所帶來的進(jìn)程間通訊的開銷[1]。直接使用微內(nèi)核模型構(gòu)造實(shí)際應(yīng)用的操作系統(tǒng)是不現(xiàn)實(shí)的,使用內(nèi)核級服務(wù)器代替用戶級服務(wù)器作為一種改進(jìn)的思路被提出并重新考慮微內(nèi)核模型為系統(tǒng)的魯棒性所帶來的好處[2]。在這種思想的影響下微內(nèi)核模型的典型代表Mach的商用版本實(shí)現(xiàn)中,文件、網(wǎng)絡(luò)以及內(nèi)存管理等關(guān)鍵代碼重新被收到內(nèi)核中運(yùn)行在特權(quán)模式下。微內(nèi)核的一種改進(jìn)是使用“外核”(Exokernel)[3]思想將內(nèi)核服務(wù)進(jìn)一步簡化,對外只提供”虛擬機(jī)”抽象。文件、網(wǎng)絡(luò)、緩存等機(jī)制由用戶庫完成,減少了上下文切換和信息交換的開銷具有很高的效率。MIT開發(fā)的Aegis就是在這種思想指導(dǎo)下設(shè)計(jì)實(shí)現(xiàn)的操作系統(tǒng)。單地址空間操作系統(tǒng)模型[4][8]則從另一個(gè)角度避免上下文切換以及信息共享所帶來的開銷。單地址空間模型具有良好的運(yùn)行效率,易于實(shí)現(xiàn)單層次以及持久存儲系統(tǒng)。單地址空間操作系統(tǒng)面臨的主要困難是要求運(yùn)行平臺提供大的虛擬尋址空間,同時(shí)難以完全兼容UNIX語義。本文介紹一種新的操作系統(tǒng)內(nèi)核模型—服務(wù)體模型。在服務(wù)體模型中消息傳遞仍然是通訊的基本方式,這是實(shí)現(xiàn)系統(tǒng)靈活性、開放性以及可擴(kuò)展性的基礎(chǔ)。服務(wù)體模型中消息的處理模式只支持同步方式,操作系統(tǒng)的異步功能由相應(yīng)的服務(wù)體實(shí)現(xiàn)而不像微內(nèi)核模型那樣作為一種通訊機(jī)制提供給上層使用。這種消息處理模式的設(shè)計(jì)是基于以下理由的:(1)在微內(nèi)核模型中絕大部分服務(wù)都是同步的,也就是Client要等待Server完成請求處理。(2)跨越服務(wù)器邊界的通訊切換必然伴隨著內(nèi)存上下文的切換和線程調(diào)度。(3) 操作系統(tǒng)的異步服務(wù)沒有必要以一種基礎(chǔ)通訊協(xié)議的形式提供,異步處理完全可以在同步通訊協(xié)議的基礎(chǔ)上加以實(shí)現(xiàn),就如同傳統(tǒng)的UNIX所實(shí)現(xiàn)的異步系統(tǒng)服務(wù)一樣。同步消息處理模式使我們可以采用一種新的系統(tǒng)抽象:執(zhí)行流。執(zhí)行流是比線程更基本的概念,執(zhí)行流是CPU對指令的執(zhí)行的抽象,是一種動態(tài)的概念。與線程不同執(zhí)行流不擁有地址空間、棧等資源。因此執(zhí)行流可以跨越操作系統(tǒng)功能組件的邊界而且使得地址空間的管理更加具有靈活性。服務(wù)體