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

下載本文檔

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

文檔簡介

第七章操作系統(tǒng)設計

7.1操作系統(tǒng)設計目標

1、正確性

困難:并發(fā)性、共享性、隨機

性(中斷)

2、高效性

多道程序設計的目標是提高資

源利用率,但系統(tǒng)開銷加大。

Tu:運行目態(tài)程序所用的時間

Tsu:運行管態(tài)程序為用戶服務

所用的時間

Tsm:運行管態(tài)程序做系統(tǒng)管理

工作所用的時間

系統(tǒng)運行效率:

r|=(Tu+Tsu)/(Tu+Tsu+Tsm)

3、易維護

易讀性

易擴充性

易修改性

易裁減性

4、易移植性

7.2操作系統(tǒng)的基本內(nèi)核和體系

結(jié)構(gòu)

7.2.1內(nèi)核的基本組成

中斷處理

調(diào)度

同步機制

基本內(nèi)核組成及聯(lián)系

7.2.2操作系統(tǒng)體系結(jié)構(gòu)

1、主動模塊和被動模塊

主動模塊(進程模塊):

可以獲得處理機而運行

被動模塊(普通模塊):

沒有獲得處理機的資格,

但可以被主動模塊所調(diào)用

管理資源

2、相互作用

(1)主動模塊與主動模塊間的相

互作用

*直接相互作用:消息傳遞

*間接相互作用:主動模塊調(diào)用

被動模塊,被動模塊存取共享變

共享變量

(b)間接相互作用

主動模塊與主動模塊之間的相互作用

(2)主動模塊與被動模塊間的相

互作用

主動模塊可以調(diào)用被動模塊,

被動模塊不能調(diào)用主動模塊

主動模塊與被動模塊之間的相互作用

(3)被動模塊與被動模塊間的相

互作用

主動模塊調(diào)用被動模塊,被動

模塊又調(diào)用另一個被動模塊

3、基于共享變量的結(jié)構(gòu)

操作系統(tǒng)由一組普通模塊和一

組進程模塊組成。普通模塊位于

系統(tǒng)的下層,進程模塊位于系統(tǒng)

的上層。進程模塊之間主要通過

調(diào)用普通模塊,后者訪問共享變

量發(fā)生間接相互作用。

優(yōu)點:運行效率高

缺點:不適合于分布式系統(tǒng)

共享變量

4、基于消息傳遞的結(jié)構(gòu)

操作系統(tǒng)由內(nèi)核及一組進程模

塊構(gòu)成,進程與進程之間的相互

作用采用消息通信或信件通信方

式實現(xiàn)。

優(yōu)點:系統(tǒng)清晰,靈活性好

適合分布式系統(tǒng)和非分布式系統(tǒng)

缺點:進程之間的轉(zhuǎn)接帶來較大

的系統(tǒng)開銷

7.3操作系統(tǒng)的結(jié)構(gòu)設計

設計一個操作系統(tǒng):

功能設計

,法設計

結(jié)構(gòu)設計

結(jié)構(gòu)設計:按照系統(tǒng)的功能和

特性要求,選擇合適的結(jié)構(gòu),使

用相應的結(jié)構(gòu)設計方法將系統(tǒng)逐

步地分解、抽象和綜合,使操作

系統(tǒng)結(jié)構(gòu)清晰、簡單、可靠、易

讀、易修改,而且使用方便,適

應性強

程序結(jié)構(gòu)

軟件結(jié)構(gòu)

操作系統(tǒng)的結(jié)構(gòu):

整體式結(jié)構(gòu)

層次式結(jié)構(gòu)

進程分層結(jié)構(gòu)

虛擬機結(jié)構(gòu)

層次管程結(jié)構(gòu)

客戶-服務器結(jié)構(gòu)

1、整體式結(jié)構(gòu)

模塊接口法,無序模塊法,模

塊組合法

臺匕

首先確定操作系統(tǒng)的總體功月匕,

