面向?qū)ο蟮牟僮飨到y(tǒng)資料_第1頁
面向?qū)ο蟮牟僮飨到y(tǒng)資料_第2頁
面向?qū)ο蟮牟僮飨到y(tǒng)資料_第3頁
面向?qū)ο蟮牟僮飨到y(tǒng)資料_第4頁
面向?qū)ο蟮牟僮飨到y(tǒng)資料_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、目錄目錄摘要及關(guān)鍵詞封面目錄正文第一章 面向?qū)ο蠛筒僮飨到y(tǒng)(根據(jù)兩者的定義引出主題,對于對象與類的理解也是不可或缺的)1.面向?qū)ο?.操作系統(tǒng)第二章 操作系統(tǒng)為什么要使用面向?qū)ο笤O(shè)計?(闡述面向?qū)ο笤O(shè)計的優(yōu)勢)第三章 面向?qū)ο蟛僮飨到y(tǒng)的歷史在面向?qū)ο笤O(shè)計操作系統(tǒng)的路上,前人的肩膀給了我們更高的起點。原創(chuàng)階段和早期系統(tǒng)發(fā)展階段當(dāng)前代表性水平第四章 面向?qū)ο蟛僮飨到y(tǒng)的開發(fā)方法(說明面向?qū)ο蟛僮飨到y(tǒng)的開發(fā)方法)第五章 面向?qū)ο蟛僮飨到y(tǒng)的大致特點(最主干部分)1面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降膱D形用戶界面2面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降脑O(shè)備管理3面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降慕y(tǒng)一分布式管理4面向?qū)ο蟛僮?/p>

2、系統(tǒng)的面向?qū)ο笫降臉?biāo)準(zhǔn)類以及導(dǎo)出類5面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降母呖煽扛邤U充性內(nèi)核6面向?qū)ο蟮牟僮飨到y(tǒng)與其他系統(tǒng)的比較結(jié)論參考文獻(xiàn)及引用后記致謝摘要傳統(tǒng)的操作系統(tǒng)在設(shè)計之初并沒有考慮到今后要管理網(wǎng)絡(luò)、多處理機等硬件與支持并行、分布與面向?qū)ο螅∣O方法)的程序設(shè)計。計算機硬件技術(shù)的發(fā)展要求與之相適應(yīng)的操作系統(tǒng),這樣便出現(xiàn)了采用OO方法設(shè)計的操作系統(tǒng)。本文從面向?qū)ο笤O(shè)計的優(yōu)勢與面向?qū)ο蟛僮飨到y(tǒng)的歷史出發(fā),闡述面向?qū)ο蟛僮飨到y(tǒng)的開發(fā)方法,開發(fā)方法主要在于對象的劃分和對象結(jié)構(gòu)與對象的通信。并在之后用很多采用面向?qū)ο蟮牟僮飨到y(tǒng)的例子概述出面向?qū)ο蟮牟僮飨到y(tǒng)的特點,面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降膱D形用戶

3、界面,面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降脑O(shè)備管理,面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降慕y(tǒng)一分布式管理,面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降臉?biāo)準(zhǔn)類以及導(dǎo)出類,面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降母呖煽扛邤U充性內(nèi)核,并通過對面向?qū)ο蟮牟僮飨到y(tǒng)與其他系統(tǒng)的比較,總結(jié)出面向?qū)ο蟛僮飨到y(tǒng)的優(yōu)勢所在。At the begin of traditional operating systemsdesigning,we dont think about we will manage the network,multiprocessing computer,and the program with Object Orient

4、ed,the develoing of computer hardware need new operating system to fit it,so,the operating system with object oriented arise. In this paper,we begin with the advantages of object-oriented design and object-oriented operating system in history, we get methods of object-oriented operating system on th

5、e development, mainly due to the development of methods and objects into the object structure and object of communication. And after the use of many object-oriented operating system, examples of object-oriented overview of the characteristics of the operating system, object-oriented operating system

6、, object-oriented graphical user interface-based, object-oriented operating system, object-oriented style equipment management, object-oriented operating system of a unified object-oriented distributed management, object-oriented operating system, object-oriented style of the standard categories, as

7、 well as export type, object-oriented operating system, object-oriented type of highly reliable high - scalable core, and through the object-oriented operating system with other systems, , we summed up object-oriented operating system with its advantage.關(guān)鍵詞關(guān)鍵詞:面向?qū)ο?操作系統(tǒng)Key Words: Object Oriented;Ope

8、rating System正文第一章 面向?qū)ο蠛筒僮飨到y(tǒng)(根據(jù)兩者的定義引出主題,對于對象與類的理解也是不可或缺的)1.面向?qū)ο竺嫦驅(qū)ο蟮姆椒?Object-Oriented Method)是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動的系統(tǒng)方法,簡稱OO (Object-Oriented)方法,是建立在“對象”概念基礎(chǔ)上的方法學(xué)。對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接對應(yīng)關(guān)系,一個對象類定義了具有相似性質(zhì)的一組對象。而每繼承性是對具有層次關(guān)系的類的屬性和操作進行共享的一種方式。所謂面向?qū)ο缶褪腔趯ο蟾拍睿詫ο鬄橹行?,以類和繼承為構(gòu)造機制,來認(rèn)識、理解、刻畫客觀世

9、界和設(shè)計、構(gòu)建相應(yīng)的軟件系統(tǒng)。用計算機解決問題需要用程序設(shè)計語言對問題求解加以描述(即編程)對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫、極其復(fù)雜的自動化工廠、航天飛機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規(guī)則、計劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨立整體。從程序設(shè)計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內(nèi)的操作通常稱為方法。 類:類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象

10、之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。消息:消息是對象之間進行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。 面向?qū)ο笾饕卣鳎悍庋b性:封裝是一種信息隱蔽技術(shù),它體現(xiàn)于類的說明,是對象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個整體,以實現(xiàn)獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實現(xiàn)加工能力的算法)對用戶是隱蔽的。封裝的目的在于把對象的設(shè)計者和對象者的使用分開,使用者不必知曉行為實現(xiàn)的細(xì)節(jié),只須用設(shè)計者提供

11、的消息來訪問該對象。 繼承性:繼承性是子類自動共享父類之間數(shù)據(jù)和方法的機制。它由類的派生功能體現(xiàn)。一個類直接繼職其它類的全部描述,同時可修改和擴充。繼職具有傳達(dá)室遞性。繼職分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象中數(shù)據(jù)、方法就會出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進系統(tǒng)的可擴充性。多態(tài)性:對象根據(jù)所接收的消息而做出動作。同一消息為不同的對象接受時可產(chǎn)生完全不同的行動,這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個通用的信息,而將所有的實現(xiàn)細(xì)節(jié)都留給接受消息的對象自行決定,如是,同一消息即可調(diào)用不同的方法。例如:

12、Print消息被發(fā)送給一圖或表時調(diào)用的打印方法與將同樣的Print消息發(fā)送給一正文文件而調(diào)用的打印方法會完全不同。多態(tài)性的實現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應(yīng)。在OOPL中可通過在派生類中重定義基類函數(shù)(定義為重載函數(shù)或虛函數(shù))來實現(xiàn)多態(tài)性。綜上可知,在OO方法中,對象和傳遞消息分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是是適應(yīng)人們一般思維方式的描述范式。方法是允許作用于該類對象上的各種操作。這種對象、類、消息和方法的程序設(shè)計范式的基本點在

13、于對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關(guān)系,以及由此帶來的動態(tài)聯(lián)編和實體的多態(tài)性,從而構(gòu)成了面向?qū)ο蟮幕咎卣鳌?.操作系統(tǒng)操作系統(tǒng)(Operating System,簡稱OS)是管理計算機系統(tǒng)的全部硬件資源包括軟件資源及數(shù)據(jù)資源;控制程序運行;改善人機界面;為其它應(yīng)用軟件提供支持等,使計算機系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。 操作系統(tǒng)中四大部分的不同布局,也就形成了幾種整體結(jié)構(gòu)的分野。常見的結(jié)構(gòu)包括:簡單結(jié)構(gòu)、層結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)、垂直結(jié)構(gòu)、和虛擬機(Virtual Machine)結(jié)構(gòu)。內(nèi)核結(jié)構(gòu)內(nèi)

14、核是操作系統(tǒng)最核心最基礎(chǔ)的構(gòu)件,因而,內(nèi)核結(jié)構(gòu)往往對操作系統(tǒng)的外部特性以及應(yīng)用領(lǐng)域有著一定程度的影響。盡管隨著理論和實踐的不斷演進,操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合有日趨縮小之勢,但習(xí)慣上,內(nèi)核結(jié)構(gòu)仍然是操作系統(tǒng)分類之常用標(biāo)準(zhǔn)。內(nèi)核的結(jié)構(gòu)可以分為單內(nèi)核(monolithic kernel)、微內(nèi)核(microkernel)、超微內(nèi)核(nanokernel)、以及外核(exokernel)等。我們這里介紹一下采用面向?qū)ο蠓椒ǖ牟僮飨到y(tǒng)的重要的內(nèi)核結(jié)構(gòu):微內(nèi)核結(jié)構(gòu)是1980年代產(chǎn)生出來的較新的內(nèi)核結(jié)構(gòu),強調(diào)結(jié)構(gòu)性部件與功能性部件的分離。20世紀(jì)末,基于微內(nèi)核結(jié)構(gòu),理論界中又發(fā)展出了超微內(nèi)核與外

15、內(nèi)核等多種結(jié)構(gòu)。盡管自1980年代起,大部分理論研究都集中在以微內(nèi)核為首的“新興”結(jié)構(gòu)之上,然而,在應(yīng)用領(lǐng)域之中,以單內(nèi)核結(jié)構(gòu)為基礎(chǔ)的操作系統(tǒng)卻一直占據(jù)著主導(dǎo)地位。在眾多常用操作系統(tǒng)之中,除了QNX和基于Mach的UNIX等個別系統(tǒng)外,幾乎全部采用單內(nèi)核結(jié)構(gòu),例如大部分的Unix、Linux,以及Windows(微軟聲稱Windows NT是基于改良的微內(nèi)核架構(gòu)的,盡管理論界對此存有異議)。 微內(nèi)核和超微內(nèi)核結(jié)構(gòu)主要用于研究性操作系統(tǒng),還有一些嵌入式系統(tǒng)使用外核。基于單內(nèi)核的操作系統(tǒng)通常有著較長的歷史淵源。例如,絕大部分UNIX的家族史都可上溯至1960年代。該類操作系統(tǒng)多數(shù)有著相對古老的設(shè)計

16、和實現(xiàn)(例如某些UNIX中存在著大量1970年代、1980年代的代碼)。另外,往往在性能方面略優(yōu)于同一應(yīng)用領(lǐng)域中采用其他內(nèi)核結(jié)構(gòu)的操作系統(tǒng)(但通常認(rèn)為此種性能優(yōu)勢不能完全歸功于單內(nèi)核結(jié)構(gòu))。微內(nèi)核的概念所謂微內(nèi)核(Microkerne1)技術(shù),就是把操作系統(tǒng)最基本的功能放在一個核心中實現(xiàn)其他功能盡量放在核心外的用戶層實現(xiàn)。采用微內(nèi)榜技術(shù)使操作系統(tǒng)本身的可移植性與可擴展性、可靠性、實時性大大增強適應(yīng)了當(dāng)前隨著計算機硬件技術(shù)的發(fā)展而導(dǎo)致的操作條統(tǒng)功能越來越龐大,越來越復(fù)雜的趨勢。以MACH30微內(nèi)核為藍(lán)本的操作系統(tǒng)的體系結(jié)構(gòu)為例,Maeh微內(nèi)核只包括進程間通信、處理器管理、進程與線程管理、虛存管理

17、、lO設(shè)備操作低層模塊等5部分出于市場目標(biāo)與效率的考慮各個操作系統(tǒng)生產(chǎn)商對哪一部分放人核心運行有不同的選擇??傊?nèi)桉的思想就是將傳統(tǒng)操作系統(tǒng)核心的功能進行大量裁減,核心中只保留必須的模塊(內(nèi)存管理,處理器低層的管理、IPC(InterProcessCommunication)外部設(shè)備驅(qū)動程序等)。其他部分(文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、進強管理等)提到核心外的用戶層實現(xiàn)。這體現(xiàn)了OO方法中的對象思想,一些系統(tǒng)的內(nèi)核設(shè)計對內(nèi)核特性提供了對象封裝,因而使系統(tǒng)的擴充更容易利用面向?qū)ο笏枷胨鶐淼膬?yōu)勢。 下面通過回顧操作系統(tǒng)的發(fā)展史來引出采用OO方法設(shè)計的操作系統(tǒng)。操作系統(tǒng)的發(fā)展與計算機硬件技術(shù)的發(fā)展大致相對

18、應(yīng),它經(jīng)歷了以下4個階段t19451955年,電子管計算機與操作系統(tǒng)的早期形式Monitor(監(jiān)控器);19551965年晶體營計算機與批處理系統(tǒng);19651980年中小規(guī)模集成電路構(gòu)成的計算機與支持分時多道程序設(shè)計的操作系統(tǒng);19801995年,大規(guī)模集成電路構(gòu)成的單機、多機、網(wǎng)絡(luò)硬件環(huán)境與分布式操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、并行操作系統(tǒng)。各個時期的操作系統(tǒng)與硬件環(huán)境相適應(yīng)功能上不斷完善以滿足用戶的新要求。隨著計算機硬件體系結(jié)構(gòu)的不斷發(fā)展(并行、分布),處理器的RISC化(ReduccdInstructionSetComputer)大容量高速磁盤等外部設(shè)備、高速網(wǎng)絡(luò)器件及聯(lián)網(wǎng)技術(shù)等方面取得的飛躍發(fā)

