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

下載本文檔

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

文檔簡介

操作系統(tǒng)設(shè)計(jì)7.1操作系統(tǒng)設(shè)計(jì)目標(biāo)1、正確性困難:并發(fā)性、共享性、隨機(jī)性(中斷)

2、高效性多道程序設(shè)計(jì)的目標(biāo)是提高資源利用率,但系統(tǒng)開銷加大Tu:運(yùn)行目態(tài)程序所用的時間Tsu:運(yùn)行管態(tài)程序?yàn)橛脩舴?wù)所用的時間Tsm:運(yùn)行管態(tài)程序做系統(tǒng)管理工作所用的時間系統(tǒng)運(yùn)行效率:=(Tu+Tsu)/(Tu+Tsu+Tsm)3、易維護(hù)易讀性易擴(kuò)充性易修改性易裁減性4、易移植性7.2操作系統(tǒng)基本內(nèi)核和體系結(jié)構(gòu)7.2.1內(nèi)核的基本組成中斷處理進(jìn)程調(diào)度同步機(jī)制同步原語模塊中斷處理模塊進(jìn)程調(diào)度模塊基本內(nèi)核組成及聯(lián)系7.2.2操作系統(tǒng)體系結(jié)構(gòu)1、主動模塊和被動模塊主動模塊(進(jìn)程模塊):可以獲得處理機(jī)而運(yùn)行被動模塊(普通模塊):沒有獲得處理機(jī)的資格,但可以被主動模塊所調(diào)用管理資源2、相互作用(1)主動模塊與主動模塊間的相互作用*直接相互作用:消息傳遞*間接相互作用:主動模塊調(diào)用被動模塊,被動模塊存取共享變量主動模塊主動模塊主動模塊與主動模塊之間的相互作用信件或消息(a)直接相互作用主動模塊主動模塊被動模塊共享變量(b)間接相互作用(2)主動模塊與被動模塊間的相互作用主動模塊可以調(diào)用被動模塊被動模塊不能調(diào)用主動模塊被動模塊被動模塊被動模塊主動模塊與被動模塊之間的相互作用主動模塊......主動模塊主動模塊......(3)被動模塊與被動模塊間的相互作用主動模塊調(diào)用被動模塊被動模塊又調(diào)用另一個被動模塊3、基于共享變量的結(jié)構(gòu)操作系統(tǒng)由一組普通模塊和一組進(jìn)程模塊組成。普通模塊位于系統(tǒng)的下層,進(jìn)程模塊位于系統(tǒng)的上層。進(jìn)程模塊之間主要通過調(diào)用普通模塊,后者訪問共享變量發(fā)生間接相互作用。優(yōu)點(diǎn):運(yùn)行效率高缺點(diǎn):不適合于分布式系統(tǒng)主動模塊主動模塊被動模塊被動模塊…...…...主動模塊被動模塊…...被動模塊被動模塊…...…...被動模塊…...…...…...…...共享變量4、基于消息傳遞的結(jié)構(gòu)操作系統(tǒng)由內(nèi)核及一組進(jìn)程模塊構(gòu)成,進(jìn)程與進(jìn)程之間的相互作用采用消息通信或信件通信方式實(shí)現(xiàn)。優(yōu)點(diǎn):系統(tǒng)清晰,靈活性好適合分布式系統(tǒng)和非分布式系統(tǒng)缺點(diǎn):進(jìn)程之間的轉(zhuǎn)接帶來較大的系統(tǒng)開銷主動模塊主動模塊主動模塊主動模塊…...…...主動模塊主動模塊…...主動模塊主動模塊…...…...主動模塊…...…...…...…...高級通信原語基本內(nèi)核7.3操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)一個操作系統(tǒng):功能設(shè)計(jì)算法設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)

結(jié)構(gòu)設(shè)計(jì):按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計(jì)方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰、簡單、可靠、易讀、易修改,而且使用方便,適應(yīng)性強(qiáng)程序結(jié)構(gòu)軟件結(jié)構(gòu)操作系統(tǒng)的結(jié)構(gòu):整體式結(jié)構(gòu)層次式結(jié)構(gòu)進(jìn)程分層結(jié)構(gòu)虛擬機(jī)結(jié)構(gòu)層次管程結(jié)構(gòu)客戶-服務(wù)器結(jié)構(gòu)1、整體式結(jié)構(gòu)