然后將總功能分解為若干個子功能,

實現(xiàn)每個子功能的模塊稱為模塊。

繼續(xù)分解,直至每個模塊僅包含單

一功能為止。最后通過接口將所有

模塊連接起來形成一個整體。

模塊1?

特點:根據(jù)功能劃分模塊

數(shù)據(jù)基本上作為全局量使用

在系統(tǒng)內(nèi)部,不同模塊的程

序之間可以不加控制地互相調(diào)用和

轉(zhuǎn)移

信息的傳遞方式可以根據(jù)需

要隨意約定,因而造成模塊間的循

環(huán)調(diào)用

優(yōu)點:結(jié)構(gòu)緊密

接口簡單直接

模塊之間轉(zhuǎn)接的靈活性使

系統(tǒng)效率高。

缺點:由于模塊之間可以任意相互

調(diào)用,形成網(wǎng)絡,各模塊互相聯(lián)系,

獨立性差,系統(tǒng)結(jié)構(gòu)不清晰

數(shù)據(jù)作為全局量處理,系統(tǒng)內(nèi)

各模塊均可對其進行存取和修改,

造成模塊間更為隱蔽的關(guān)系。使得

難于看軟件結(jié)構(gòu)作出綜合性的理解,

難于修改,可靠性、易讀性、適應

性難以保證

由于模塊接口法常以大型表格

為中心,為保證數(shù)據(jù)完整性,往

往采用全局封中斷的方法,從而

限制了系統(tǒng)的并發(fā)性。

結(jié)論:可適應性較差,適用于規(guī)

模較小、使用環(huán)境比較穩(wěn)定卻要

求效率較高的系統(tǒng)

用戶程序

在用戶態(tài)運行

主J

操作系統(tǒng)

在核心態(tài)運行

2、層次式結(jié)構(gòu)

按此模型構(gòu)造的第一個操作系

統(tǒng)是氏W.Dijkstra和他的學生在

荷蘭開發(fā)的THE系統(tǒng)(1968年)

該系統(tǒng)分為六層:

層次功能

5操作員

4用戶程序

3輸入/輸出管理

2操作員-進程通信

1內(nèi)存和磁盤管理

0處理器分配和多道程序

3、進程分層結(jié)構(gòu)

采用進程概念后,把含有并發(fā)

活動的系統(tǒng)劃分為若干異步運行

的、與時間無關(guān)的順序程序模塊。

操作系統(tǒng)的任務就是協(xié)調(diào)這些異

步運行的進程,使它們能夠協(xié)調(diào)

工作。

進程分層結(jié)構(gòu)是把系統(tǒng)中所有

的進程模塊按照一定的原則排列

在若干層上,并且要求這些層之

間是一種單向依賴關(guān)系。系統(tǒng)有

一個核心和位于各層上的若干進

程組成。

優(yōu)點:進程模塊的獨立性強、易

維護、易調(diào)整,整個系統(tǒng)結(jié)構(gòu)清

晰、形式整齊劃一。

缺點:由于系統(tǒng)中所有進程的控

制轉(zhuǎn)移、通訊等任務全部交給系

統(tǒng)的核心去管理,要花費一定的

代價。主要有:

1、每一個進程必須設立進程控制塊,

用以保留進程的狀態(tài)信息,增加了內(nèi)

存開銷;

2、進程之間的控制轉(zhuǎn)移、狀態(tài)保留

及信息傳送,均由核心管理,時間消

耗多,效率下降;

3、系統(tǒng)并發(fā)活動過多,調(diào)度負擔過

重,且同步操作過于分散,易于造成

死鎖,影響了系統(tǒng)的安全性。

4、虛擬機結(jié)構(gòu)

370虛擬機

系統(tǒng)調(diào)用

陷入

虛擬機思想的應用:在奔騰CPU

上運行老的MS-DOS程序。

Intel在奔騰芯片上提供了一個