19、展,像UNIX這樣在發(fā)展初期以短小靈活、易移植著稱的操作系統(tǒng)也不得不逐漸龐大起來,可移植性、可擴展性與可維護性越來越差究其原因,UNIX原本是為單處理機開發(fā)的支持分時多道程序設(shè)計的一種環(huán)境。在設(shè)計初期并沒有考慮到今后要管理網(wǎng)絡(luò)、多處理機等硬件與支持并行、分布與面向?qū)ο螅∣O方法)的程序設(shè)計。計算機硬件技術(shù)的發(fā)展要求與之相適應(yīng)的操作系統(tǒng),這樣便出現(xiàn)了采用OO方法設(shè)計的操作系統(tǒng)。 那我們?yōu)槭裁匆妹嫦驅(qū)ο髞碓O(shè)計與我們息息相關(guān)的操作系統(tǒng)呢?第二章 操作系統(tǒng)為什么要使用面向?qū)ο笤O(shè)計?(闡述面向?qū)ο笤O(shè)計的優(yōu)勢)對象有明確的邊界,是易于管理的實體。對象的封裝實現(xiàn)了接口和實現(xiàn)的分離,即機制和策略的分離。這種

20、分離使同一接口可以有不同的實現(xiàn),便于系統(tǒng)在保持原有結(jié)構(gòu)的條件下進行擴充和升級(PEACE提出incremental system design的概念)。同時,清晰的接口使開發(fā)定制部件的工作變得容易并且規(guī)范化。這種分離體現(xiàn)出來的對象多態(tài)性使系統(tǒng)也呈現(xiàn)出多態(tài)性(PEACE提出OS Family的概念),便于根據(jù)需要對系統(tǒng)進行配置優(yōu)化,以最好地滿足應(yīng)用的需要。對象的尺度比較小,便于以更細(xì)的粒度配置系統(tǒng),可以使系統(tǒng)更靈活,更容易擴充。在對象模型和微內(nèi)核技術(shù)的共同作用下,系統(tǒng)和應(yīng)用程序的邊界變得模糊了,便于系統(tǒng)功能直接配置應(yīng)用程序里面。這個趨勢進一步加強了系統(tǒng)的可定制性和可配置性,提高了性能。對象模型提

21、供了對各種資源的統(tǒng)一抽象,便于實現(xiàn)分布環(huán)境中的單一系統(tǒng)映像(Single System Image),有利于分布式計算實現(xiàn)統(tǒng)一模型?;趯ο竽P蛶淼倪@種可配置特點,發(fā)展自適應(yīng)(或自配置)的系統(tǒng)也變得容易了。派生機制提供了一種耦合的界面,便于定制部件的開發(fā)。派生機制有利于基于類架構(gòu)的代碼復(fù)用。 第三章 面向?qū)ο蟛僮飨到y(tǒng)的歷史對象操作系統(tǒng)的發(fā)展有三個階段,在利用面向?qū)ο蠓椒ㄔO(shè)計操作系統(tǒng)的路上,前人的肩膀給了我們更高的起點。原創(chuàng)階段和早期系統(tǒng):這個時期從70年代到80年代末。這個時期的很多系統(tǒng)都基于自己的面向?qū)ο缶幊陶Z言和對象模型,許多系統(tǒng)支持大顆粒對象或active對象。這個時期的系統(tǒng)

22、有Hydra、Eden、Argus、Chorus、Amoeba、Clouds、GUIDE。這個時期系統(tǒng)的一些特點:基于自己的面向?qū)ο缶幊陶Z言和對象模型,許多系統(tǒng)支持大顆粒、active對象。HydraHydra系統(tǒng)是卡內(nèi)基梅隆大學(xué)(Carnegie-Mellon University)開發(fā)的系統(tǒng),發(fā)表時間是1974年。Hydra的目標(biāo)是建立“統(tǒng)一適用”和“絕對可靠”的機制,從上面可以方便、靈活、有效、可靠地構(gòu)建各種操作系統(tǒng)功能。Hydra是一個包含了許多原創(chuàng)概念的系統(tǒng)。這個系統(tǒng)是非常早在操作系統(tǒng)級提出對象概念的系統(tǒng)。提出這個概念的目的是為各種系統(tǒng)資源提供一個統(tǒng)一的抽象。一個Hydra對象有一個

23、名稱、一個類、一個表現(xiàn)(其實是數(shù)據(jù)和capability)。Hydra的capability就是帶權(quán)限的對象引用。類是由一個對象來表達(dá)的 這實際上是一個元對象。Hydra并沒有明確提出元對象的概念,元對象的概念實際上是在幾乎20年以后的反射操作系統(tǒng)Apertos上才被明確地采納。但從某種意義可以說,Hydra開創(chuàng)了反射操作系統(tǒng)(Reflective Operating System)的先河。Hydra類的創(chuàng)建就等同于元對象的創(chuàng)建。每個Hydra對象包含一個引用計數(shù),引用計數(shù)為零該對象就會被刪除。和現(xiàn)在主流的對象的定義不同,Hydra對象具有更加廣泛的含義:在Hydra對象模型中,過程也是一種對

24、象。過程對象包含一個capability。Hydra內(nèi)核提供了對Hydra對象的支持:支持類的創(chuàng)建和表現(xiàn)、支持類上定義的操作、對不同execution domain(其實就是進程)中對象的安全訪問、以及在不同execution domain之間進行的控制轉(zhuǎn)移(其實就是進程間通信)。進程間通信是通過調(diào)用進程的過程對象實現(xiàn)的。當(dāng)發(fā)生調(diào)用時,調(diào)用者調(diào)用內(nèi)核提供的CALL原語把控制轉(zhuǎn)移到被調(diào)用者,被調(diào)用者調(diào)用內(nèi)核提供的RETURN原語把控制轉(zhuǎn)移回調(diào)用者。CALL原語的功能其實是創(chuàng)建一個過程對象、檢查和傳遞參數(shù)、并把控制轉(zhuǎn)移到過程的代碼。Hydra區(qū)分了保護和安全的概念:在Hydra中,保護被視為一種機

25、制,而安全被視為策略。Hydra提供了一種保護機制,可以在上面使用各種安全策略從而實現(xiàn)不同的安全級別(包括不支持安全的系統(tǒng))。不僅在安全方面,Hydra在其它方面也實現(xiàn)了機制和策略的分離。Hydra把“操作系統(tǒng)”看作一種用戶環(huán)境。這種環(huán)境由各種對象組成,每個對象都屬于一個類,而類定義了一個操作集,實際上是一個接口。同一個接口可以有不同的對象實現(xiàn)。這種同一接口、不同實現(xiàn)的方式允許環(huán)境有許多種實現(xiàn)配置,即實現(xiàn)不同配置的操作系統(tǒng)。發(fā)展階段:這個時期從80年代末到90年代前期。這個時期的系統(tǒng)不再強調(diào)基于特有的面向?qū)ο缶幊陶Z言,而是開始使用一些流行的面向?qū)ο缶幊陶Z言如C+。這些系統(tǒng)主要支持小粒度對象,或

