操作系統(tǒng)結構設計課件_第1頁
操作系統(tǒng)結構設計課件_第2頁
操作系統(tǒng)結構設計課件_第3頁
操作系統(tǒng)結構設計課件_第4頁
操作系統(tǒng)結構設計課件_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述14.2傳統(tǒng)結構的操作系統(tǒng)14.3面向?qū)ο蟮某绦蛟O計14.4微內(nèi)核OS結構14.5Windows2000的體系結構第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述114.1操作系統(tǒng)設計概述第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述第十四章操作系統(tǒng)結構設計214.1操作系統(tǒng)設計概述1.操作系統(tǒng)設計面臨的困難

⑴系統(tǒng)龐大:難于理解,無法保證OS是最優(yōu)化的。

⑵系統(tǒng)存在并發(fā)情況:多個進程(含線程)的并發(fā)執(zhí)行,提高了系統(tǒng)的效率,但給OS的設計帶來許多困難。

⑶能在不同的硬件平臺上運行:OS應具有很好的可移植性,但其解決會涉及到因機器的不同而異的硬件情況。

⑷能適應計算機硬件不斷地更新?lián)Q代:OS必須具有很好的可適應性,以適應新產(chǎn)品和更新?lián)Q代產(chǎn)品不斷地推出、應用的需求的迅速變化。

⑸防止用戶的不當行為:OS必須能防范懷有敵意用戶的破壞和盜竊系統(tǒng)中的文件和數(shù)據(jù),防止他們有意干擾系統(tǒng)中其他用戶的正常運行。

⑹兼容以前的操作系統(tǒng):為了保證在老版本環(huán)境下開發(fā)出的軟件,在新OS環(huán)境下也能很好地運行,新的OS版本也應當具有很好的對老版本的兼容性。14.1操作系統(tǒng)設計概述1.操作系統(tǒng)設計面臨的困難32.OS的設計目標

⑴完善的功能:OS所具備的功能,取決于其運行的平臺和環(huán)境,以及應用的需求。

⑵高效性:OS的高效性:①在OS中引入多道程序運行機制,提高系統(tǒng)中各種資源的利用率;②在運行時間的分配方面,應該是用于運行用戶程序的時間盡可能多,而用于系統(tǒng)管理的時間盡可能地減少。

⑶可靠性:①能保證處理結果的正確性;②OS的運行的可靠性。

⑷安全性:OS的安全性是整個系統(tǒng)的基礎。在設計OS時,應設置多道防線,以確保OS的安全性能達到“可信任計算機系統(tǒng)評價標準(TCSEC)”的C2級或更高。

⑸“可移植性”和“可適應性”:為了使OS能方便的運行在各種硬件平臺上,應使OS具有可移植性。在設計OS時,應使與硬件有關的部分相對獨立,并放在緊靠近硬件的位置。14.1操作系統(tǒng)設計概述2.OS的設計目標14.1操作系統(tǒng)設計概述43.OS結構設計簡介

⑴用工程化的方法對操作系統(tǒng)進行開發(fā)★早期OS的規(guī)模很小,OS是否是有結構的并不那么重要?!锏S著OS規(guī)模的愈來愈大,應采用工程化的開發(fā)方法來進行開發(fā)?!镘浖こ痰哪繕耍核_發(fā)出的軟件產(chǎn)品應具有良好的軟件質(zhì)量和合理的費用?!镘浖|(zhì)量的評價指標:功能性、有效性、可靠性、易使用性、可維護性和易移植性等?!镘浖_發(fā)方法:模塊化、結構化、面向數(shù)據(jù)結構、面向?qū)ο蟮姆椒ǖ取!锢貌煌拈_發(fā)方法,所開發(fā)出的操作系統(tǒng)將具有不同的操作系統(tǒng)結構。14.1操作系統(tǒng)設計概述3.OS結構設計簡介14.1操作系統(tǒng)設計概述5

⑵幾種主要的操作系統(tǒng)結構

★OS結構:系統(tǒng)中各部分程序的存在方式及其相互聯(lián)系;

★當前主要存在的操作系統(tǒng)結構:

①無結構:如果OS中各部分,是以最基本的過程形式存在,而且,每個過程都可隨意地調(diào)用其它過程;②模塊化:對OS中各部分經(jīng)過精心的劃分和組合,形成若干個相對獨立的模塊,并為模塊間定義了良好的接口;③分層式:按模塊間的調(diào)用順序,對模塊進行分層,在各層之間只存在單向的依賴關系;④微內(nèi)核:人們集模塊化結構、層次式結構、客戶/服務器模式和面向?qū)ο蠹夹g之長,推出的一種嶄新的OS結構。該OS結構已成為現(xiàn)代OS的主要結構。14.1操作系統(tǒng)設計概述⑵幾種主要的操作系統(tǒng)結構14.1操作系統(tǒng)設計概述6

⑶結構設計的作用為了實現(xiàn)OS的正確性、可維護性、可適應性、可移植性等設計目標,必須經(jīng)過功能設計、算法設計和結構設計三個階段?!锝Y構設計具有獨特的不可被替代的作用;★模塊化結構能較好地保證正確性;★具有模塊化結構的OS,有助于提高系統(tǒng)的“可適應性”和“可移植性”;★分層式結構比模塊化結構能更好的保證操作系統(tǒng)設計目標的實現(xiàn);★微內(nèi)核OS結構,又比分層式結構能更好,也更容易地保證操作系統(tǒng)設計目標的實現(xiàn);

返回14.1操作系統(tǒng)設計概述⑶結構設計的作用返回14.1操作系統(tǒng)設計概述714.2傳統(tǒng)結構的操作系統(tǒng)第十四章操作系統(tǒng)結構設計14.2傳統(tǒng)結構的操作系統(tǒng)第十四章操作系統(tǒng)結構設計814.2傳統(tǒng)結構的操作系統(tǒng)★傳統(tǒng)結構的操作系統(tǒng)第一代:早期的無結構操作系統(tǒng)第二代:模塊化結構的操作系統(tǒng)第三代:分層式結構的操作系統(tǒng)★現(xiàn)代結構的OS微內(nèi)核結構的OS14.2傳統(tǒng)結構的操作系統(tǒng)★傳統(tǒng)結構的操作系統(tǒng)91.無結構操作系統(tǒng)(整體系統(tǒng)結構)

OS并不存在任何結構,只是龐大的一組過程的集合,每個過程可以任意地相互調(diào)用其它過程,致使操作系統(tǒng)內(nèi)部既復雜又混亂。設計者注重實現(xiàn)功能和高效率,缺乏首尾一致的設計思想。程序設計的技巧,表現(xiàn)在如何編制緊湊的程序,以便于有效地利用內(nèi)存。隨著系統(tǒng)的不斷擴大,由于缺乏清晰的程序結構,一方面會使所編制出的程序錯誤很多,給調(diào)試工作帶來很多困難,另一方面也使程序難以閱讀和理解,增加了維護人員的負擔。14.2傳統(tǒng)結構的操作系統(tǒng)1.無結構操作系統(tǒng)(整體系統(tǒng)結構)14.2傳統(tǒng)102.模塊化結構OS

★模塊化程序設計技術的基本概念基于“分解”和“模塊化”原則,對大型軟件的復雜度進行控制。將OS按其功能,精心地劃分為若干個具有一定獨立性和大小的模塊,每個模塊具有某方面的管理功能,并仔細地規(guī)定好各模塊間的接口,使各模塊之間能通過該接口實現(xiàn)交互,然后再進一步多次細分各模塊為子模塊,孫模塊,……。這種設計方法稱為模塊-接口法,由此所構成的就是具有模塊化結構的操作系統(tǒng)。14.2傳統(tǒng)結構的操作系統(tǒng)2.模塊化結構OS14.2傳統(tǒng)結構的操作系統(tǒng)112.模塊化結構OS

★模塊獨立性在模塊-接口法設計方法中,關鍵問題在于模塊的劃分和模塊之間接口的規(guī)定。模塊內(nèi)部的復雜性,以及模塊間交互的復雜性,決定了操作系統(tǒng)的復雜性。在劃分模塊時:

◆模塊劃分的過小,雖然可以降低模塊本身的復雜性,但會引起模塊之間的聯(lián)系過多,從而造成系統(tǒng)比較混亂;

◆模塊劃分的過大,會增加模塊內(nèi)部的復雜性,使內(nèi)部的聯(lián)系增加。在劃分模塊時,應在兩者間進行權衡。2.模塊化結構OS★模塊獨立性122.模塊化結構OS衡量模塊的獨立性有以下兩個標準:

①內(nèi)聚性指模塊內(nèi)部各部分間聯(lián)系的緊密程度。內(nèi)聚性越高,模塊獨立性越強。根據(jù)模塊的內(nèi)聚性,又可把模塊分為五類:

邏輯內(nèi)聚模塊:由若干個相關或相似的“處理”聚合成一個模塊,即該模塊實現(xiàn)一組邏輯相關的任務;

時間內(nèi)聚模塊:由若干個“處理”時間相同的任務,聚合成一個模塊;

過程內(nèi)聚模塊:由若干個相關,且必須按一定邏輯順序處理的任務,聚合成一個模塊;

數(shù)據(jù)內(nèi)聚模塊:由若干個具有基于相同數(shù)據(jù)結構的“處理”聚合成一個模塊;