模塊接口法,無序模塊法,模塊組合法首先確定操作系統(tǒng)的總體功能,然后將總功能分解為若干個子功能,實(shí)現(xiàn)每個子功能的稱為模塊。繼續(xù)分解,直至每個模塊僅包含單一功能為止。最后通過接口將所有模塊連接起來形成一個整體。模塊3模塊2模塊7模塊1模塊6模塊5模塊8模塊4特點(diǎn):根據(jù)功能劃分模塊數(shù)據(jù)基本上作為全局量使用在系統(tǒng)內(nèi)部,不同模塊之間可以不加控制地互相調(diào)用和轉(zhuǎn)移信息的傳遞方式可以根據(jù)需要隨意約定,因而可能會造成模塊間的循環(huán)調(diào)用優(yōu)點(diǎn):結(jié)構(gòu)緊密接口簡單直接模塊之間轉(zhuǎn)接的靈活性使系統(tǒng)效率高缺點(diǎn):由于模塊之間可以任意相互調(diào)用,形成網(wǎng)絡(luò),各模塊互相聯(lián)系,獨(dú)立性差,系統(tǒng)結(jié)構(gòu)不清晰數(shù)據(jù)作為全局量處理,系統(tǒng)內(nèi)各模塊均可對其進(jìn)行存取和修改,造成模塊間更為隱蔽的關(guān)系。使得難于對軟件結(jié)構(gòu)作出綜合性理解,難于修改,可靠性、易讀性、適應(yīng)性難以保證

由于模塊接口法常以大型表格為中心,為保證數(shù)據(jù)完整性,往往采用全局封中斷的方法,從而限制了系統(tǒng)的并發(fā)性。

結(jié)論:可適應(yīng)性較差,適用于規(guī)模較小、使用環(huán)境比較穩(wěn)定卻要求效率較高的系統(tǒng)主過程服務(wù)過程公用過程整體式操作系統(tǒng)的簡單結(jié)構(gòu)模型2、層次式結(jié)構(gòu)按此模型構(gòu)造的第一個操作系統(tǒng)是E.W.Dijkstra和他的學(xué)生在荷蘭開發(fā)的THE系統(tǒng)(1968年)該系統(tǒng)分為六層:層次 功能

5 操作員

4 用戶程序

3 輸入/輸出管理

2 操作員-進(jìn)程通信

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

0 處理器分配和多道程序 3、進(jìn)程分層結(jié)構(gòu)采用進(jìn)程概念后,把含有并發(fā)活動的系統(tǒng)劃分為若干異步運(yùn)行的、與時間無關(guān)的順序程序模塊。操作系統(tǒng)的任務(wù)就是協(xié)調(diào)這些異步運(yùn)行的進(jìn)程,使它們能夠協(xié)調(diào)工作。

進(jìn)程分層結(jié)構(gòu)是把系統(tǒng)中所有的進(jìn)程模塊按照一定的原則排列在若干層上,并且要求這些層之間是一種單向依賴關(guān)系。系統(tǒng)有一個核心和位于各層上的若干進(jìn)程組成。

優(yōu)點(diǎn):進(jìn)程模塊的獨(dú)立性強(qiáng)、易維護(hù)、易調(diào)整,整個系統(tǒng)結(jié)構(gòu)清晰、形式整齊劃一。

缺點(diǎn):由于系統(tǒng)中所有進(jìn)程的控制轉(zhuǎn)移、通訊等任務(wù)全部交給系統(tǒng)的核心去管理,要花費(fèi)一定的代價。主要有:

1、每一個進(jìn)程必須設(shè)立進(jìn)程控制塊,用以保留進(jìn)程的狀態(tài)信息,增加了內(nèi)存開銷;

2、進(jìn)程之間的控制轉(zhuǎn)移、狀態(tài)保留及信息傳送,均由核心管理,時間消耗多,效率下降;

3、系統(tǒng)并發(fā)活動過多,調(diào)度負(fù)擔(dān)過重,且同步操作過于分散,易于造成死鎖,影響了系統(tǒng)的安全性。4、虛擬機(jī)結(jié)構(gòu)系統(tǒng)調(diào)用陷入陷入I/O指令CMSCMSCMS370虛擬機(jī)VM/370370裸機(jī)虛擬機(jī)思想的應(yīng)用:在奔騰CPU上運(yùn)行老的MS-DOS程序。Intel在奔騰芯片上提供了一個虛擬8086模式,在此模式下,奔騰機(jī)就像一臺8086計(jì)算機(jī)一樣,包括1M字節(jié)內(nèi)的16位尋址方式。