26、是粒度可變,沒有專門支持大粒度對象的系統(tǒng)。有些系統(tǒng)支持類的派生。一部分系統(tǒng)采用了微內(nèi)核設(shè)計。這個時期的系統(tǒng)有PEACE、SOS、Choice、Grasshopper、Apertos。這個時期系統(tǒng)的一些特點:一部分系統(tǒng)采用了微內(nèi)核設(shè)計,主要是基于小粒度對象的系統(tǒng),或是粒度可變的系統(tǒng)如Apertos,沒有專門支持大粒度對象的系統(tǒng)。PEACEPEACE系統(tǒng)德國National Research Center for Information Technology從1986年開始開發(fā)的,1995年發(fā)表。PEACE的目標(biāo)是支持大規(guī)模并行計算和高度的可配置性。PEACE開始是基于微內(nèi)核設(shè)計,但后來發(fā)現(xiàn)微內(nèi)核

27、設(shè)計存在嚴(yán)重的性能問題。1990年進行了重新設(shè)計,不再把微內(nèi)核作為核心考慮,而是轉(zhuǎn)而應(yīng)用面向?qū)ο笤瓌t進行內(nèi)核設(shè)計,允許系統(tǒng)根據(jù)不同的需要進行配置,試圖把PEACE變成一個內(nèi)核族(kernel family),進而變成一個操作系統(tǒng)族(operating system family) 在操作系統(tǒng)級呈現(xiàn)出多態(tài)性。同時,允許進行增量系統(tǒng)設(shè)計(incremental system design),允許在未來把更高性能的部件配置入系統(tǒng),以最大限度地滿足性能需要。在應(yīng)用對象技術(shù)的同時,微內(nèi)核設(shè)計也沒有被徹底放棄。在PEACE實踐中還發(fā)現(xiàn):盡管用戶通常會很希望獲得多任務(wù)的功能,但實際上在并行運算中,每個節(jié)點上

28、的運算幾乎都是單任務(wù)的。也就是說,任務(wù)分配實際上更傾向于一個節(jié)點一個任務(wù)。PEACE基于分布式共享內(nèi)存(DSM)。支持Active對象、Passive對象、Dual Object。Dual Object實際上是Fragmented對象。為了支持Dual Object,開發(fā)了一個C+的預(yù)處理器,名叫P+。當(dāng)前代表性水平:這個時期從90年代之今。這個時期的系統(tǒng)大多基于可擴充內(nèi)核(Extensible kernel)設(shè)計,強調(diào)系統(tǒng)的可定制和可配置?;静恢С諥ctive對象,主要支持Passive對象,接口的概念得到廣泛接受,系統(tǒng)不支持類的派生。這個時期的系統(tǒng)有Lipto、Spring、Vino 、

29、Opal 、SPACE 、Paramecium、Tigger 、MetaOS、EROS 、Mungi、Pebble、E1。進入90年代后期,Internet得到了大規(guī)模的普及。在這個時期出現(xiàn)了一些支持面向大規(guī)模、異構(gòu)分布式環(huán)境的系統(tǒng),有些系統(tǒng)被稱為寬域(Wide Area)操作系統(tǒng)。這些系統(tǒng)有Legion、WebOS、2K、GridOS。這個時期系統(tǒng)的一些特點:大多基于可擴充內(nèi)核(Extensible kernel)設(shè)計, 基本不支持Active對象,主要是Passive對象,接口的概念得到廣泛接受,很少系統(tǒng)支持派生。 LiptoLipto系統(tǒng)是University of

30、Arizona在1993開發(fā)的一個原型,目標(biāo)是支持應(yīng)用程序級(Application-specific)的可定制性和可配置性,以及高度的可移植性。第四章 面向?qū)ο蟛僮飨到y(tǒng)的開發(fā)方法(說明面向?qū)ο蟛僮飨到y(tǒng)的開發(fā)方法)操作系統(tǒng)中的對象是對操作系統(tǒng)管理的信息和資源的抽象。同開發(fā)其它面向?qū)ο蟮南到y(tǒng)一樣,其關(guān)鍵如何根據(jù)設(shè)計要求和目標(biāo)來定義和劃分對象、對象之間的結(jié)構(gòu)以及對象之間的通信方式。1.對象的劃分和對象結(jié)構(gòu)關(guān)于對象劃分,在操作系統(tǒng)中常用的方法是除了系統(tǒng)內(nèi)部定義的缺省對象之外。只提供一十對象生成工具,由用戶自定義或生成對象實例。這樣,解決了網(wǎng)絡(luò)環(huán)境下對象的繼承性問題。同類的層次結(jié)構(gòu)一樣系統(tǒng)中的對象都按

31、照一定的規(guī)律構(gòu)成一定的層次結(jié)構(gòu)。圖1為對象結(jié)構(gòu)概圖。對象對象對象超級對象超級對象超級對象2.對象的通信對象與對象之間互相發(fā)送消息來啟動對方進行操作以改變它們的狀態(tài)對象之間的通信方式可分為兩種一種是遠(yuǎn)程過程調(diào)用(RPC),可完成網(wǎng)絡(luò)環(huán)境下的對象之間的信息傳遞工作。當(dāng)然,在阿絡(luò)環(huán)境下傳遞消息時,由于通信對象之間沒有共同的物理存儲器,因此不能依靠參數(shù)的方法來實現(xiàn)過程調(diào)用。此外,由于通信雙方是并行執(zhí)行的。還應(yīng)考慮對象之間的同步因素。第二種是共有存儲器方式傳遞消息這種機制實際上為消息緩沖機制利用一個緩沖區(qū),將消息放在緩沖隊列中傳送時釋放隊列中的元素第五章 面向?qū)ο蟛僮飨到y(tǒng)的大致特點(最主干部分)面向?qū)ο?/p>

32、的操作系統(tǒng)能夠把一個大范圍的網(wǎng)絡(luò)例如一個全球網(wǎng)表達(dá)成一臺虛擬的計算機,并把其中各種各樣的數(shù)據(jù)和設(shè)備表達(dá)成對象,同時把它們統(tǒng)一組織在一個樹狀的對象空間中。這個統(tǒng)一的對象空間建立在面向?qū)ο蟛僮飨到y(tǒng)支持的一個分布式對象模型的基礎(chǔ)之上?;谶@個模型,用戶可以在這個對象空間中用類似于文件路徑的對象路徑來引用網(wǎng)絡(luò)中的任何對象,然后通過一個類似于CORBA的遠(yuǎn)程調(diào)用機制來訪問這些對象。這樣,不同地點的用戶,不管是一個人還是一臺計算機,都可以在這個統(tǒng)一的對象空間中方便地訪問整個網(wǎng)絡(luò)中的任何資源,從而實現(xiàn)了在整網(wǎng)范圍內(nèi)的漫游。這個功能使面向?qū)ο蟮牟僮飨到y(tǒng)適合于支持構(gòu)建大范圍的分布式系統(tǒng)。另外,面向?qū)ο蟮牟僮飨到y(tǒng)