功能內(nèi)聚模塊:為實現(xiàn)特定單一任務而構成的模塊。以按功能內(nèi)聚所形成模塊的內(nèi)聚性為最好,數(shù)據(jù)內(nèi)聚模塊次之。2.模塊化結構OS衡量模塊的獨立性有以下兩個132.模塊化結構OS②耦合度指模塊間相互聯(lián)系和相互影響的程度。耦合可分為以下三種:

數(shù)據(jù)耦合:模塊間只存在明顯的數(shù)據(jù)傳送關系,即模塊之間是通過調(diào)用關系傳遞被處理的數(shù)據(jù);

控制耦合:模塊之間通過調(diào)用關系不僅傳遞被處理的數(shù)據(jù),而且還傳遞對運行有影響的控制信息;

非法耦合:模塊間彼此直接使用或修改對方的數(shù)據(jù)。上述中的第一種的耦合度較低,應減少第二種耦合,而不允許出現(xiàn)第三種耦合。2.模塊化結構OS14

★模塊接口法的優(yōu)缺點

◆模塊-接口法的優(yōu)點:

①提高OS設計的正確性、可理解性和可維護性。②增強OS的可適應性。③加速OS的開發(fā)過程。

◆模塊化結構設計存在的問題:

①接口規(guī)定困難。②無序性。14.2傳統(tǒng)結構的操作系統(tǒng)★模塊接口法的優(yōu)缺點14.2傳統(tǒng)結構的操作系統(tǒng)153.分層式結構OS

為了將模塊-接口法中“決定順序”的無序性變?yōu)橛行蛐?,引入了有序分層法。分層法的設計任務是,在裸機系統(tǒng)(又稱宿主系統(tǒng))A0和目標系統(tǒng)An和之間,鋪設若干個層次A1,A2,A3,…,An-1,使An通過A1,A2,A3,...層,最終能在A0上運行。14.2傳統(tǒng)結構的操作系統(tǒng)3.分層式結構OS14.2傳統(tǒng)結構的操作系統(tǒng)163.分層式結構OS鋪設這些中間層的方法有以下兩種:

①自底向上的分層

基本原則:每一步設計都是建立在可靠的基礎上。

基本概念:在用這種方法構成的操作系統(tǒng)時,將一個操作系統(tǒng)分為若干個層次,每層又由若干個模塊組成,各層之間只存在著單向的依賴關系,即高層僅依賴于緊鄰它的低層。例如:◆在調(diào)試第一層軟件A1時,由于它使用的是一個完全確定的物理機器(宿主系統(tǒng))所提供的功能,在對第1層A1軟件經(jīng)過精心設計和幾乎是窮盡無遺的測試后,可以認為A1是正確的,而且它將與其所有的高層軟件A2,...,An無關;◆在調(diào)試第二層軟件A2時,它也只使用了軟件A1和物理機器所提供的功能,而與其高層軟件A3,...,An無關,如此一層一層地自底向上增添軟件層,每一層都實現(xiàn)若干功能,最后總能構成一個能滿足需要的OS。

3.分層式結構OS鋪設這些中間層的方法有以下兩種:173.分層式結構OS

②自頂向下的分層

基本概念:

從頂層的目標系統(tǒng)An(總體功能模塊)出發(fā),向下通過若干層,最后過渡到宿主系統(tǒng)A0。為實現(xiàn)An,對An進行第一次細化,由此形成虛機器An-1;由于An-1只是關于模塊的描述,它無法在物理機器上運行,故需對An_1的功能進一步細化,利用更多的子模塊來實現(xiàn)An_1功能,由此形成虛機器An-2;An-2仍然只是有關子模塊的描述而無法運行,需再對An-2進行細化,如此形成An-3,An-4,...,直至產(chǎn)生能在物理機器上運行的程序,即虛機器A1。自頂向下分層法的實質(zhì)是,對目標系統(tǒng)的逐步求精。3.分層式結構OS②自頂向下的分層183.分層式結構OS

③層次的設置

一個操作系統(tǒng)應分為幾個層次,每個層次具有什么功能,各層間的順序應如何確定,是層次式結構設計的關鍵問題。下面列出了在對OS做分層結構設計時,應如何進行分層所必須考慮的幾個因素:

◆程序嵌套:OS層次時,首先需要考慮,將在實現(xiàn)OS每個功能時所形成的程序嵌套模塊,排成有序?qū)哟?;或者按進程間單向發(fā)送信息的順序來分層。

◆可移植性:將那些與硬件緊密相關的軟件,放在最低層,使其緊靠著硬件。

◆運行頻率;將那些經(jīng)?;钴S的模塊放在最接近硬件的A1層。

◆公用模塊:把供多種管理程序調(diào)用的公用模塊,設置在最低層或次低層。

◆用戶接口:用戶與OS的接口都應設置在操作系統(tǒng)的最高層,直接提供給用戶使用。◆在虛擬存儲器環(huán)境下,應將存儲器管理模塊設置在較低的層次中,如A2層。在一般情況下,一個操作系統(tǒng)按照層次結構的原則,從底向上可以被安排為:裸機、與硬件緊密相關的功能、進程和線程的管理、內(nèi)存管理、設備管理、文件管理、作業(yè)管理和命令管理,最上面是用戶。

3.分層式結構OS③層次的設置193.分層式結構OS

④分層結構的優(yōu)缺點

★易保證系統(tǒng)的正確性。由于把一個大型操作系統(tǒng),按照一定的原則,分為若干個功能較為單一的模塊,再進一步將這些模塊,按一定的規(guī)則,組織成層次結構,并使之具有單向依賴關系,這樣就形成了上一層功能是下一層功能的擴充或延伸,下一層功能為上一層功能提供了支撐和基礎,使整個系統(tǒng)中的接口少而清晰。采取自下而上的設計方式,使所有設計中的決定都是有序的,或者說是建立在較為可靠基礎上的,這樣,就比較容易保證整個系統(tǒng)的正確性。

★易擴充和易維護性。在系統(tǒng)中增加、修改或替換一個層次中的模塊或整個層次,只要不改變相應層次間的接口,就不會影響其他層次,這必將使系統(tǒng)維護和擴充變得更加容易。

★系統(tǒng)效率降低。分層結構也存在某些問題,由于層次結構是分層單向依賴的,必須在每層之間都要建立層次間的通信機制,特別是當系統(tǒng)較大、所設層次較多時,OS每執(zhí)行一個功能,通常要自上而下地穿越多個層次,這無疑會增加系統(tǒng)的通信開銷,從而導致系統(tǒng)效率的降低。3.分層式結構OS④分層結構的優(yōu)缺點203.分層式結構OS

⑤層次間的調(diào)用方式

在嚴格的層次結構中,只允許高層中的程序調(diào)用低層中的程序,其調(diào)用方式可有以下三種:

★Ai層次僅能調(diào)用Ai-1層中的程序。由Ai-1層提供的功能將形成Ai層的全部基礎。Ai層只能調(diào)用Ai-1層中的程序,而不能調(diào)用Ai-2,Ai-3,…,A1層中的程序。

★Ai層能調(diào)用所有低層中的程序。Ai層能直接調(diào)用其下面各層所提供的命令,無須逐層傳送。

★Ai層能調(diào)用部分低層中的程序。這是上述兩種方法的一種折衷。例如,除允許Ai層調(diào)用Ai-1層中的程序外,還允許它調(diào)用A1層中的許多公用程序,這樣,Ai層仍是與Ai-2,…,A2層隔離的。3.分層式結構OS⑤層次間的調(diào)用方式2114.3面向?qū)ο蟮某绦蛟O計

第十四章操作系統(tǒng)結構設計14.3面向?qū)ο蟮某绦蛟O計第十四章操作系統(tǒng)結構設計2214.3面向?qū)ο蟮某绦蛟O計

1.面向?qū)ο蠹夹g的引入

★傳統(tǒng)的設計方式的缺陷

⑴在利用面向過程的程序設計技術設計操作系統(tǒng)時,首先要為系統(tǒng)中各種硬件和軟件資源,設計出相應的數(shù)據(jù)結構和一組程序。對于系統(tǒng)中的共享資源,會有許多程序訪問用以描述該資源的數(shù)據(jù)結構。在這些程序中,如果任何一個程序操作出現(xiàn)了錯誤,就可能造成該數(shù)據(jù)結構出錯,此錯誤將會影響到另一個訪問它的程序,并會在系統(tǒng)中不斷擴大,直至整個系統(tǒng)。⑵采用模塊化結構和層次化結構技術設計操作系統(tǒng)時,雖可使發(fā)生錯誤的機會減少,但終難避免。一旦發(fā)生錯誤,該錯誤會通過模塊以及層次之間數(shù)據(jù)的流動,從而進一步影響到其它模塊和層次,同樣可能導致整個系統(tǒng)的破壞。⑶在系統(tǒng)中采用了大量的全局性變量,會很容易被人查看和修改,使系統(tǒng)的安全性受到威脅。

★解決方法引入類和對象的概念。在操作系統(tǒng)中,所謂“類”是指,為一個非共享資源定義一個數(shù)據(jù)結構,以及作用在該數(shù)據(jù)結構上的一組操作等,并將它們封裝起來,稱之為“類程”。并規(guī)定,在類程中的數(shù)據(jù)結構,只能被該類程內(nèi)的一組過程訪問,其它進程要想訪問該類程中的數(shù)據(jù),必需通過該類程方能進行。這樣,在類程中的數(shù)據(jù),也就能得到很好的保護。14.3面向?qū)ο蟮某绦蛟O計1.面向?qū)ο蠹夹g的引入23

2.面向?qū)ο蠹夹g的基本概念