虛擬8086模式被Windows、OS/2及其他操作系統(tǒng)用于運(yùn)行MS-DOS程序。程序在虛擬8086模式下啟動,執(zhí)行一般的指令時它們在裸機(jī)上運(yùn)行。但是,當(dāng)一個程序試圖陷入系統(tǒng)來執(zhí)行一條系統(tǒng)調(diào)用時,或者試圖執(zhí)行受保護(hù)的I/O操作時,將發(fā)生一條虛擬機(jī)監(jiān)控程序的陷入兩種設(shè)計(jì)方法:第一種:MS-DOS本身被裝入虛擬8086模式的地址空間,虛擬機(jī)僅僅將該陷入傳回給DOS第二種:虛擬機(jī)監(jiān)控程序僅僅捕獲第一條陷入并自己執(zhí)行I/O操作。5、層次管程結(jié)構(gòu)為了控制并發(fā)程序設(shè)計(jì)的復(fù)雜性,使并發(fā)程序易于理解和易于保證其正確性,人們在吸取模塊組合結(jié)構(gòu)和進(jìn)程分層結(jié)構(gòu)優(yōu)點(diǎn)的基礎(chǔ)上,不斷尋求一種抽象的概念和嚴(yán)格的表示法,從而發(fā)展了以數(shù)據(jù)為中心的模塊概念和操作系統(tǒng)的層次管程結(jié)構(gòu)。管程的提出采用PV同步機(jī)制來編寫并發(fā)程序,對于共享變量及信號量變量的操作將被分散于各個進(jìn)程當(dāng)中。其缺點(diǎn)是(1)易讀性差,因?yàn)橐私鈱τ谝唤M共享變量及信號量的操作是否正確,則必須通讀整個系統(tǒng)或者并發(fā)程序(2)不利于修改和維護(hù),因?yàn)槌绦虻木植啃院懿?,所以任一組變量或一段代碼的修改都可能影響全局;(3)正確性難以保證,因?yàn)椴僮飨到y(tǒng)或并發(fā)程序通常很大,要保證這樣一個復(fù)雜的系統(tǒng)沒有邏輯錯誤是很難的。管程:一種同步機(jī)制

(管程-類程-進(jìn)程)管程定義:指關(guān)于共享資源的數(shù)據(jù)及在其上操作的一組過程或共享數(shù)據(jù)結(jié)構(gòu)及其規(guī)定的所有操作

系統(tǒng)按資源管理的觀點(diǎn)分解成若干模塊,用數(shù)據(jù)表示抽象系統(tǒng)資源,同時分析了共享資源和專用資源在管理上的差別,按不同的管理方式定義模塊的類型和結(jié)構(gòu),使同步操作相對集中,從而增加了模塊的相對獨(dú)立性。

從功能和實(shí)現(xiàn)相結(jié)合的觀點(diǎn)出發(fā),從系統(tǒng)中提煉出管程、類程、一般模塊和進(jìn)程等幾種基本成分,使一個復(fù)雜的系統(tǒng)可分解為由這幾種基本成分構(gòu)成的模型。同時,在分解和提煉這些模塊的基礎(chǔ)上,將它們按照一定的準(zhǔn)則編入各層,包括核心在內(nèi)。核心是最內(nèi)層,可看成是管理中央處理機(jī)的一個專門管程。最外層是反映系統(tǒng)并發(fā)度的若干管程、類程和一般模塊。我們稱操作系統(tǒng)的這種結(jié)構(gòu)為層次管程結(jié)構(gòu),這種結(jié)構(gòu)設(shè)計(jì)方法為PCM方法。層次管程結(jié)構(gòu)的優(yōu)點(diǎn)是:(1)結(jié)構(gòu)清晰統(tǒng)一(2)同步操作相對集中,增加了系統(tǒng)的安全性(3)用高級語言書寫程序,可以縮短系統(tǒng)的研制周期,利用編譯時的檢查取代硬件保護(hù)機(jī)構(gòu),不僅更加靈活,而且降低了運(yùn)行時檢查的開銷(4)由于只有進(jìn)程是系統(tǒng)中并發(fā)執(zhí)行的單位,因此可以按照系統(tǒng)要求的并發(fā)度來設(shè)置進(jìn)程。由于去掉了不必要的平行性,從而減少了系統(tǒng)開銷