33、支持一個對象文件系統(tǒng),用來存儲持久對象,即在程序結(jié)束后還能存在的對象。使用持久對象,程序員就可以不必象從前一樣需要寫大量的代碼來存儲對象了,因為這些對象會自動地被存儲進持久設(shè)備如磁盤中。對象文件系統(tǒng)可以允許持久對象之間有非常復(fù)雜的相互引用關(guān)系,從而支持非常復(fù)雜的存儲結(jié)構(gòu),提供比常規(guī)的文件系統(tǒng)強大得多的存儲功能 - 這也正是Microsoft一直未能實現(xiàn)的夢幻操作系統(tǒng)Cairo所追求的目標(biāo)。由于支持對象文件系統(tǒng),面向?qū)ο蟮牟僮飨到y(tǒng)特別適合支持新一代的復(fù)雜數(shù)據(jù)庫系統(tǒng)如對象數(shù)據(jù)庫等等,也適合于支持一些需要較強存儲能力的應(yīng)用如CAD/CAM軟件、辦公軟件、電子字典、單詞記憶軟件等等,尤其適合支持一些需

34、要巨大復(fù)雜存儲能力的應(yīng)用如基因/蛋白分析、科學(xué)模擬、天氣預(yù)報等等。面向?qū)ο蟮牟僮飨到y(tǒng)是一個可移植的操作系統(tǒng),基于一個第二代微內(nèi)核級的高可靠高擴充性內(nèi)核。它分完全版和剪裁版兩個版本。其完全版運行于32位保護模式,具有多進程、高并發(fā)多線程、實時搶占式多任務(wù)支持以及先進圖形界面設(shè)計等特性。同時,該操作系統(tǒng)的現(xiàn)有實現(xiàn)還支持Windows格式的可執(zhí)行程序、動態(tài)加載的設(shè)備驅(qū)動程序和FAT文件系統(tǒng)等等功能。作為一個可移植的操作系統(tǒng),面向?qū)ο蟮牟僮飨到y(tǒng)的剪裁版只占用較小的內(nèi)存,可以運行在C51及8086上,適合大多數(shù)嵌入式應(yīng)用。面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降膱D形用戶界面面向?qū)ο蟛僮飨到y(tǒng)采用面向?qū)ο笫降膱D形用戶

35、界面,我們這里以Windows操作系統(tǒng)的圖形用戶界面的面向?qū)ο蟮膱D形用戶設(shè)計為例。Windows是操作系統(tǒng)發(fā)展史上一個里程碑式的作品,它對Windows3.1版作了許多重大改進,包括很重要的面向?qū)ο蟮膱D形用戶界面,從而減輕了用戶的學(xué)習(xí)負(fù)擔(dān); Windows之所以取得成功,在于它具有以下優(yōu)點:直觀、高效的面向?qū)ο蟮膱D形用戶界面,易學(xué)易用:從某種意義上說,Windows用戶界面和開發(fā)環(huán)境都是面向?qū)ο蟮?。用戶采用“選擇對象-操作對象”這種方式進行工作。比如要打開一個文檔,我們首先用鼠標(biāo)或鍵盤選擇該文檔,然后從右鍵菜單中選擇“打開”操作,打開該文檔。這種操作方式模擬了現(xiàn)實世界的行為,易于理解

36、、學(xué)習(xí)和使用。面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫皆O(shè)備管理面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫皆O(shè)備管理采用面向?qū)ο蟮脑O(shè)計,使得代碼的共享程度更高,減少了依靠機器的代碼量,增加了可移植性我們以對采用OO方法的Mach30操作系統(tǒng)的微內(nèi)核的面向?qū)ο笤O(shè)備管理的源程序進行剖析方法依據(jù)Math的I0管理機制分析源程序,以并行接口為端口編寫通訊驅(qū)動程序,并驗證其正確性結(jié)果在分析的基礎(chǔ)上,通過修改有關(guān)驅(qū)動程序的接El,實現(xiàn)了兩臺Mach機或Mach與基于DOS機之間的通信結(jié)論Math30采用端口和消息機制,110接E1支持的設(shè)備驅(qū)動程序獨立于設(shè)備和位置,而且是在用戶級實現(xiàn)的面向?qū)ο笤O(shè)計,使得代碼的共享程度更高,減少了依靠機

37、器的代碼量,增加了可移植性1獨立于設(shè)備的設(shè)備驅(qū)動程序UNIX的設(shè)備驅(qū)動是基于硬件設(shè)備的,把操作系統(tǒng)移植到新機器上時,對視頻控制芯片(RAMDAC)、串行接I:1芯片(UART)、SCSI控制器,ethernet控制器等驅(qū)動程序的修改或編寫工作量很大雖然每個芯片的作用不同,但在一個設(shè)備類內(nèi),所有芯片執(zhí)行的操作基本相同例如每個視頻控制芯片都有移動光標(biāo)的能力,每個串行控制芯片都有設(shè)置速度和奇偶校驗的能力找出這些公共的功能并將它們封裝在類似的類分層結(jié)構(gòu)的底層并生成一個系統(tǒng)這樣很容易用不同的芯片代替原有芯片的代碼,從而增加了可移植性Mach是通過創(chuàng)建設(shè)備類,然后標(biāo)識每一類依賴設(shè)備芯片的接口,編寫基本上獨

38、立于硬件設(shè)備的驅(qū)動程序目前,設(shè)備驅(qū)動不再區(qū)分字符和塊設(shè)備,而是一組在功能上成類的(grouped)設(shè)備驅(qū)動程序,包括屏幕、控制臺、串行接I:1(serialline)、磁盤、磁帶和ethemet等每個驅(qū)動程序都有一層或多層獨立于芯片的代碼,提供外部接口和實現(xiàn)設(shè)備驅(qū)動程序應(yīng)有的功能在底層僅有簡單的核心功能直接處理硬件這種分層結(jié)構(gòu)減少了Mach依賴機器的代碼量,大大增加了可移植性和代碼共享程度如Mach30的serialline驅(qū)動程序,它被分成獨立于設(shè)備的部分和一個小的依賴于設(shè)備(chip)的部分獨立于設(shè)備部分處理字符緩沖及所有與控制臺有關(guān)的操作,包括openclosereadwrite函數(shù)、s