⑴對象

在面向?qū)ο蟮募夹g中,是利用被封裝的數(shù)據(jù)結構(變量),和一組對它進行操作的過程(方法),來表示系統(tǒng)中的某個對象的。

⑵對象類

對一組大體相似的對象進行定義。一個類,定義了一組變量和針對該變量的一組方法,用它們來描述一組對象的共同屬性和行為。在一般情況下,類中的變量沒有具體的值,而只是一個數(shù)據(jù)結構框架。類是在對象上的抽象,對象則是類的實例。對象類中所定義的變量在實例中均有具體的值。

⑶繼承

可以根據(jù)已有類,定義一個新的類。新類被稱為子類,原來的類被稱為父類。子類自動繼承父類中定義的變量和方法,并允許子類再增加新的內(nèi)容。一個父類可以定義多個子類,一個子類有兩個父類或多個父類,它可以從多個父類獲得繼承,此時稱為“多重繼承”。

⑷多態(tài)性

不同對象在收到同一消息后,可以產(chǎn)生完全不同的結果。多態(tài)性是一個非常有用的特性,它允許用戶發(fā)送一通用的消息,而消息的實現(xiàn)細節(jié),則由接收對象自己決定。這樣,同一消息就可以調(diào)用不同的方法;或者說,多態(tài)性可使不同的實現(xiàn)細節(jié),隱藏在不同的接口之下。14.3面向?qū)ο蟮某绦蛟O計2.面向?qū)ο蠹夹g的基本概念14.3面向?qū)ο蟮某绦蛟O24

3.面向?qū)ο蠹夹g的優(yōu)點

⑴通過“重用”提高產(chǎn)品質(zhì)量和生產(chǎn)率

通過“重用”的方法,利用以前項目中經(jīng)過精心測試的對象,或由其他人編寫、測試和維護的對象類,來構建新的系統(tǒng),這不僅可大大降低開發(fā)成本,而且能獲得更好的系統(tǒng)質(zhì)量。

⑵使系統(tǒng)具有更好的易修改性和易擴展性

通過封裝,可隱蔽對象中的變量和方法,當改變對象中的變量和方法時,不會影響到其它部分,從而可方便地修改老的對象類。通過利用繼承特性,在創(chuàng)建一個新對象類時,可顯著減少開發(fā)的時空開銷,使系統(tǒng)具有更好的易擴展性和靈活性。

⑶更易于保證系統(tǒng)的“正確性”和“可靠性”

對象是構成操作系統(tǒng)的基本單元,由于可以獨立地對其進行測試,易于保證每個對象的正確性和可靠性,比較容易保證整個系統(tǒng)的正確性和可靠性。封裝對對象類中的信息進行了隱蔽,這樣又可有效地防止未經(jīng)授權者的訪問和用戶不正確的使用,有助于構建更為安全的系統(tǒng)。返回14.3面向?qū)ο蟮某绦蛟O計3.面向?qū)ο蠹夹g的優(yōu)點返回14.3面向?qū)ο蟮某绦蛟O2514.4微內(nèi)核OS結構第十四章操作系統(tǒng)結構設計14.4微內(nèi)核OS結構第十四章操作系統(tǒng)結構設計2614.4微內(nèi)核OS結構1.微內(nèi)核OS的基本概念

⑴足夠小的內(nèi)核

微內(nèi)核并非是一個完整的OS,而只是放入操作系統(tǒng)中最基本的部分,是經(jīng)過精心設計的、能實現(xiàn)現(xiàn)代OS最基本核心功能的小型內(nèi)核。它與一般的OS(程序)不同,它更小更精煉,不僅運行在核心態(tài),而且開機后常駐內(nèi)存,它不會因內(nèi)存緊張而被換出內(nèi)存。

⑵基于客戶/服務器模式

將操作系統(tǒng)中最基本的部分,放入微內(nèi)核中,而把操作系統(tǒng)的絕大部分功能,都放在微內(nèi)核外面的一組服務器(進程)中實現(xiàn),所有這些服務器,都屬于操作系統(tǒng)的一部分,并作為進程來實現(xiàn)的,但它們都運行在用戶態(tài)。14.4微內(nèi)核OS結構1.微內(nèi)核OS的基本概念27

⑶應用“機制和策略分離”原理

在現(xiàn)在操作系統(tǒng)的結構設計中,經(jīng)常利用“機制與策略”分離的原理,來構造OS結構。

機制:是指在實現(xiàn)某一功能時的具體規(guī)定或說原則。

策略:是在機制的基礎上,借助于某些參數(shù)和算法,用以實現(xiàn)該功能的優(yōu)化,或達到不同的功能目標。在傳統(tǒng)的OS中,將機制放在OS的內(nèi)核的較低層,把策略放在內(nèi)核的較高層次中。在微內(nèi)操作系統(tǒng)中,通常將機制放在OS的微內(nèi)核中。正因如此,才有可能將內(nèi)核做的很小。

⑷采用面向?qū)ο蠹夹g

操作系統(tǒng)是一個極其復雜的大型軟件系統(tǒng),我們不僅可以通過結構設計,分解操作系統(tǒng)的復雜度;還可以基于面向?qū)ο蠹夹g中的“抽象”和“隱蔽”原則,控制系統(tǒng)的復雜性;再進一步利用“對象”、“封裝”和“繼承”等概念,來確保操作系統(tǒng)的“正確性”、“可靠性”、“易修改性”、“易擴展性”等,并提高操作系統(tǒng)的設計速度。14.4微內(nèi)核OS結構⑶應用“機制和策略分離”原理14.4微內(nèi)核OS結構282.微內(nèi)核的基本功能

在不同的微內(nèi)核OS中,微內(nèi)核的大小相差甚多,可達數(shù)十倍。微內(nèi)核所具有的功能,也必然會有明顯的差異。至于哪些功能應放在微內(nèi)核內(nèi),一般基于這樣三個原則:①將與硬件密切相關的功能放入微內(nèi)核中;②根據(jù)“機制與策略”分離的原理,將機制部分放入微內(nèi)核中,將策略部分放入微內(nèi)核外的多個服務器中;③將使用頻率很高的功能,放入微內(nèi)核中。由此可知,微內(nèi)核通常含有如下幾方面的功能:14.4微內(nèi)核OS結構2.微內(nèi)核的基本功能14.4微內(nèi)核OS結構29

⑴進程(線程)管理

在有的操作系統(tǒng)中,將整個進程管理都放在內(nèi)核中,但大多數(shù)的微內(nèi)核OS,進程管理功能的實現(xiàn),都是基于“機制與策略”分離的原理,將機制(基本進程功能)放入微內(nèi)核中。調(diào)度功能的機制部分,應將它放入微內(nèi)核中。用戶(進程)優(yōu)先級的策略屬于策略問題,應將它們于機制分開,可將它們放入微內(nèi)核外的進程(線程)管理服務器中。進程(線程)之間的通信功能是微內(nèi)核OS最基本的功能,被頻繁使用,將進程(線程)之間的通信功能放入微內(nèi)核中。此外,還將進程的切換、線程的調(diào)度,以及多處理機之間的同步等功能,也放入微內(nèi)核中。14.4微內(nèi)核OS結構⑴進程(線程)管理30

⑵低級存儲器管理

通常在微內(nèi)核中,只配置最基本的低級存儲器管理機制。實現(xiàn)虛擬存儲器管理的策略,則放在微內(nèi)核外的存儲器管理服務器中去實現(xiàn)。

⑶中斷和陷入處理

中斷和陷入事件的類型非常多,處理過程也比較復雜,涉及到許多設備驅(qū)動程序和陷入處理程序,因此大多數(shù)微內(nèi)核操作系統(tǒng),都是將與硬件緊密相關的一小部分,放入微內(nèi)核中處理。在傳統(tǒng)的操作系統(tǒng)中,進程管理、存儲器管理以及I/O管理,都是在操作系統(tǒng)的內(nèi)核中實現(xiàn)的。在微內(nèi)核OS中,則是將這些功能一分為二,把其中屬于機制的、很小一部分放入微內(nèi)核中,把其余絕大部分,放在微內(nèi)核外的各種服務器中來實現(xiàn)。事實上,其中大多數(shù)服務器,都要比微內(nèi)核大。這進一步說明了,為什么能在采用客戶/服務器模式后,能把微內(nèi)核做的很小的原因。14.4微內(nèi)核OS結構⑵低級存儲器管理14.4微內(nèi)核OS結構31

3.微內(nèi)核操作系統(tǒng)的優(yōu)點

⑴提高了系統(tǒng)可擴展性

微內(nèi)核OS,幾乎無一例外的都采用了客戶/服務器模式,因此它的許多功能,都是由相對獨立的服務器軟件來實現(xiàn)的。當開發(fā)了新的硬件和軟件時,微內(nèi)核只須在相應的服務器軟件中,增加新的功能,或再增加一個專門的服務器。與提高系統(tǒng)可擴展性的同時,也必然會改善系統(tǒng)的靈活性,不僅可在操作系統(tǒng)中增加新的功能,還可修改原有的功能,以及刪除已過時的老功能,以形成一個更為精干、有效和實用的操作系統(tǒng)。

14.4微內(nèi)核OS結構3.微內(nèi)核操作系統(tǒng)的優(yōu)點14.4微內(nèi)核OS結構32

⑵增強系統(tǒng)的可靠性