層次管程結(jié)構(gòu)的局限性主要有兩點(diǎn):第一,由于管程概念的一個重要特征是保證模塊內(nèi)數(shù)據(jù)的完整性,因而,為了保證每一個管程所管理的數(shù)據(jù)的完整性,可以采用局部互斥技術(shù),或用縮小臨界區(qū)的辦法。但在解決任意管程嵌套調(diào)用問題時,僅是局部互斥就難于實(shí)現(xiàn)了,就要根據(jù)具體情況,或者采用全局互斥,或者采用限制嵌套類型與重?cái)?shù)等策略,這些都限制了使用范圍。

第二,雖然資源管理的局部化增加了模塊的獨(dú)立性和系統(tǒng)的安全性,但對全局性資源,或者同時涉及多個資源的管理時就不方便了,這也是引起管程嵌套調(diào)用的一個因素。管程:記錄、協(xié)調(diào)各進(jìn)程對臨界資源的使用要求,供進(jìn)程實(shí)現(xiàn)同步與互斥,并完成對共享變量的修改類程:指一個專用(獨(dú)占)的數(shù)據(jù)結(jié)構(gòu),以及在此數(shù)據(jù)結(jié)構(gòu)上定義的所有操作進(jìn)程:執(zhí)行單位,實(shí)現(xiàn)系統(tǒng)中并發(fā)工作的基本成分建立于進(jìn)程、類程、管程基礎(chǔ)上的系統(tǒng)結(jié)構(gòu)模式是從各進(jìn)程出發(fā),對類程和管程的一系列嵌套調(diào)用,直到系統(tǒng)核心。PPPMMCC6、客戶-服務(wù)器結(jié)構(gòu)微內(nèi)核現(xiàn)代操作系統(tǒng)的一個趨勢,將傳統(tǒng)操作系統(tǒng)的大部分代碼分離出來放在更高的層次上。即從操作系統(tǒng)中去掉盡可能多的東西,而只留一個最小的核心通常的實(shí)現(xiàn)方法是將大多數(shù)操作系統(tǒng)功能由用戶進(jìn)程來實(shí)現(xiàn)核心的全部工作是處理客戶與服務(wù)器間的通信。操作系統(tǒng)被分割成許多部分,每一部分只處理一方面的功能,如文件服務(wù)、進(jìn)程服務(wù)、終端服務(wù)或存儲器服務(wù)

在微內(nèi)核之上建有應(yīng)用運(yùn)行環(huán)境的服務(wù)器(WorkspaceOS稱之為個性服務(wù)器,WindowsNT稱之為保護(hù)子系統(tǒng)),微內(nèi)核操作系統(tǒng)可以提供多種OS運(yùn)行環(huán)境微內(nèi)核結(jié)構(gòu)的設(shè)計(jì)目標(biāo):為構(gòu)造其他操作系統(tǒng)提供基礎(chǔ)支持大而稀疏的空間能透明地使用網(wǎng)絡(luò)資源在系統(tǒng)一級和應(yīng)用一級均可拓展并行性高度的可移植性途徑:1、把傳統(tǒng)意義上屬于操作系統(tǒng)的代碼由低層移向高層,由核心移向用戶,要增加新功能僅需加結(jié)點(diǎn)2、消息傳送機(jī)制

Client/ServerClient模塊:采集數(shù)據(jù),進(jìn)行完整性檢查,將服務(wù)要求通過消息傳送給命名的模塊Service模塊:從Client端接受數(shù)據(jù)和要求,進(jìn)行處理,返回處理結(jié)果

Server:命名的Service集合對分布式、網(wǎng)絡(luò)式系統(tǒng)很適應(yīng)

特點(diǎn):每一部分變得很小,更易于管理。而且,由于所有服務(wù)器以用戶進(jìn)程的形式運(yùn)行,而不是運(yùn)行在核心態(tài),所以它們不直接訪問硬件。這樣處理的結(jié)果是:假如在文件服務(wù)器中發(fā)生錯誤,文件服務(wù)器可能崩潰,但不會導(dǎo)致整個系統(tǒng)的崩潰

客戶一服務(wù)器模型的另一個優(yōu)點(diǎn)是它適用于分布式系統(tǒng),如果一個客戶通過消息傳遞與服務(wù)器通信,客戶無需知道這條消息是在本機(jī)處理還是通過網(wǎng)絡(luò)送給遠(yuǎn)程機(jī)器上的服務(wù)器

優(yōu)點(diǎn):易于擴(kuò)充,易于移植提高系統(tǒng)的可靠性提供多種操作環(huán)境適宜于分布計(jì)算模式有助于多處理器系統(tǒng)的實(shí)現(xiàn)支持實(shí)時任務(wù)