39、tartstopmodem操作、控制和基于一個字符一次中斷的簡單的中斷處理,調(diào)試程序錯誤時用查詢方式向系統(tǒng)控制臺發(fā)送接收字符,位映射驅(qū)動(鼠標(biāo)和控制臺callout)的轉(zhuǎn)換代碼在一個通用內(nèi)核中找到恰當(dāng)?shù)目刂婆_行依賴芯片的層僅實現(xiàn)直接操作設(shè)備寄存器的一些操作,包括probe(探測設(shè)備)、attach(連接設(shè)備)、設(shè)置速度、奇偶校驗和modem控制、取出和送人字符至芯片對于screen的驅(qū)動程序,所有屏幕設(shè)備共享的代碼部分是終端仿真器、字體(font)和屏幕保護器,如openclosereadwrite接口例程、壓鍵和移動的事件處理邏輯,還有其它如控制屏幕保護器和光標(biāo)位置的狀態(tài)控制操作每個屏幕設(shè)備

40、的專用代碼控制探測、通知openfclose操作,在給定位置畫字符、滾屏、光標(biāo)移動、視頻onioff和空白、是否允許垂直回掃中斷和返回映射到用戶地址空間寄存器的物理地址即使在專用芯片的較底層,也能夠使各設(shè)備共享一些代碼例如,基于幀緩沖的所有顯示共享畫字符和滾動文本的相同代碼。對于與屏幕模塊分離的鍵盤和鼠標(biāo)驅(qū)動程序,則只能由serialline或屏幕驅(qū)動程序調(diào)用,而不允許一般的用戶調(diào)用鍵盤驅(qū)動程序?qū)㈡I盤的鍵碼重新映射成終端仿真任務(wù)的ascii字符鼠標(biāo)驅(qū)動程序?qū)碜允髽?biāo)的字節(jié)再裝配成坐標(biāo)和鼠標(biāo)按鈕的擊鍵設(shè)備專用部分處理鼠標(biāo)報告的格式和鍵碼翻譯表2用戶級的設(shè)備管理Mach以前版本的核內(nèi)驅(qū)動程序不僅充

41、當(dāng)設(shè)備控制器,而且也用作數(shù)據(jù)緩沖器這樣,當(dāng)數(shù)據(jù)在用戶和設(shè)備之間進行傳送時,就要使處理機在核心,用戶狀態(tài)進行轉(zhuǎn)換從而降低了IO性能Mach30提供的用戶級的設(shè)備驅(qū)動程序,避免用戶和核心空間之間的數(shù)據(jù)拷貝,像基于圖形工作站的顯示設(shè)備一樣,直接將設(shè)備映射到應(yīng)用的地址空間,從而縮短了IO路徑,提高了IO性能Mach的用戶級設(shè)備管理是通過將所有設(shè)備的中斷引向應(yīng)用線程來實現(xiàn)的其核心是將設(shè)備寄存器、保存控制信息的共享頁和處理設(shè)備DMA的某些存儲空間映射到用戶空間當(dāng)發(fā)生中斷時,一個小的中斷例程保存寄存器的內(nèi)容在共享頁中,以便后用戶代碼使用,然后清設(shè)備的中斷允許位,屏蔽中斷當(dāng)用戶線程運行時,它僅調(diào)用驅(qū)動的中斷例

42、程處理中斷在進行所有必要處理后,線程再置設(shè)備中斷允許位為此要求用戶級的設(shè)備管理提供中斷優(yōu)先級仿真和內(nèi)存分配用戶級設(shè)備管理所要求的同步,是在核心中斷處理程序和應(yīng)用線程之間,通過用戶方式下的threadsuspend和核心方式下的threadresume原語來實現(xiàn)的,而且每個設(shè)備僅需要一個專用線程從而使得應(yīng)用程序如UNIXServer操作系統(tǒng)服務(wù)器直接控制設(shè)備的活動3Mach操作系統(tǒng)設(shè)備管理的實現(xiàn)在系統(tǒng)初啟時,創(chuàng)建deviceservice(1線程,為其分配一個主設(shè)備端121號,用于設(shè)備管理,實現(xiàn)對各種設(shè)備的操作這些操作由dsroutinesc文件中的函數(shù)實現(xiàn)設(shè)備服務(wù)器提供用戶和系統(tǒng)對設(shè)備請求操作

43、的接口,它是各種硬件的最高管理者它把各種設(shè)備可能實現(xiàn)的操作歸納為:打開設(shè)備(deviceopen),關(guān)閉設(shè)備(deviceclose),寫設(shè)備(devicewrite),讀設(shè)備(deviceread),取得設(shè)備狀態(tài)(devicegetstatus)和設(shè)置設(shè)備狀態(tài)(devicesetstatus)等對各種不同設(shè)備統(tǒng)一用device結(jié)構(gòu)描述,對設(shè)備能完成的各種操作用devops結(jié)構(gòu)描述系統(tǒng)或用戶對設(shè)備的操作,必須按照如下步驟進行:首先打開設(shè)備,然后寫讀設(shè)備,或取得設(shè)備狀態(tài)設(shè)置設(shè)備狀態(tài),最后關(guān)閉設(shè)備打開設(shè)備時,必須提供主設(shè)備的端口號和設(shè)備對象的名稱用名稱在設(shè)備操作表devops中查找該設(shè)備,若該設(shè)備

44、名合法,則創(chuàng)建一個device結(jié)構(gòu)用于描述和管理該設(shè)備將該設(shè)備狀態(tài)設(shè)置為打開,并增加該設(shè)備的打開計數(shù)打開成功后,將該設(shè)備對象的端口號返回紿用戶或系統(tǒng),以后對該設(shè)備對象的所有訪問均通過該端口號進行設(shè)備一經(jīng)打開,便可進行讀寫操作用戶調(diào)用讀寫接口函數(shù)進行讀寫時,系統(tǒng)為其分配一個Io請求結(jié)構(gòu),并用讀寫函數(shù)所帶參數(shù)對該結(jié)構(gòu)進行初始化,然后,通過該設(shè)備的device結(jié)構(gòu)中的devops操作表調(diào)用該設(shè)備的讀寫驅(qū)動程序,實現(xiàn)與該設(shè)備相關(guān)的具體操作為了共享代碼,對于那些以字符方式輸人輸出的設(shè)備(包括鍵盤、顯示器,打印機,串行口等),系統(tǒng)為它們分別分配一個T11Y結(jié)構(gòu)進行描述,并把它們在輸人輸出時所必須進行的獨立

45、于設(shè)備的公共處理操作提取出來,放進charioc文件中,形成T11Y驅(qū)動程序?qū)τ趬K設(shè)備,則把它們的共性操作用一個heifer結(jié)構(gòu)來表述這一類設(shè)備的屬性并把輸人輸出中共享的一些公共部分提取出來作為這個類的操作,放在blockioc文件中,形成塊設(shè)備的驅(qū)動程序這樣,字符設(shè)備輸人輸出操作中的大部分處理工作均由T1Y驅(qū)動程序中的函數(shù)完成字符設(shè)備中剩下的與具體硬件設(shè)備有關(guān)的驅(qū)動操作,由具體硬件驅(qū)動部分負(fù)責(zé)接收和發(fā)送字符,處理與輸人輸出過程的同步操作,從而減少了依賴設(shè)備的代碼數(shù)量T1Y驅(qū)動程序按照線路規(guī)程(1inediscipline)同系統(tǒng)的其余部分發(fā)生聯(lián)系它由過程接口linesw(線路開關(guān))結(jié)構(gòu)描述1