虛擬8086模式,在此模式下,奔

騰機就像一臺8086計算機一樣

包括1M字節(jié)內(nèi)的16位尋址方式。

虛擬8086模式被Windows、OS/2

及其他操作系統(tǒng)用于運行MS-DOS

程序。程序在虛擬8086模式下啟

動,執(zhí)行一般的指令時它們在裸

機上運行。但是,當一個程序試

圖陷入系統(tǒng)來執(zhí)行一條系統(tǒng)調(diào)用

時,或者試圖執(zhí)行受保護的I/O

操作時,將發(fā)生一條虛擬機監(jiān)控

程序的陷入

兩種設計方法:

第一種:MS-DOS本身被裝入虛擬

8086模式的地址空間,虛擬機僅

僅將該陷入傳回給DOS

第二種:虛擬機監(jiān)控程序僅僅捕

獲第一條陷入并自己執(zhí)行I/O操

作。

5、層次管程結(jié)構(gòu)

為了控制并發(fā)程序設計的復雜

性,使并發(fā)程序易于理解和易于

保證其正確性,人們在吸取模塊

組合結(jié)構(gòu)和進程分層結(jié)構(gòu)優(yōu)點的

基礎(chǔ)上,不斷尋求一種抽象的概

念和嚴格的表示法,從而發(fā)展了

以數(shù)據(jù)為中心的模塊概念和操作

系統(tǒng)的層次管程結(jié)構(gòu)。

管程的提出

采用PV同步機制來編寫并發(fā)程序,

對于共享變量及信號量變量的操

作將被分散于各個進程當中。

其缺點是(1)易讀性差,因為

要了解對于一組共享變量及信號

量的操作是否正確,則必須通讀

整個系統(tǒng)或者并發(fā)程序

(2)不利于修改和維護,因為

程序的局部性很差,所以任一組

變量或一段代碼的修改都可能影

響全局;

(3)正確性難以保證,因為操

作系統(tǒng)或并發(fā)程序通常很大,要

保證這樣一個復雜的系統(tǒng)沒有邏

輯4^^是腳隹的o

管程:一種同步機制

(管程-類程-進程)

管程定義:指關(guān)于共享資源的數(shù)

據(jù)及在其上操作的一組過程或共

享數(shù)據(jù)結(jié)構(gòu)及其規(guī)定的所有操作

系統(tǒng)按資源管理的觀點分解成若

干模塊,用數(shù)據(jù)表示抽象系統(tǒng)資源,

同時分析了共享資源和專用資源在

管理上的差別,按不同的管理方式

定義模塊的類型和結(jié)構(gòu),使同步操

作相對集中,從而增加了模塊的相

對獨立性。

從功能和實現(xiàn)相結(jié)合的觀點出發(fā),從系統(tǒng)

中提煉出管程、類程、一般模塊和進程等

幾種基本成分,使一個復雜的系統(tǒng)可分解

為由這幾種基本成分構(gòu)成的模型。同時,

在分解和提煉這些模塊的基礎(chǔ)上,將它們

按照一定的準則編入各層,包括核心在內(nèi)

核心是最內(nèi)層,可看成是管理中央處理機

的一個專門管程。最外層是反映系統(tǒng)并發(fā)

度的若干管程、類程和一般模塊。我們稱

操作系統(tǒng)的這種結(jié)構(gòu)為層次管程結(jié)構(gòu),這

種結(jié)構(gòu)設計方法為PCM方法。

層次管程結(jié)構(gòu)的優(yōu)點是:

(1)結(jié)構(gòu)清晰統(tǒng)一

(2)同步操作相對集中,增加了系

統(tǒng)的安全性

(3)用高級語言書寫程序,可以縮

短系統(tǒng)的研制周期,利用編譯時的檢查

取代硬件保護機構(gòu),不僅更加靈活,而

且降低了運行時檢查的開銷

(4)由于只有進程是系統(tǒng)中并發(fā)執(zhí)行