微內(nèi)核OS能更進一步增強操作系統(tǒng)的可靠性。其原因可歸結為:①由于微內(nèi)核是出于精心設計和嚴格測試的,容易保證其正確性;②它提供了規(guī)范而精簡的應用程序接口(API),為微內(nèi)核外部的程序,編制高質(zhì)量的代碼創(chuàng)造了條件;③由于所有服務器都是運行在用戶態(tài),它們不能直接訪問硬件。再加上內(nèi)核和服務器之間,采用的是消息傳遞通信機制,因此,當某個服務器出現(xiàn)錯誤時,通常是僅僅影響它自身,不會影響內(nèi)核,也不會影響其它服務器?;蛘哒f,微內(nèi)核結構OS能夠在服務器與內(nèi)核之間,各服務器之間進行有效的隔離。

14.4微內(nèi)核OS結構

⑶可移植性

作為一個好的操作系統(tǒng),必須具備可移植性,使其能較容易地運行在不同的計算機硬件平臺上。由于在微內(nèi)核結構的操作系統(tǒng)中,所有與特定CPU和I/O設備硬件有關的代碼,均放在內(nèi)核和內(nèi)核下面的硬件隱藏層中,而操作系統(tǒng)的其它絕大部分——各種服務器,均與硬件平臺無關。因而,當把操作系統(tǒng)移植到另一個計算機硬件平臺上,僅需做較小的修改。⑵增強系統(tǒng)的可靠性14.4微內(nèi)核OS結構⑶33

⑷提供了對分布式系統(tǒng)的支持

由于在微內(nèi)核OS中,客戶和服務器之間,以及服務器和服務器之間的通信,是采用消息傳遞通信機制,因而可使微內(nèi)核OS能很好的支持分布式系統(tǒng)。事實上,只要在分布式系統(tǒng)中,對于所有的進程和服務器,均賦予唯一的標識符,在微內(nèi)核中再配置一張系統(tǒng)映射表,在進行客戶與服務器通信時,標上發(fā)送進程和接收進程的標識符,微內(nèi)核便可利用系統(tǒng)映射表,將消息發(fā)往目標,而無論目標是駐留在哪臺機器上。

⑸融入了面向?qū)ο蠹夹g

在設計微內(nèi)核OS時,采用了面向?qū)ο蟮募夹g,其中的“封裝”、“繼承”、“對象類”和“多態(tài)性”,以及在對象之間采用消息傳遞機制等,都十分有利于提高系統(tǒng)的“正確性”、“可靠性”、“易修改性”、“易擴展性”等,而且還能顯著地減少開發(fā)系統(tǒng)所付出的開銷。14.4微內(nèi)核OS結構⑷提供了對分布式系統(tǒng)的支持⑸融入了面向?qū)ο蠹?4

4.微內(nèi)核OS存在的問題

由于微內(nèi)核OS的內(nèi)核非常小,也使微內(nèi)核OS具有潛在的缺點。其中最主要的是,它較之早期OS而言,其運行效率有所降低。

效率降低最主要的原因:在完成一次客戶對OS提出的服務請求時,需要利用消息實現(xiàn)多次交互,和進行用戶/內(nèi)核模式和上下文的多次切換。

★在早期的OS中,用戶進程在請求取得OS服務時,一般只需進行兩次上下文的切換:①一次是在執(zhí)行系統(tǒng)調(diào)用后,由用戶態(tài)轉(zhuǎn)向系統(tǒng)態(tài)時;②另一次是在系統(tǒng)完成用戶請求的服務后,由系統(tǒng)態(tài)返回用戶態(tài)時?!镌谖?nèi)核OS中,由于客戶和服務器間、以及服務器和服務器之間的通信,都需通過微內(nèi)核,致使同樣的服務請求,至少需要進行四次上下文切換:①第一次是發(fā)生在客戶發(fā)送請求消息給內(nèi)核,以請求取得某服務器特定的服務時;②第二次是發(fā)生在由內(nèi)核把客戶的請求消息,發(fā)往服務器時;③第三次是當服務器完成客戶請求后,把響應消息發(fā)送到內(nèi)核時;④第四次是在內(nèi)核將響應消息發(fā)送給客戶時。實際情況往往還會引起更多的上下文切換。

14.4微內(nèi)核OS結構4.微內(nèi)核OS存在的問題14.4微內(nèi)核OS結構35

例如,當某個服務器自身尚無能力完成客戶請求,而需要其它服務器的幫助時,如圖所示。其中的文件服務器還需要磁盤服務器的幫助,這時就需要進行8次上下文的切換。

為了改善運行效率,可以重新把一些常用的操作系統(tǒng)基本功能,由服務器移入微內(nèi)核中。這樣,可使客戶對常用操作系統(tǒng)功能的請求,所發(fā)生的用戶/內(nèi)核模式,和上下文的切換的次數(shù),由四次或八次降為兩次。但這又會使微內(nèi)核的容量有明顯的增大。另外,在小型接口定義和適應性方面的優(yōu)點也有所下降、也提高了微內(nèi)核的設計代價。

返回14.4微內(nèi)核OS結構例如,當某個服務器自身尚無能力完成客戶請求,而需要其3614.5Windows2000的體系結構第十四章操作系統(tǒng)結構設計14.5Windows2000的體系結構第十四章操作系統(tǒng)3714.5.1概述14.5.1概述3814.5.2系統(tǒng)核心態(tài)組件

1.硬件抽象層HAL(HardwareAbstractionLayer)

Windows2000的一個重要目標,是能夠讓操作系統(tǒng)跨平臺移植。為此,微軟公司在緊靠硬件的地方,鋪設了一個很小的硬件抽象層HAL,它在通用的硬件命令和響應,與某一特定專用平臺的硬件命令和響應之間,進行映射。將OS中的內(nèi)核,設備驅(qū)動程序以及執(zhí)行體和硬件隔離開,即隱藏機器中的系統(tǒng)總線、中斷控制機構、直接存取訪問控制器及存儲器中的地址映射機構等與硬件有關操作的實現(xiàn)細節(jié),從HAL以上的各層次來看待這些操作都是相同的。當要把操作系統(tǒng)移植到其它的硬件平臺時,通過HAL提供的服務和間接硬件尋址,驅(qū)動程序和內(nèi)核只需做很少的改動。HAL是一個可加載的核心態(tài)模塊HAL.DLL,是運行在計算機硬件平臺上的低級接口。14.5.2系統(tǒng)核心態(tài)組件1.硬件抽象層HAL(3914.5.2系統(tǒng)核心態(tài)組件由于HAL高度依賴于系統(tǒng)中的硬件,因此它必須與系統(tǒng)中裝入的硬件完全匹配。為此,在Windows2000中提供了多種HAL,供在系統(tǒng)安裝時選擇。在這里以一個較常用的HAL為例,來說明其所具有的功能:

①在HAL中,專門為設計驅(qū)動程序的程序員,提供了三對讀/寫寄存器的函數(shù),用于對寄存器進行訪問;②由于在現(xiàn)代計算機中,通常都會有多種總線,如ISA、PIC、SCSI、USB和1394等,因此,需要按某種方式來區(qū)別它們;在HAL中,提供了一種服務,即總線獨立的設備尋址,使驅(qū)動程序可以無須知道該設備是具體連接在什么總線上;③在中斷處理中,同樣也涉及到上述的總線問題,而HAL提供了允許驅(qū)動程序以可移植的方式,將中斷服務例程與中斷聯(lián)系起來,而無須了解中斷向量與總線的對應關系;此外,在HAL中還包括對中斷請求級別的管理;14.5.2系統(tǒng)核心態(tài)組件由于HAL高度依賴于系統(tǒng)4014.5.2系統(tǒng)核心態(tài)組件

④HAL還提供了以設備獨立方式,設置并管理DMA傳輸;⑤以可移植方式,管理時鐘和定時器,時間的最小單位也減小為100ns;⑥為規(guī)范多處理機之間的競爭,在HAL中提供了一種簡單的同步機制—自旋鎖(Spinlock),在任一時刻,只有一個線程能獲得自旋鎖,其它試圖獲得自旋鎖的進程,將一直進行嘗試,直到獲得該鎖;在Windows2000中,自旋鎖用于控制CPU等待其它CPU占用資源的釋放;⑦在HAL中,還有與BIOS對話的功能,用于系統(tǒng)初啟時,去查明系統(tǒng)中,包含了哪些總線和I/O設備,以及它們是如何配置的,HAL將這些信息存入注冊表中。圖14-8示出了某種HAL所具有的功能。14.5.2系統(tǒng)核心態(tài)組件④HAL還提供了以設備4114.5.2系統(tǒng)核心態(tài)組件2.內(nèi)核

位于HAL之上的一層,包含了內(nèi)核和設備驅(qū)動程序。內(nèi)核位于HAL之上,它通過HAL訪問硬件,并和HAL一起,構建一個更為完善的抽象硬件層,使內(nèi)核以上的部分——執(zhí)行體,用C語言編寫的,完全與硬件無關。內(nèi)核自身還有小部分與硬件有關,但大部已做到與硬件無關,仍然是采用C語言編寫的。內(nèi)核的一部分和HAL的大部分,長期駐留在主存,可通過調(diào)整優(yōu)先級,來控制自己是否允許被I/O中斷打斷。在Windows2000內(nèi)核中,提供了一組經(jīng)嚴格定義、且可預測的最基本的功能模塊,作為整個OS工作的基礎。在內(nèi)核中,還有若干個用于控制系統(tǒng)的控制對象,如DPC(DeferredProcedureCall,延遲過程調(diào)用)對象,它用于中斷服務過程中,把對時間要求不嚴格的部分,從時間要求嚴格的部分中分離出來,排成一個DPC隊列,以保證對時間要求嚴格的部分能及時處理。此外還有中斷和異常(事件)處理,多處理機的同步等。14.5.2系統(tǒng)核心態(tài)組件2.內(nèi)核4214.5.2系統(tǒng)核心態(tài)組件3.設備驅(qū)動程序

在Windows2000中,配置的設備驅(qū)動程序,是可加載的核心態(tài)模塊。由于在Windows2000中配置了HAL,使得在Windows2000/XP中的設備驅(qū)動程序,不直接操作硬件,而是調(diào)用HAL的某些部分,來控制硬件的接口。設備驅(qū)動程序包括以下幾類:

①硬件設備驅(qū)動程序,該程序接收面向設備的I/O請求,將用戶的I/O函數(shù)調(diào)用,轉(zhuǎn)換為對特定硬件設備的I/O請求,再通過HAL去讀寫物理設備或網(wǎng)絡;

②文件系統(tǒng)驅(qū)動程序,接受面向文件的I/O請求,并把它們轉(zhuǎn)化為對指定設備的I/O請求;

③過濾器驅(qū)動程序,它截獲I/O請求,并按照特定的要求進行處理,如將要傳送到磁盤的數(shù)據(jù)進行壓縮,或?qū)⒁獋魉偷骄W(wǎng)絡的數(shù)據(jù)進行加密等,并把處理的結果傳送到下一層;