46、inesw結(jié)構(gòu)規(guī)定了線路規(guī)程的人121(很像UNIX字符設(shè)備開關(guān)表cdevsw),列出字符設(shè)備驅(qū)動程序的人口Mach操作系統(tǒng)具有面向?qū)ο蟛僮飨到y(tǒng)的特征它把設(shè)備分別當(dāng)作對象,這些對象作為設(shè)備有一些共同的特性,可以當(dāng)作一個類,用統(tǒng)一的device結(jié)構(gòu)來描述這類設(shè)備對象的屬性結(jié)構(gòu)中的變量表示了它們所共有的屬性(成員數(shù)據(jù)),device結(jié)構(gòu)中包含有devops操作表,用于描述這些設(shè)備對象所具有的操作(成員函數(shù))對于字符輸人輸出設(shè)備,由于它們有一些局部共性,于是用TTY結(jié)構(gòu)來表述這一類設(shè)備的屬性把在字符輸人輸出過程中共享的一些函數(shù)作為這個類的操作所以這類設(shè)備可以看作是從device設(shè)備父類派生出的子類它

47、除了具有父類的共性外還有自己的特性不同的字符設(shè)備可以看作是從nY設(shè)備類派生出的不同子類這樣,各設(shè)備驅(qū)動程序中的函數(shù),一部分為該設(shè)備類特有的操作,另一部分為該設(shè)備從父類繼承的設(shè)備作為獨立的對象,分別有各自的驅(qū)動程序其中,除了包含各設(shè)備作為它們所屬類所必須的公共函數(shù)操作外,還有設(shè)備對象所特有的函數(shù)操作在這方面,Mach首先采用設(shè)備服務(wù)器作為設(shè)備管理統(tǒng)一的人口,這樣,各設(shè)備驅(qū)動程序共享了與操作系統(tǒng)其它部分銜接的接El程序,各設(shè)備都用服務(wù)器中的函數(shù)操作完成接口數(shù)據(jù)交換面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降慕y(tǒng)一分布式管理從某種程度上說,面向?qū)ο蟮牟僮飨到y(tǒng)的靈感來自于Microsoft的夢幻操作系統(tǒng) Cairo。

48、由于面向?qū)ο蟮牟僮飨到y(tǒng)實現(xiàn)了Cairo所提出的關(guān)鍵特性 對象文件系統(tǒng), 所以可以在某種意義上被視為Cairo操作系統(tǒng)的一個原型。 面向?qū)ο蟮膶ο笪募到y(tǒng)實際上是一個分布式的持久對象系統(tǒng),該對象文件系統(tǒng)基于一個被稱為Object Connecting Protocol (OCP)的統(tǒng)一分布式持久對象模型,具有能夠把現(xiàn)有的非對象系統(tǒng),例如Web系統(tǒng)、文件系統(tǒng)或分布式文件系統(tǒng)映射進面向?qū)ο蟮牟僮飨到y(tǒng)的對象空間,并提供以分布式持久對象的方式訪問的能力。這樣,訪問本地和網(wǎng)絡(luò)系統(tǒng)中的各種資源都可以以同一種方式 以對象方式進行。因而,可以說面向?qū)ο蟮牟僮飨到y(tǒng)以對象方式實現(xiàn)了對各種資源的統(tǒng)一分布式管理。因而,

49、和現(xiàn)有的一些前沿的分布式對象系統(tǒng)如Virginia大學(xué)的Legion、Berkeley大學(xué)的OceanStore相比,面向?qū)ο蟮膶ο笪募到y(tǒng)所支持的統(tǒng)一分布式管理具有其獨特的優(yōu)勢。從功能上說,面向?qū)ο蟮膶ο笪募到y(tǒng)類似于一個對象數(shù)據(jù)庫管理系統(tǒng)(ODBMS)。但是,和現(xiàn)有的對象數(shù)據(jù)庫如ObjectStore、Jasmine、Objectivity/DB不同的是,面向?qū)ο蟮膶ο笪募到y(tǒng)不強調(diào)數(shù)據(jù)查詢功能,而是著重于提供一個易使用、易擴充、易實現(xiàn)的持久存儲系統(tǒng)架構(gòu),用來替代傳統(tǒng)的文件系統(tǒng)。同時,基于面向?qū)ο蟮膶ο笪募到y(tǒng)架構(gòu),開發(fā)者可以很容易實現(xiàn)更復(fù)雜的分布式持久存儲系統(tǒng)如分布式對象數(shù)據(jù)庫等等。在面

50、向?qū)ο蟛僮飨到y(tǒng)內(nèi),對象應(yīng)被定義成一個尋址保護的基本單位它包括三個部分,即對象名,對象類型,對象狀態(tài),其中對象類型指明對象所屬的類和可允許的操作,對象狀態(tài)是該對象所存儲的數(shù)據(jù)集臺和權(quán)能。系統(tǒng)提供的缺省對象應(yīng)該有:進程、頁、信號量、IO設(shè)備、數(shù)據(jù)、文件等操作系統(tǒng)基本管理功能所管理的對象而且系統(tǒng)應(yīng)提供類型對象來創(chuàng)建一種新的對象類型定義一條原語創(chuàng)建任一對象類型的實例。為了安全起見,所有對象應(yīng)建立對象副本,以便為某一對象在出錯情況下提供糾錯的功能對于用戶而言,用戶只需通過指定對象名的方法提出對指定對象的要求而系統(tǒng)則應(yīng)完成用戶指定的對象名映射到實際物理實體在數(shù)據(jù),過程和處理器受保護的系繞中對象包括了數(shù)據(jù)、

51、過程以及執(zhí)行這些過程的處理器。對象之間的通信要依靠事先協(xié)議來完成,并且處理器還要管理對象內(nèi)部資源。這可以說是一種最體現(xiàn)面向?qū)ο蠹夹g(shù)的系統(tǒng),用戶可以透明地訪問對象。1對象表對象名是用戶任意指定的但從對象名到對象實際物理位置是通過對象表進行的。對象表把對象名與對象的實際物理位置對應(yīng)起來在面向?qū)ο蟛僮飨到y(tǒng)中,整個系統(tǒng)只有張對象表,由對象管理模塊的對象進行管理和訪問控制。當(dāng)對象被操作時,對象表中的內(nèi)容也不斷反復(fù)地復(fù)制,如果一個對象的地址發(fā)生變化所有這些對象的內(nèi)容必須改變以反映新的地址,改變對象地址的一個原因是為了解決內(nèi)存碎片問題。碎片問題一直是操作系統(tǒng)開發(fā)不可避免的同題,一般是利用堆壓縮進行碎片回收,