的單位,因此可以按照系統(tǒng)要求的并發(fā)

度來設置進程。由于去掉了不必票的平

行性,從而減少了系統(tǒng)開銷

層次管程結(jié)構(gòu)的局限性主要有兩點:

第一,由于管程概念的一個重要特征

是保證模塊內(nèi)數(shù)據(jù)的完整性,因而,為

了保證每一個管程所管理的數(shù)據(jù)的完整

性,可以采用局部互斥技術(shù),或用縮小

臨界區(qū)的辦法。但在解決任意管程嵌套

調(diào)用問題時,僅是局部互斥就難于實現(xiàn)

了,就要根據(jù)具體情況,或者采用全局

互斥,或者采用限制嵌套類型與重數(shù)等

策略,這些都限制了使用范圍。

第二,雖然資源管理的局部化增

加了模塊的獨立性和系統(tǒng)的安全

性,但對全局性資源,或者同時

涉及多個資源的管理時就不方便

了,這也是引起管程嵌套調(diào)用的

一個因素。

管程:記錄、協(xié)調(diào)各進程對臨界資

源的使用要求,供進程實現(xiàn)同步

與互斥,并完成對共享變量的修

類程:指一個專用(獨占)的數(shù)據(jù)

結(jié)構(gòu),以及在此數(shù)據(jù)結(jié)構(gòu)上定義

的所有

進程:執(zhí)行單位,實現(xiàn)系統(tǒng)中并發(fā)

工作的基本成分

6、客戶-服務器結(jié)構(gòu)

微內(nèi)核

現(xiàn)代操作系統(tǒng)的一個趨勢,

將傳統(tǒng)操作系統(tǒng)的大部分代碼分

離出來放在更高的層次上。即從

操作系統(tǒng)中去掉盡可能多的東西,

而只留一個最小的核心

通常的實現(xiàn)方法是將大多數(shù)操作系

統(tǒng)功能由用戶進程來實現(xiàn)

核心的全部工作是處理客戶與服務

器間的通信。操作系統(tǒng)被分割成許

多部分,每一部分只處理一方面的

功能,如文件服務、進程服務、終

端服務或存儲器服務

在微內(nèi)核之上建有應用運行環(huán)境

的服務器(WorkspaceOS稱之為個

性服務器,WindowsNT稱之為保護

子系統(tǒng)),微內(nèi)核操作系統(tǒng)可以提

供多種OS運行環(huán)境

微內(nèi)核結(jié)構(gòu)的設計目標:

為構(gòu)造其他操作系統(tǒng)提供基礎(chǔ)

支持大而稀疏的空間

能透明地使用網(wǎng)絡資源

在系統(tǒng)一級和應用一級均可拓展

并行性

高度的可移植性

途徑:

1把傳統(tǒng)意義上屬于操作系統(tǒng)的代

碼由低層移向高層,由核心移向

用戶,要增加新功能僅需加結(jié)點

2消息傳送機制

Client/Server

Client模塊:采集數(shù)據(jù),進行完整

性檢查,將服務要求通過消息傳

送給命名的模塊

Service模塊:從Client端接受數(shù)據(jù)

和要求,進行處理,返回處理結(jié)

Server:命名的Service集合

對分布式、網(wǎng)絡式系統(tǒng)很適應

特點:每一部分變得很小,更易

于管理。而且,于所有服務器以

用戶進程的形式運行,而不是運行

在核心態(tài),所以它們不直接訪問硬

件。這樣處理的結(jié)果是:假如在文

件服務器中發(fā)生錯誤,文件服務器

可能崩潰,但不會導致整個系統(tǒng)的

崩潰

客戶一服務器模型的另一個優(yōu)點

是它適用于分布式系統(tǒng),如果一

個客戶通過消息傳遞與服務器通

信,客戶無需知道這條消息是在

本機處理還是通過網(wǎng)絡送給遠程