④網(wǎng)絡重定向程序和服務器,一類文件系統(tǒng)驅(qū)動程序,傳輸遠程I/O請求。14.5.2系統(tǒng)核心態(tài)組件3.設備驅(qū)動程序4314.5.2系統(tǒng)核心態(tài)組件4.圖形設備接口Windows32GDI(GraphicsDeviceInterface)

該模塊是用于處理有關窗口和用戶界面的圖形接口。在早期的版本中,它運行在用戶態(tài)。為了提高性能,從WindowsNT4.0開始,該模塊被放入內(nèi)核空間。在GDI中所包括的內(nèi)容非常多,即含有成百上千條對圖形接口的調(diào)用,可分成以下幾大類:

①窗口和打印機的圖像管理的調(diào)用:其中有創(chuàng)建、撤消、管理和使用窗口的菜單、工具欄、對話框和圖標等調(diào)用;②用于處理字體和圖像的調(diào)用:包括處理字體的類型和大小、在屏幕上畫幾何圖形,填充顏色,操作調(diào)色板等;③對多種設備驅(qū)動程序的調(diào)用:如對鍵盤、鼠標、音頻輸入/輸出、打印機輸出程序的調(diào)用等。14.5.2系統(tǒng)核心態(tài)組件4.圖形設備接口Wind4414.5.3執(zhí)行體

在執(zhí)行體中提供了許多功能各異的模塊,如下所述:1.I/O管理模塊

用于處理系統(tǒng)中的所有I/O請求,并提供所有類型驅(qū)動程序調(diào)用的統(tǒng)一接口。執(zhí)行獨立于設備的輸入/輸出,并為進一步的處理,分配適當?shù)脑O備驅(qū)動程序。該模塊又包括以下幾個子模塊:文件系統(tǒng)驅(qū)動程序、網(wǎng)絡驅(qū)動程序以及硬件設備驅(qū)動程序等。2.虛擬內(nèi)存管理器

該模塊用于實現(xiàn)內(nèi)存分配(和回收)和“虛擬內(nèi)存”功能,把進程地址空間中的虛地址,映射成內(nèi)存頁框,從而為每個進程,提供了一個大的專用地址空間。同時保護每個進程的地址空間,不被其他進程占用。在Windows2000中,允許頁面大小從4KB到64KB,以適應不同機器的需要。Windows2000的虛存管理器,還可在各種平臺的機器上,運行內(nèi)存管理器,也為高速緩存管理器提供基本的支持。14.5.3執(zhí)行體在執(zhí)行體中提供了許多功能各異的4514.5.3執(zhí)行體3.對象管理器

它以一致的方法,創(chuàng)建和管理以及刪除所有類型的對象,為對象的保持、命名和安全性設置,實施統(tǒng)一的規(guī)則。由它代表應用程序,創(chuàng)建和銷毀對象。當創(chuàng)建一對象后,將向應用程序返回代表該新對象的一個句柄。4.進程/線程管理器

該模塊可用于創(chuàng)建一個新的進程對象及其主線程,使之執(zhí)行指定操作。同時也指定它繼承其父進程的屬性。能終止一個進程和它所有的線程,使之退出系統(tǒng)。此外,還可對進程和線程對象實施跟蹤,以了解其運行情況。5.安全引用監(jiān)控器

在Windows2000中,提供了一種統(tǒng)一的訪問控制機制,該機制利用與每個進程相關聯(lián)的“訪問令牌”,和與每個對象相關聯(lián)的“安全描述符”這兩個訪問控制實體,來保障諸進程之間的訪問,執(zhí)行運行時對象的保護和監(jiān)視。該機制適用于諸如進程、線程、文件、I/O設備、窗口和其它許多對象。14.5.3執(zhí)行體3.對象管理器4614.5.3執(zhí)行體6.高速緩存管理器

在Windows2000中,有一個單獨的高速緩存,它適應于FAT16,F(xiàn)AT32和NTFS等文件系統(tǒng)。高速緩存管理器在主存中,為所有文件系統(tǒng)和網(wǎng)絡,提供高速緩存服務。其主要任務是,在內(nèi)存中,記住最近使用過的文件盤塊號,以便加速隨后對該盤塊訪問的速度。

7.即插即用(PlusandPlay)管理器

簡稱PnP管理器,它用于提供對計算機系統(tǒng)中硬件配置的改變進行識別的功能,并兼有去適應硬件配置改變的能力。例如,當發(fā)現(xiàn)系統(tǒng)增加一新硬件時,它便為該硬件加載相應的設備驅(qū)動程序,以使用戶能正確的使用該硬件。8.電源管理器

在Windows2000中,可根據(jù)電源能源的消耗情況,將電源分為六個狀態(tài),即S0,S1,S2,S3,S4及S5狀態(tài)。其中S0狀態(tài),相當于耗能最大的正常工作狀態(tài),S1狀態(tài)的耗能>S2狀態(tài)的耗能,而S5為關機狀態(tài)。電源管理器根據(jù)系統(tǒng)活動的情況,和控制面板電源開關的設置及系統(tǒng)電源情況等因素,去決定電源應處于哪種狀態(tài)。14.5.3執(zhí)行體6.高速緩存管理器4714.5.3執(zhí)行體9.本地過程調(diào)用LPC(LocalProcedureCall)機制

在網(wǎng)絡和分布式環(huán)境下,客戶和服務器之間的通信,廣泛采用遠程過程調(diào)用RPC機制,在Windows2000的單機環(huán)境下,采用了類似于RPC方式,但經(jīng)過優(yōu)化、效率更高的本地過程調(diào)用IPC(LocalProcedureCall)方法,來實現(xiàn)同一機器中的應用進程(客戶),與執(zhí)行系統(tǒng)(服務器)之間的通信。LPC是一個基于連接的通信機制,為不同地址空間內(nèi)的兩個線程,提供一種高速交換信息的方法,可利用建立的連接,將數(shù)據(jù)從一個線程的地址空間,傳送到另一線程的地址空間。