52、在面向?qū)ο蟛僮飨到y(tǒng)中則表現(xiàn)為在內(nèi)存中重新安排每一對象的位置,而且必須找到并修改對象表中對象的內(nèi)容。2對象環(huán)境系統(tǒng)提供的基本對象組臺成新對象并提供一個面向?qū)ο蟮挠脩舡h(huán)境用戶自定義的對象是利用以進程為中心的對象群組成各種新的對象類型作為用戶接口,對于各種類型的用戶自定義對象,系統(tǒng)內(nèi)應(yīng)有相應(yīng)的管理模塊存在。其次,同一種類型的對象的集臺通過對象成組組合成一個新對象。組對象可看作類的擴張,主要用在對象較多時進行統(tǒng)一的批方式管理對組對象的操作由系統(tǒng)透明地轉(zhuǎn)換為對組對象中各元素的操作。組對象可被用于訪問控制、對象的復(fù)制和移動中。面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫降臉?biāo)準(zhǔn)類以及導(dǎo)出類1.標(biāo)準(zhǔn)類和導(dǎo)出類面向?qū)ο蟛僮飨到y(tǒng)

53、提供標(biāo)準(zhǔn)類及導(dǎo)出類是提供給程序員和軟件開發(fā)組織者可重用的類的集臺。軟件工程師利用標(biāo)準(zhǔn)類可以開發(fā)出自己所需甩的導(dǎo)出類。為了達(dá)到一般操作系統(tǒng)管理功能面向?qū)ο蟛僮飨到y(tǒng)提供存儲管理、進程管理、IO管理、文件管理等功能的類,并形成一般算法管理的類。面向?qū)ο蟛僮飨到y(tǒng)標(biāo)準(zhǔn)類有:進程同步類,進程通信類、進程調(diào)度類、進程控制類,消息處理類,中斷處理類、內(nèi)存處理類、設(shè)備驅(qū)動管理類、數(shù)據(jù)流管理類、對象管理類、文件管理類、用戶接口類等。這些類分層形成面向?qū)ο蟛僮飨到y(tǒng)的系統(tǒng)結(jié)構(gòu),形成一個完整的系統(tǒng)。2.進程管理類進程是操作系統(tǒng)中很重要的概念,進程管理也是操作系統(tǒng)的主要功能之一。在進程管理中引入面向?qū)ο蟮募夹g(shù)是面向?qū)ο蟮?/p>

54、操作系統(tǒng)的一個重要方面。進程管理包括進程控制進程互斥、進程同步,進程通信、進程調(diào)度等幾個方面這里,我們僅對進程控制和進程同步進行說明。進程控制類進程控樹的定義也是分為兩步,協(xié)議描述和實現(xiàn)描述。進程的描述包括進程控制塊FCB,進程上下文等數(shù)據(jù)結(jié)構(gòu),這些信息應(yīng)放在私有部分不允許隨意改動。用于進程控制的操作有:創(chuàng)建進程擴展撤消進程、阻塞進程、喚醒進程。進程同步類:在同步情況下,對象有兩個階段:自運階段和相聯(lián)階段。在自運階段,對象可相互獨立運行,各操作可并行地雍成在相聯(lián)階段,動作可能相互交叉,操作必須接一定次序協(xié)調(diào)進行,這種協(xié)調(diào)即為同步同步一般采用類似信號量的方式進行同步。面向?qū)ο蟛僮飨到y(tǒng)的面向?qū)ο笫?/p>

55、的高可靠高擴充性內(nèi)核現(xiàn)有的商用操作系統(tǒng),如Windows 2000/XP,Linux等等,都是讓驅(qū)動程序等內(nèi)核組件運行在處理器的核心態(tài)模式下。而這些往往由第三方提供的內(nèi)核組件常常會破壞系統(tǒng)的可靠性它們導(dǎo)致的故障會使整個系統(tǒng)崩潰。以Windows XP為例,85%的系統(tǒng)崩潰是由驅(qū)動程序故障所導(dǎo)致的1。與第二代微內(nèi)核(second-generation u-kernel)的思路類似,面向?qū)ο蟮牟僮飨到y(tǒng)的高可靠內(nèi)核幾乎只負(fù)責(zé)進程間通信(Inter-Process Communication,IPC)功能,從而使內(nèi)核的體積減到最小?;谶@個設(shè)計,傳統(tǒng)的內(nèi)核組件如驅(qū)動程序被放在處理器的用戶態(tài)模式下運行,

56、并可以被隔離在不同的地址空間中。這樣,驅(qū)動程序的故障可以和系統(tǒng)其它關(guān)鍵部分隔離,從而大大提高了系統(tǒng)的可靠性(reliability)。面向?qū)ο蟮牟僮飨到y(tǒng)的內(nèi)核設(shè)計具有優(yōu)越的擴充性(extensibility),可與當(dāng)今最先進的內(nèi)核設(shè)計如第二代微內(nèi)核系統(tǒng)L4和Exokernel相媲美。但和L4與Exokernel不同的是,面向?qū)ο蟮牟僮飨到y(tǒng)的內(nèi)核設(shè)計對內(nèi)核特性提供了對象封裝,因而使系統(tǒng)的擴充更容易利用面向?qū)ο笏枷胨鶐淼膬?yōu)勢。面向?qū)ο蟮牟僮飨到y(tǒng)與其他系統(tǒng)的比較面向?qū)ο蟮牟僮飨到y(tǒng)Windows 2000/XPWindow 98LinuxOS/2持久資源管理統(tǒng)一分布式對象管理文件系統(tǒng)、分布式文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)、分布式文件系統(tǒng)文件系統(tǒng)內(nèi)核擴充性第二代微內(nèi)核級的高擴充性內(nèi)核微內(nèi)核傳統(tǒng)內(nèi)核傳統(tǒng)內(nèi)核傳統(tǒng)內(nèi)核內(nèi)核可靠性用戶態(tài)驅(qū)動程序核心態(tài)驅(qū)動程序受限的用戶態(tài)驅(qū)動程序核心態(tài)驅(qū)動程序核心態(tài)驅(qū)動程序核心態(tài)驅(qū)動程序移植性可移植可移植,但受限只適用于i386及后繼型號可移植剪裁性桌面系統(tǒng)剪裁后支持嵌入系統(tǒng)桌面系統(tǒng)桌面系統(tǒng)桌面系統(tǒng)桌面系統(tǒng)并發(fā)支持系統(tǒng)級輕線程內(nèi)核級線程Fiber內(nèi)核級線程Fiber內(nèi)核級線程pthread實時支持實時多任務(wù)分時多任務(wù)分時多任務(wù)分時多任務(wù)分時多任務(wù)結(jié)論最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論