機器上的服務器

優(yōu)點:

易于擴充,易于移植

提高系統(tǒng)的可靠性

提供多種操作環(huán)境

適宜于分布計算模式

有助于多處理器系統(tǒng)的實現(xiàn)

支持實時任務

缺點:

消息傳遞方式增加開銷,使響

應變慢

幾個商品化系統(tǒng):

NextStepXINU,0SF/11.3,

WorkspaceOS,Chorus/MixV.4

MacG3,WindowsNT,QNX,CTOS

基于微內(nèi)核的開放式系統(tǒng)環(huán)境

應用程序

DOS服務器UNI服務器VMS服務器OS/2服務器

微內(nèi)核操作系統(tǒng)

系統(tǒng)程序接口應用程序接口

(SPI)(API)

客戶服務器模型

客戶向服務器進程發(fā)送

消息,以獲得服務

一個分布式系統(tǒng)中的客戶服務器模型

功能:管理下列抽象資源

進程、線程、存儲對象、端口、

消息

進程:一個被動成分,是可以發(fā)

生一次執(zhí)行的基本環(huán)境,包括一

個可編址的空間,幾個線程;是

分配資源的基本單位,進程中可

以擁有一些活動成分

線程:系統(tǒng)中可以執(zhí)行的實體,

每個線程有一個程序指針及若干

個與之相關(guān)的寄存器,是進程的

一部分

存儲對象:是一個可映射到進程

編址空間的數(shù)據(jù)結(jié)構(gòu),一個對象

可以是擁有若干頁面的頁框;進

程運行時可能由于一個存儲對象

不在而缺頁,此時由核心向服務

器發(fā)消息,要求服務

端口:受保護的信箱,附加了權(quán)

限。端口在核心中,可由進程創(chuàng)

建,由進程擁有;處理消息的排

隊;創(chuàng)建端口的進程可授權(quán)其他

進程使用端口;一個進程可以有

幾個端口,用于與核心通信

進程管理:

進程是微內(nèi)核管理的資源之一,

功能是管理進程和線程,以及對

線程調(diào)度

進程:微內(nèi)核中進程是被動的,為

線程提供活動舞臺由編址空間、

一組線程、多個端口和其他成分

組成

進程端口用來提供進程和核心的

通信(系統(tǒng)調(diào)用在微內(nèi)核中仍保

留,單2數(shù)目下降),進程通過端

口與核心聯(lián)絡

初始端口用于進程初始化

例外端口用于向進程報錯

寄存器端口共進程與系統(tǒng)的標準

Server通信

在微內(nèi)核中端口是受保護的信箱,

是單向的,若要應答,需要兩個

端口

其他:掛起的指針,獨立于線程的狀態(tài)

(兩種狀態(tài):可執(zhí)行態(tài),掛起態(tài));若

處于可執(zhí)行態(tài),它的處于可執(zhí)行態(tài)的線

程可被調(diào)度和執(zhí)行;進程處于阻塞態(tài),

它的線程均不可執(zhí)行;調(diào)度參數(shù)主要指

示此進程可在那些處理機上執(zhí)行(分布

式系統(tǒng));優(yōu)先數(shù),在進程創(chuàng)建線程時

賦予線程;仿真地址是用于向核心指示

進程空間中放仿真的地址,有的進程就

是用于仿真一定的操作系統(tǒng)的;統(tǒng)計部

件用于統(tǒng)計各部件的利用率等

線程:微內(nèi)核中的活動實體,一

個線程只屬于一個進程,線程共

享進程的地址空間和進程的資源

線程本身也有其私有資源,如端

口,亦可動態(tài)創(chuàng)建端口

線程由核心管理,可并行;在單

CPU中,往往采用分時方式,在

多CPU中,有幾個線程可以同時

運行,同步、互斥、調(diào)度變得更

為重要,正確性、安全性更為

溫馨提示

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

最新文檔

評論

0/150

提交評論