14.5.3執(zhí)行體9.本地過程調(diào)用LPC(Loc4814.5.4用戶態(tài)進程1.系統(tǒng)支持進程

在Windows2000中,包括了如下多個系統(tǒng)支持進程:

①系統(tǒng)空閑進程Idle,在系統(tǒng)中設有一個Idle進程,對于每個CPU,Idle進程都配置有一個相應的線程,用于統(tǒng)計相應CPU的空閑時間;

②System進程和System線程,是特殊類型的System線程的宿主進程,用于執(zhí)行加載于系統(tǒng)空間中的代碼;

③會話管理器SMSS,是第一個由核心System線程創(chuàng)建的用戶態(tài)進程,用于執(zhí)行一些關鍵的系統(tǒng)初始化步驟,設置系統(tǒng)環(huán)境變量、加載部分系統(tǒng)程序等;

④WIN32子系統(tǒng)CSRSS,它是WIN32API子系統(tǒng)的核心部分,關于WIN32API將在本小節(jié)后面介紹;

⑤登錄進程WinLogon,用于處理用戶登錄和注銷;

⑥本地安全身份鑒別服務器進程LSASS,接收來自于WinLogon進程的身份驗證請求,并執(zhí)行實際驗證。14.5.4用戶態(tài)進程1.系統(tǒng)支持進程4914.5.4用戶態(tài)進程2.服務進程

服務進程負責啟動、停止和與服務控制器交互,并管理對一系列用戶態(tài)進程的服務。例如,注冊、啟動、響應狀態(tài)請求、暫?;蜿P閉服務。一些Windows2000組件,是作為服務來實現(xiàn)的,例如事件日志、假脫機、RPC支持等。

14.5.4用戶態(tài)進程2.服務進程5014.5.4用戶態(tài)進程3.環(huán)境子系統(tǒng)

環(huán)境子系統(tǒng)的作用,是將基本執(zhí)行體中的某些服務,提供給應用程序,為它們提供運行環(huán)境,這是Windows操作系統(tǒng)實現(xiàn)與其它軟件系統(tǒng),如DOS、Windows、OS/2、LANManager和符合POSIX規(guī)范的UNIX相兼容的重要組成部分。由于在環(huán)境子系統(tǒng)的支持下,可以運行在其它操作系統(tǒng)環(huán)境下開發(fā)的程序,因此環(huán)境子系統(tǒng)又稱為虛擬機。Windows2000具有三個環(huán)境子系統(tǒng):WIN32API、POSIX和OS/21.2。其中,Win32子系統(tǒng)一直處于活動狀態(tài),而其它兩個子系統(tǒng),僅當需要時才被啟動。

14.5.4用戶態(tài)進程3.環(huán)境子系統(tǒng)513.環(huán)境子系統(tǒng)★WIN32API(ApplicationProgrammingInterface)

在Windows2000中,定義了應用程序接口WIN32API,程序員通過WIN32API就能取得操作系統(tǒng)的服務。WIN32API調(diào)用的數(shù)量非常多,且在不斷增加。其功能覆蓋了操作系統(tǒng)能夠處理的各個方面。WIN32API允許程序運行在幾乎所有的Windows操作系統(tǒng)上,如圖14-9所示,只是其中的Windows3.X需要把一部分32位的API映射到16位的操作系統(tǒng)上。3.環(huán)境子系統(tǒng)★WIN32API(Applicat523.環(huán)境子系統(tǒng)★POSIX標準

由于在不同的操作系統(tǒng)所提供的系統(tǒng)調(diào)用間,存在很大的差異,使應用軟件難于跨平臺應用,而POSIX正是用于解決該問題的一個標準。它為不同平臺下的應用程序,提供了相同的API。事實上,一個應用程序只要符合POSIX標準,就能在UNIX和Windows這兩個操作系統(tǒng)上運行。POSIX大約有100個過程調(diào)用,可分為四類:進程管理、文件管理、目錄管理和其它類?!颫S/21.2

1984年Intel公司推出了80286處理器芯片,IBM和微軟公司為它開發(fā)了OS/2操作系統(tǒng),后來又為80386開發(fā)了OS/22.2操作系統(tǒng)。環(huán)境子系統(tǒng)OS/2,也為OS/2的應用程序提供了支持。

3.環(huán)境子系統(tǒng)★POSIX標準534.用戶應用程序

用戶應用程序可以是WIN32、Windows3.1、MS-DOS、POSIX或OS/2五種類型之一。在Windows2000中,用戶應用程序(服務進程也是這樣)不能直接調(diào)用本地Windows2000操作系統(tǒng)服務,但它們能通過一個或多個“子系統(tǒng)動態(tài)鏈接庫”調(diào)用。子系統(tǒng)動態(tài)鏈接庫的作用,是將公開的調(diào)用接口,轉(zhuǎn)換為適當?shù)南到y(tǒng)內(nèi)部形式的Windows2000系統(tǒng)服務調(diào)用。14.5.4用戶態(tài)進程返回4.用戶應用程序14.5.4用戶態(tài)進程返回54TheEndTheEnd55第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述14.2傳統(tǒng)結構的操作系統(tǒng)14.3面向?qū)ο蟮某绦蛟O計14.4微內(nèi)核OS結構14.5Windows2000的體系結構第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述5614.1操作系統(tǒng)設計概述第十四章操作系統(tǒng)結構設計14.1操作系統(tǒng)設計概述第十四章操作系統(tǒng)結構設計5714.1操作系統(tǒng)設計概述1.操作系統(tǒng)設計面臨的困難

⑴系統(tǒng)龐大:難于理解,無法保證OS是最優(yōu)化的。

⑵系統(tǒng)存在并發(fā)情況:多個進程(含線程)的并發(fā)執(zhí)行,提高了系統(tǒng)的效率,但給OS的設計帶來許多困難。

⑶能在不同的硬件平臺上運行:OS應具有很好的可移植性,但其解決會涉及到因機器的不同而異的硬件情況。

⑷能適應計算機硬件不斷地更新?lián)Q代:OS必須具有很好的可適應性,以適應新產(chǎn)品和更新?lián)Q代產(chǎn)品不斷地推出、應用的需求的迅速變化。

⑸防止用戶的不當行為:OS必須能防范懷有敵意用戶的破壞和盜竊系統(tǒng)中的文件和數(shù)據(jù),防止他們有意干擾系統(tǒng)中其他用戶的正常運行。

⑹兼容以前的操作系統(tǒng):為了保證在老版本環(huán)境下開發(fā)出的軟件,在新OS環(huán)境下也能很好地運行,新的OS版本也應當具有很好的對老版本的兼容性。14.1操作系統(tǒng)設計概述1.操作系統(tǒng)設計面臨的困難582.OS的設計目標

⑴完善的功能:OS所具備的功能,取決于其運行的平臺和環(huán)境,以及應用的需求。

⑵高效性:OS的高效性:①在OS中引入多道程序運行機制,提高系統(tǒng)中各種資源的利用率;②在運行時間的分配方面,應該是用于運行用戶程序的時間盡可能多,而用于系統(tǒng)管理的時間盡可能地減少。

⑶可靠性:①能保證處理結果的正確性;②OS的運行的可靠性。

⑷安全性:OS的安全性是整個系統(tǒng)的基礎。在設計OS時,應設置多道防線,以確保OS的安全性能達到“可信任計算機系統(tǒng)評價標準(TCSEC)”的C2級或更高。

⑸“可移植性”和“可適應性”:為了使OS能方便的運行在各種硬件平臺上,應使OS具有可移植性。在設計OS時,應使與硬件有關的部分相對獨立,并放在緊靠近硬件的位置。14.1操作系統(tǒng)設計概述2.OS的設計目標14.1操作系統(tǒng)設計概述593.OS結構設計簡介

⑴用工程化的方法對操作系統(tǒng)進行開發(fā)★早期OS的規(guī)模很小,OS是否是有結構的并不那么重要?!锏S著OS規(guī)模的愈來愈大,應采用工程化的開發(fā)方法來進行開發(fā)。★軟件工程的目標:所開發(fā)出的軟件產(chǎn)品應具有良好的軟件質(zhì)量和合理的費用?!镘浖|(zhì)量的評價指標:功能性、有效性、可靠性、易使用性、可維護性和易移植性等?!镘浖_發(fā)方法:模塊化、結構化、面向數(shù)據(jù)結構、面向?qū)ο蟮姆椒ǖ取!锢貌煌拈_發(fā)方法,所開發(fā)出的操作系統(tǒng)將具有不同的操作系統(tǒng)結構。14.1操作系統(tǒng)設計概述3.OS結構設計簡介14.1操作系統(tǒng)設計概述60

⑵幾種主要的操作系統(tǒng)結構

★OS結構:系統(tǒng)中各部分程序的存在方式及其相互聯(lián)系;

★當前主要存在的操作系統(tǒng)結構:

①無結構:如果OS中各部分,是以最基本的過程形式存在,而且,每個過程都可隨意地調(diào)用其它過程;②模塊化:對OS中各部分經(jīng)過精心的劃分和組合,形成若干個相對獨立的模塊,并為模塊間定義了良好的接口;③分層式:按模塊間的調(diào)用順序,對模塊進行分層,在各層之間只存在單向的依賴關系;④微內(nèi)核:人們集模塊化結構、層次式結構、客戶/服務器模式和面向?qū)ο蠹夹g之長,推出的一種嶄新的OS結構。該OS結構已成為現(xiàn)代OS的主要結構。14.1操作系統(tǒng)設計概述⑵幾種主要的操作系統(tǒng)結構14.1操作系統(tǒng)設計概述61

⑶結構設計的作用為了實現(xiàn)OS的正確性、可維護性、可適應性、可移植性等設計目標,必須經(jīng)過功能設計、算法設計和結構設計三個階段?!锝Y構設計具有獨特的不可被替代的作用;★模塊化結構能較好地保證正確性;★具有模塊化結構的OS,有助于提高系統(tǒng)的“可適應性”和“可移植性”;★分層式結構比模塊化結構能更好的保證操作系統(tǒng)設計目標的實現(xiàn);★微內(nèi)核OS結構,又比分層式結構能更好,也更容易地保證操作系統(tǒng)設計目標的實現(xiàn);

返回14.1操作系統(tǒng)設計概述⑶結構設計的作用返回14.1操作系統(tǒng)設計概述6214.2傳統(tǒng)結構的操作系統(tǒng)第十四章操作系統(tǒng)結構設計14.2傳統(tǒng)結構的操作系統(tǒng)第十四章操作系統(tǒng)結構設計6314.2傳統(tǒng)結構的操作系統(tǒng)★傳統(tǒng)結構的操作系統(tǒng)第一代:早期的無結構操作系統(tǒng)第二代:模塊化結構的操作系統(tǒng)第三代:分層式結構的操作系統(tǒng)★現(xiàn)代結構的OS微內(nèi)核結構的OS14.2傳統(tǒng)結構的操作系統(tǒng)★傳統(tǒng)結構的操作系統(tǒng)641.無結構操作系統(tǒng)(整體系統(tǒng)結構)

OS并不存在任何結構,只是龐大的一組過程的集合,每個過程可以任意地相互調(diào)用其它過程,致使操作系統(tǒng)內(nèi)部既復雜又混亂。設計者注重實現(xiàn)功能和高效率,缺乏首尾一致的設計思想。程序設計的技巧,表現(xiàn)在如何編制緊湊的程序,以便于有效地利用內(nèi)存。隨著系統(tǒng)的不斷擴大,由于缺乏清晰的程序結構,一方面會使所編制出的程序錯誤很多,給調(diào)試工作帶來很多困難,另一方面也使程序難以閱讀和理解,增加了維護人員的負擔。14.2傳統(tǒng)結構的操作系統(tǒng)1.無結構操作系統(tǒng)(整體系統(tǒng)結構)14.2傳統(tǒng)652.模塊化結構OS