缺點(diǎn):消息傳遞方式增加開銷,使響應(yīng)變慢幾個商品化系統(tǒng):NextStepXINU,OSF/11.3,WorkspaceOS,Chorus/MixV.4MacG3,WindowsNT,QNX,CTOS應(yīng)用程序微內(nèi)核操作系統(tǒng)DOS服務(wù)器UNI服務(wù)器VMS服務(wù)器OS/2服務(wù)器基于微內(nèi)核的開放式系統(tǒng)環(huán)境系統(tǒng)程序接口(SPI)應(yīng)用程序接口(API)客戶進(jìn)程客戶進(jìn)程

進(jìn)程服務(wù)器

終端服務(wù)器

文件服務(wù)器

內(nèi)存服務(wù)器

。。。核心客戶向服務(wù)器進(jìn)程發(fā)送消息,以獲得服務(wù)客戶服務(wù)器模型客戶向服務(wù)器發(fā)送消息,以獲得服務(wù)一個分布式系統(tǒng)中的客戶服務(wù)器模型機(jī)器1客戶核心機(jī)器2文件服務(wù)器核心機(jī)器3進(jìn)程服務(wù)器核心機(jī)器4終端服務(wù)器核心功能:管理下列抽象資源進(jìn)程、線程、存儲對象、端口、消息進(jìn)程:一個被動成分,是可以發(fā)生一次執(zhí)行的基本環(huán)境,包括一個可編址的空間,幾個線程;是分配資源的基本單位,進(jìn)程中可以擁有一些活動成分線程:系統(tǒng)中可以執(zhí)行的實(shí)體,每個線程有一個程序指針及若干個與之相關(guān)的寄存器,是進(jìn)程的一部分存儲對象:是一個可映射到進(jìn)程編址空間的數(shù)據(jù)結(jié)構(gòu),一個對象可以是擁有若干頁面的頁框;進(jìn)程運(yùn)行時可能由于一個存儲對象不在而缺頁,此時由核心向服務(wù)器發(fā)消息,要求服務(wù)端口:受保護(hù)的信箱,附加了權(quán)限。端口在核心中,可由進(jìn)程創(chuàng)建,由進(jìn)程擁有;處理消息的排隊(duì);創(chuàng)建端口的進(jìn)程可授權(quán)其他進(jìn)程使用端口;一個進(jìn)程可以有幾個端口,用于與核心通信進(jìn)程管理:進(jìn)程是微內(nèi)核管理的資源之一,其功能是管理進(jìn)程和線程,以及對線程進(jìn)行調(diào)度進(jìn)程:微內(nèi)核中進(jìn)程是被動的,為線程提供活動舞臺由編址空間、一組線程、多個端口和其他成分組成

進(jìn)程端口用來提供進(jìn)程和核心的通信(系統(tǒng)調(diào)用在微內(nèi)核中仍保留,單數(shù)目下降),進(jìn)程通過端口與核心聯(lián)絡(luò)初始端口用于進(jìn)程初始化例外端口用于向進(jìn)程報錯寄存器端口共進(jìn)程與系統(tǒng)的標(biāo)準(zhǔn)Server通信在微內(nèi)核中端口是受保護(hù)的信箱,是單向的,若要應(yīng)答,需要兩個端口

其他:掛起的指針,獨(dú)立于線程的狀態(tài)(兩種狀態(tài):可執(zhí)行態(tài),掛起態(tài));若處于可執(zhí)行態(tài),它的處于可執(zhí)行態(tài)的線程可被調(diào)度和執(zhí)行;進(jìn)程處于阻塞態(tài),它的線程均不可執(zhí)行;調(diào)度參數(shù)主要指示此進(jìn)程可在那些處理機(jī)上執(zhí)行(分布式系統(tǒng));優(yōu)先數(shù),在進(jìn)程創(chuàng)建線程時賦予線程;仿真地址是用于向核心指示進(jìn)程空間中放仿真的地址,有的進(jìn)程就是用于仿真一定的操作系統(tǒng)的;統(tǒng)計(jì)部件用于統(tǒng)計(jì)各部件的利用率等線程:微內(nèi)核中的活動實(shí)體,一個線程只屬于一個進(jìn)程,線程共享進(jìn)程的地址空間和進(jìn)程的資源線程本身也有其私有資源,如端口,亦可動態(tài)創(chuàng)建端口線程由核心管理,可并行;在單CPU中,往往采用分時方式,在多CPU中,有幾個線程可以同時運(yùn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論