★模塊化程序設計技術的基本概念基于“分解”和“模塊化”原則,對大型軟件的復雜度進行控制。將OS按其功能,精心地劃分為若干個具有一定獨立性和大小的模塊,每個模塊具有某方面的管理功能,并仔細地規(guī)定好各模塊間的接口,使各模塊之間能通過該接口實現(xiàn)交互,然后再進一步多次細分各模塊為子模塊,孫模塊,……。這種設計方法稱為模塊-接口法,由此所構成的就是具有模塊化結構的操作系統(tǒng)。14.2傳統(tǒng)結構的操作系統(tǒng)2.模塊化結構OS14.2傳統(tǒng)結構的操作系統(tǒng)662.模塊化結構OS

★模塊獨立性在模塊-接口法設計方法中,關鍵問題在于模塊的劃分和模塊之間接口的規(guī)定。模塊內(nèi)部的復雜性,以及模塊間交互的復雜性,決定了操作系統(tǒng)的復雜性。在劃分模塊時:

◆模塊劃分的過小,雖然可以降低模塊本身的復雜性,但會引起模塊之間的聯(lián)系過多,從而造成系統(tǒng)比較混亂;

◆模塊劃分的過大,會增加模塊內(nèi)部的復雜性,使內(nèi)部的聯(lián)系增加。在劃分模塊時,應在兩者間進行權衡。2.模塊化結構OS★模塊獨立性672.模塊化結構OS衡量模塊的獨立性有以下兩個標準:

①內(nèi)聚性指模塊內(nèi)部各部分間聯(lián)系的緊密程度。內(nèi)聚性越高,模塊獨立性越強。根據(jù)模塊的內(nèi)聚性,又可把模塊分為五類:

邏輯內(nèi)聚模塊:由若干個相關或相似的“處理”聚合成一個模塊,即該模塊實現(xiàn)一組邏輯相關的任務;

時間內(nèi)聚模塊:由若干個“處理”時間相同的任務,聚合成一個模塊;

過程內(nèi)聚模塊:由若干個相關,且必須按一定邏輯順序處理的任務,聚合成一個模塊;

數(shù)據(jù)內(nèi)聚模塊:由若干個具有基于相同數(shù)據(jù)結構的“處理”聚合成一個模塊;

功能內(nèi)聚模塊:為實現(xiàn)特定單一任務而構成的模塊。以按功能內(nèi)聚所形成模塊的內(nèi)聚性為最好,數(shù)據(jù)內(nèi)聚模塊次之。2.模塊化結構OS衡量模塊的獨立性有以下兩個682.模塊化結構OS②耦合度指模塊間相互聯(lián)系和相互影響的程度。耦合可分為以下三種:

數(shù)據(jù)耦合:模塊間只存在明顯的數(shù)據(jù)傳送關系,即模塊之間是通過調(diào)用關系傳遞被處理的數(shù)據(jù);

控制耦合:模塊之間通過調(diào)用關系不僅傳遞被處理的數(shù)據(jù),而且還傳遞對運行有影響的控制信息;

非法耦合:模塊間彼此直接使用或修改對方的數(shù)據(jù)。上述中的第一種的耦合度較低,應減少第二種耦合,而不允許出現(xiàn)第三種耦合。2.模塊化結構OS69

★模塊接口法的優(yōu)缺點

◆模塊-接口法的優(yōu)點:

①提高OS設計的正確性、可理解性和可維護性。②增強OS的可適應性。③加速OS的開發(fā)過程。

◆模塊化結構設計存在的問題:

①接口規(guī)定困難。②無序性。14.2傳統(tǒng)結構的操作系統(tǒng)★模塊接口法的優(yōu)缺點14.2傳統(tǒng)結構的操作系統(tǒng)703.分層式結構OS

為了將模塊-接口法中“決定順序”的無序性變?yōu)橛行蛐?,引入了有序分層法。分層法的設計任務是,在裸機系統(tǒng)(又稱宿主系統(tǒng))A0和目標系統(tǒng)An和之間,鋪設若干個層次A1,A2,A3,…,An-1,使An通過A1,A2,A3,...層,最終能在A0上運行。14.2傳統(tǒng)結構的操作系統(tǒng)3.分層式結構OS14.2傳統(tǒng)結構的操作系統(tǒng)713.分層式結構OS鋪設這些中間層的方法有以下兩種:

①自底向上的分層

基本原則:每一步設計都是建立在可靠的基礎上。

基本概念:在用這種方法構成的操作系統(tǒng)時,將一個操作系統(tǒng)分為若干個層次,每層又由若干個模塊組成,各層之間只存在著單向的依賴關系,即高層僅依賴于緊鄰它的低層。例如:◆在調(diào)試第一層軟件A1時,由于它使用的是一個完全確定的物理機器(宿主系統(tǒng))所提供的功能,在對第1層A1軟件經(jīng)過精心設計和幾乎是窮盡無遺的測試后,可以認為A1是正確的,而且它將與其所有的高層軟件A2,...,An無關;◆在調(diào)試第二層軟件A2時,它也只使用了軟件A1和物理機器所提供的功能,而與其高層軟件A3,...,An無關,如此一層一層地自底向上增添軟件層,每一層都實現(xiàn)若干功能,最后總能構成一個能滿足需要的OS。

3.分層式結構OS鋪設這些中間層的方法有以下兩種:723.分層式結構OS

②自頂向下的分層

基本概念:

從頂層的目標系統(tǒng)An(總體功能模塊)出發(fā),向下通過若干層,最后過渡到宿主系統(tǒng)A0。為實現(xiàn)An,對An進行第一次細化,由此形成虛機器An-1;由于An-1只是關于模塊的描述,它無法在物理機器上運行,故需對An_1的功能進一步細化,利用更多的子模塊來實現(xiàn)An_1功能,由此形成虛機器An-2;An-2仍然只是有關子模塊的描述而無法運行,需再對An-2進行細化,如此形成An-3,An-4,...,直至產(chǎn)生能在物理機器上運行的程序,即虛機器A1。自頂向下分層法的實質(zhì)是,對目標系統(tǒng)的逐步求精。3.分層式結構OS②自頂向下的分層733.分層式結構OS

③層次的設置

一個操作系統(tǒng)應分為幾個層次,每個層次具有什么功能,各層間的順序應如何確定,是層次式結構設計的關鍵問題。下面列出了在對OS做分層結構設計時,應如何進行分層所必須考慮的幾個因素:

◆程序嵌套:OS層次時,首先需要考慮,將在實現(xiàn)OS每個功能時所形成的程序嵌套模塊,排成有序?qū)哟?;或者按進程間單向發(fā)送信息的順序來分層。

◆可移植性:將那些與硬件緊密相關的軟件,放在最低層,使其緊靠著硬件。

◆運行頻率;將那些經(jīng)?;钴S的模塊放在最接近硬件的A1層。

◆公用模塊:把供多種管理程序調(diào)用的公用模塊,設置在最低層或次低層。

◆用戶接口:用戶與OS的接口都應設置在操作系統(tǒng)的最高層,直接提供給用戶使用?!粼谔摂M存儲器環(huán)境下,應將存儲器管理模塊設置在較低的層次中,如A2層。在一般情況下,一個操作系統(tǒng)按照層次結構的原則,從底向上可以被安排為:裸機、與硬件緊密相關的功能、進程和線程的管理、內(nèi)存管理、設備管理、文件管理、作業(yè)管理和命令管理,最上面是用戶。

3.分層式結構OS③層次的設置743.分層式結構OS

④分層結構的優(yōu)缺點

★易保證系統(tǒng)的正確性。由于把一個大型操作系統(tǒng),按照一定的原則,分為若干個功能較為單一的模塊,再進一步將這些模塊,按一定的規(guī)則,組織成層次結構,并使之具有單向依賴關系,這樣就形成了上一層功能是下一層功能的擴充或延伸,下一層功能為上一層功能提供了支撐和基礎,使整個系統(tǒng)中的接口少而清晰。采取自下而上的設計方式,使所有設計中的決定都是有序的,或者說是建立在較為可靠基礎上的,這樣,就比較容易保證整個系統(tǒng)的正確性。

★易擴充和易維護性。在系統(tǒng)中增加、修改或替換一個層次中的模塊或整個層次,只要不改變相應層次間的接口,就不會影響其他層次,這必將使系統(tǒng)維護和擴充變得更加容易。

★系統(tǒng)效率降低。分層結構也存在某些問題,由于層次結構是分層單向依賴的,必須在每層之間都要建立層次間的通信機制,特別是當系統(tǒng)較大、所設層次較多時,OS每執(zhí)行一個功能,通常要自上而下地穿越多個層次,這無疑會增加系統(tǒng)的通信開銷,從而導致系統(tǒng)效率的降低。3.分層式結構OS④分層結構的優(yōu)缺點753.分層式結構OS

⑤層次間的調(diào)用方式

在嚴格的層次結構中,只允許高層中的程序調(diào)用低層中的程序,其調(diào)用方式可有以下三種:

★Ai層次僅能調(diào)用Ai-1層中的程序。由Ai-1層提供的功能將形成Ai層的全部基礎。Ai層只能調(diào)用Ai-1層中的程序,而不能調(diào)用Ai-2,Ai-3,…,A1層中的程序。

★Ai層能調(diào)用所有低層中的程序。Ai層能直接調(diào)用其下面各層所提供的命令,無須逐層傳送。

★Ai層能調(diào)用部分低層中的程序。這是上述兩種方法的一種折衷。例如,除允許Ai層調(diào)用Ai-1層中的程序外,還允許它調(diào)用A1層中的許多公用程序,這樣,Ai層仍是與Ai-2,…,A2層隔離的。3.分層式結構OS⑤層次間的調(diào)用方式7614.3面向?qū)ο蟮某绦蛟O計

第十四章操作系統(tǒng)結構設計14.3面向?qū)ο蟮某绦蛟O計第十四章操作系統(tǒng)結構設計7714.3面向?qū)ο蟮某绦蛟O計

1.面向?qū)ο蠹夹g的引入

★傳統(tǒng)的設計方式的缺陷

⑴在利用面向過程的程序設計技術設計操作系統(tǒng)時,首先要為系統(tǒng)中各種硬件和軟件資源,設計出相應的數(shù)據(jù)結構和一組程序。對于系統(tǒng)中的共享資源,會有許多程序訪問用以描述該資源的數(shù)據(jù)結構。在這些程序中,如果任何一個程序操作出現(xiàn)了錯誤,就可能造成該數(shù)據(jù)結構出錯,此錯誤將會影響到另一個訪問它的程序,并會在系統(tǒng)中不斷擴大,直至整個系統(tǒng)。⑵采用模塊化結構和層次化結構技術設計操作系統(tǒng)時,雖可使發(fā)生錯誤的機會減少,但終難避免。一旦發(fā)生錯誤,該錯誤會通過模塊以及層次之間數(shù)據(jù)的流動,從而進一步影響到其它模塊和層次,同樣可能導致整個系統(tǒng)的破壞。⑶在系統(tǒng)中采用了大量的全局性變量,會很容易被人查看和修改,使系統(tǒng)的安全性受到威脅。

★解決方法引入類和對象的概念。在操作系統(tǒng)中,所謂“類”是指,為一個非共享資源定義一個數(shù)據(jù)結構,以及作用在該數(shù)據(jù)結構上的一組操作等,并將它們封裝起來,稱之為“類程”。并規(guī)定,在類程中的數(shù)據(jù)結構,只能被該類程內(nèi)的一組過程訪問,其它進程要想訪問該類程中的數(shù)據(jù),必需通過該類程方能進行。這樣,在類程中的數(shù)據(jù),也就能得到很好的保護。14.3面向?qū)ο蟮某绦蛟O計1.面向?qū)ο蠹夹g的引入78

2.面向?qū)ο蠹夹g的基本概念

⑴對象

在面向?qū)ο蟮募夹g中,是利用被封裝的數(shù)據(jù)結構(變量),和一組對它進行操作的過程(方法),來表示系統(tǒng)中的某個對象的。

⑵對象類

對一組大體相似的對象進行定義。一個類,定義了一組變量和針對該變量的一組方法,用它們來描述一組對象的共同屬性和行為。在一般情況下,類中的變量沒有具體的值,而只是一個數(shù)據(jù)結構框架。類是在對象上的抽象,對象則是類的實例。對象類中所定義的變量在實例中均有具體的值。

⑶繼承

可以根據(jù)已有類,定義一個新的類。新類被稱為子類,原來的類被稱為父類。子類自動繼承父類中定義的變量和方法,并允許子類再增加新的內(nèi)容。一個父類可以定義多個子類,一個子類有兩個父類或多個父類,它可以從多個父類獲得繼承,此時稱為“多重繼承”。

⑷多態(tài)性

不同對象在收到同一消息后,可以產(chǎn)生完全不同的結果。多態(tài)性是一個非常有用的特性,它允許用戶發(fā)送一通用的消息,而消息的實現(xiàn)細節(jié),則由接收對象自己決定。這樣,同一消息就可以調(diào)用不同的方法;或者說,多態(tài)性可使不同的實現(xiàn)細節(jié),隱藏在不同的接口之下。14.3面向?qū)ο蟮某绦蛟O計2.面向?qū)ο蠹夹g的基本概念14.3面向?qū)ο蟮某绦蛟O79

3.面向?qū)ο蠹夹g的優(yōu)點

⑴通過“重用”提高產(chǎn)品質(zhì)量和生產(chǎn)率

通過“重用”的方法,利用以前項目中經(jīng)過精心測試的對象,或由其他人編寫、測試和維護的對象類,來構建新的系統(tǒng),這不僅可大大降低開發(fā)成本,而且能獲得更好的系統(tǒng)質(zhì)量。

⑵使系統(tǒng)具有更好的易修改性和易擴展性

通過封裝,可隱蔽對象中的變量和方法,當改變對象中的變量和方法時,不會影響到其它部分,從而可方便地修改老的對象類。通過利用繼承特性,在創(chuàng)建一個新對象類時,可顯著減少開發(fā)的時空開銷,使系統(tǒng)具有更好的易擴展性和靈活性。

⑶更易于保證系統(tǒng)的“正確性”和“可靠性”

對象是構成操作系統(tǒng)的基本單元,由于可以獨立地對其進行測試,易于保證每個對象的正確性和可靠性,比較容易保證整個系統(tǒng)的正確性和可靠性。封裝對對象類中的信息進行了隱蔽,這樣又可有效地防止未經(jīng)授權者的訪問和用戶不正確的使用,有助于構建更為安全的系統(tǒng)。返回14.3面向?qū)ο蟮某绦蛟O計3.面向?qū)ο蠹夹g的優(yōu)點返回14.3面向?qū)ο蟮某绦蛟O8014.4微內(nèi)核OS結構第十四章操作系統(tǒng)結構設計14.4微內(nèi)核OS結構第十四章操作系統(tǒng)結構設計8114.4微內(nèi)核OS結構1.微內(nèi)核OS的基本概念

⑴足夠小的內(nèi)核

微內(nèi)核并非是一個完整的OS,而只是放入操作系統(tǒng)中最基本的部分,是經(jīng)過精心設計的、能實現(xiàn)現(xiàn)代OS最基本核心功能的小型內(nèi)核。它與一般的OS(程序)不同,它更小更精煉,不僅運行在核心態(tài),而且開機后常駐內(nèi)存,它不會因內(nèi)存緊張而被換出內(nèi)存。

⑵基于客戶/服務器模式

將操作系統(tǒng)中最基本的部分,放入微內(nèi)核中,而把操作系統(tǒng)的絕大部分功能,都放在微內(nèi)核外面的一組服務器(進程)中實現(xiàn),所有這些服務器,都屬于操作系統(tǒng)的一部分,并作為進程來實現(xiàn)的,但它們都運行在用戶態(tài)。14.4微內(nèi)核OS結構1.微內(nèi)核OS的基本概念82

⑶應用“機制和策略分離”原理

在現(xiàn)在操作系統(tǒng)的結構設計中,經(jīng)常利用“機制與策略”分離的原理,來構造OS結構。

機制:是指在實現(xiàn)某一功能時的具體規(guī)定或說原則。

策略:是在機制的基礎上,借助于某些參數(shù)和算法,用以實現(xiàn)該功能的優(yōu)化,或達到不同的功能目標。在傳統(tǒng)的OS中,將機制放在OS的內(nèi)核的較低層,把策略放在內(nèi)核的較高層次中。在微內(nèi)操作系統(tǒng)中,通常將機制放在OS的微內(nèi)核中。正因如此,才有可能將內(nèi)核做的很小。

⑷采用面向?qū)ο蠹夹g

操作系統(tǒng)是一個極其復雜的大型軟件系統(tǒng),我們不僅可以通過結構設計,分解操作系統(tǒng)的復雜度;還可以基于面向?qū)ο蠹夹g中的“抽象”和“隱蔽”原則,控制系統(tǒng)的復雜性;再進一步利用“對象”、“封裝”和“繼承”等概念,來確保操作系統(tǒng)的“正確性”、“可靠性”、“易修改性”、“易擴展性”等,并提高操作系統(tǒng)的設計速度。14.4微內(nèi)核OS結構⑶應用“機制和策略分離”原理14.4微內(nèi)核OS結構832.微內(nèi)核的基本功能

在不同的微內(nèi)核OS中,微內(nèi)核的大小相差甚多,可達數(shù)十倍。微內(nèi)核所具有的功能,也必然會有明顯的差異。至于哪些功能應放在微內(nèi)核內(nèi),一般基于這樣三個原則:①將與硬件密切相關的功能放入微內(nèi)核中;②根據(jù)“機制與策略”分離的原理,將機制部分放入微內(nèi)核中,將策略部分放入微內(nèi)核外的多個服務器中;③將使用頻率很高的功能,放入微內(nèi)核中。由此可知,微內(nèi)核通常含有如下幾方面的功能:14.4微內(nèi)核OS結構2.微內(nèi)核的基本功能14.4微內(nèi)核OS結構84

⑴進程(線程)管理

在有的操作系統(tǒng)中,將整個進程管理都放在內(nèi)核中,但大多數(shù)的微內(nèi)核OS,進程管理功能的實現(xiàn),都是基于“機制與策略”分離的原理,將機制(基本進程功能)放入微內(nèi)核中。調(diào)度功能的機制部分,應將它放入微內(nèi)核中。用戶(進程)優(yōu)先級的策略屬于策略問題,應

溫馨提示

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

評論

0/150

提交評論