操作系統(tǒng)結(jié)構(gòu)_第1頁(yè)
操作系統(tǒng)結(jié)構(gòu)_第2頁(yè)
操作系統(tǒng)結(jié)構(gòu)_第3頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1.2 操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 操作系統(tǒng)是一種大型、復(fù)雜的并發(fā)系統(tǒng),為了研制操作系統(tǒng),先必須研究它的結(jié)構(gòu), 力求設(shè)計(jì)出結(jié)構(gòu)良好的程序。 操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)有兩層含義: 一是研究操作系統(tǒng)的整體結(jié)構(gòu), 由程序的構(gòu)成成分組成操作系統(tǒng)程序的構(gòu)造過(guò)程和方法;是研究操作系統(tǒng)程序的局部結(jié)構(gòu),包括數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu)。采用不同的構(gòu)件和構(gòu)造方法可組成不同結(jié)構(gòu)的操作系統(tǒng)。 本節(jié)將在討論操作系統(tǒng)構(gòu)件之后, 全面介紹各種操作系統(tǒng)的構(gòu)造方法。操作系統(tǒng)的組件通常把組成操作系統(tǒng)程序的根本單位稱作操作系統(tǒng)的構(gòu)件。 剖析 現(xiàn) 代操作系統(tǒng),構(gòu)成操作系統(tǒng)的根本單位除內(nèi)核之外, 主要還有進(jìn)程、 線 程、類程和管程。1內(nèi)核現(xiàn)代操作系統(tǒng)中 xx

2、 采用了進(jìn)程的概念, 為了解決系統(tǒng)的并發(fā)性、 共享性和隨機(jī)性, 并使進(jìn)程能協(xié)調(diào)地工作, 單靠計(jì)算機(jī)硬件提供的功 能 是十分不夠的。例如,進(jìn)程調(diào)度工作目前就不能用硬件來(lái)實(shí)現(xiàn);而 進(jìn)程 自己調(diào)度自己也是困難的。 所以,系統(tǒng)必須有一個(gè)軟件局部能對(duì) 硬件 處理器及有關(guān)資源進(jìn)行首次改造, 以便給進(jìn)程的執(zhí)行提供良好運(yùn) 行環(huán) 境,這個(gè)局部就是操作系統(tǒng)的內(nèi)核。由于操作系統(tǒng)設(shè)計(jì)的目標(biāo)和環(huán)境不同, 內(nèi)核的大小和功能有很大 差 別。有些設(shè)計(jì)希望把內(nèi)核做得盡量小僅具有極少的必需功能, 稱為 微 內(nèi)核 ( microkernel ) ,其他功能都在核外實(shí)現(xiàn),通過(guò)微內(nèi)核提供 的消息 的功能, 雖然其內(nèi)部也可劃分成層次或模

3、塊, 但運(yùn)行時(shí)是一個(gè) 大二進(jìn) 制映像, 模塊間的聯(lián)系可通過(guò)函數(shù)或過(guò)程調(diào)用實(shí)現(xiàn), 稱為單內(nèi) 核 monolithic kernel 。操作系統(tǒng)的一個(gè)根本問(wèn)題就是內(nèi)核的功 能設(shè)計(jì)。 微內(nèi)核結(jié)構(gòu)是現(xiàn)代操作系統(tǒng)的特征之一, 這種方法把內(nèi)核和 核外效勞 程序的開(kāi)發(fā)別離, 可為特定應(yīng)用程序或運(yùn)行環(huán)境要求定制服 務(wù)程序, 具有較好的可伸縮性,簡(jiǎn)化了實(shí)現(xiàn),提供了靈活性,很適合 分布式系統(tǒng) 的構(gòu)造。傳遞機(jī)制完成其余功能模塊間的聯(lián)系;有些設(shè)計(jì)那么希望內(nèi)核具 有較多一般而言,內(nèi)核必須提供以下 3 個(gè)方面的功能。 1 xx 處理。 xx 處理是內(nèi)核中最根本的功能, 也是操作系統(tǒng)賴 以 活動(dòng)的根底,為了縮短屏蔽 xx

4、的時(shí)間,增加系統(tǒng)內(nèi)的并發(fā)性,通 常它 僅僅進(jìn)行有限的、 簡(jiǎn)短的處理, 其余任務(wù)交給在內(nèi)核之外的特殊 用戶 態(tài)進(jìn)程完成。 當(dāng) xx 事件產(chǎn)生時(shí),先由內(nèi)核截獲并轉(zhuǎn)向 xx 處理例 行程 序進(jìn)行原那么處理, 它分析 xx 事件的類型和性質(zhì), 進(jìn)行必要的狀 態(tài)修改, 然后交給內(nèi)核之外的進(jìn)程去處理。 例如,產(chǎn)生外圍設(shè)備結(jié)束 xx 事件時(shí), 內(nèi)核首先分析是否正常結(jié)束,如果是正常結(jié)束,那么, 就應(yīng)釋放等待該 外圍傳輸?shù)倪M(jìn)程; 否那么啟動(dòng)相應(yīng)設(shè)備管理進(jìn)程進(jìn)行出 錯(cuò)或異常處理。 又 如當(dāng)操作員請(qǐng)求從控制臺(tái)輸入命令時(shí), 內(nèi)核將把這 一任務(wù)轉(zhuǎn)交給命令 管理進(jìn)程去處理,以接收和執(zhí)行命令。 2短程調(diào)度。主要職能是分配處

5、理器。當(dāng)系統(tǒng)中發(fā)生了一個(gè)事件之后, 可能一個(gè)進(jìn)程要讓出處理器, 而另一個(gè)進(jìn)程又要獲得處理 器。 短程調(diào)度按照一定的策略管理處理器的轉(zhuǎn)讓, 以及完成保護(hù)和恢 復(fù)現(xiàn) 場(chǎng)的工作。 由于它是協(xié)調(diào)進(jìn)程競(jìng)爭(zhēng)處理器資源的程序, 所以它不 是進(jìn)程而是內(nèi)核中的一個(gè)程序3原語(yǔ)管理。原語(yǔ)是內(nèi)核中實(shí)現(xiàn)某一功能的不可xx 過(guò)程。為 了協(xié)調(diào)進(jìn)程完成通信、 并發(fā)執(zhí)行和共享資源, 各種原語(yǔ)是必不可少的。 通 信原語(yǔ)為進(jìn)程相互傳遞消息, 同步原語(yǔ)能協(xié)調(diào)并發(fā)進(jìn)程之間的種種 制 約關(guān)系。此外,還有其他原語(yǔ),如啟動(dòng)外圍設(shè)備工作的啟動(dòng)原語(yǔ), 假設(shè)啟 動(dòng)不成功那么請(qǐng)求啟動(dòng)者應(yīng)等待, 顯然, 這個(gè)啟動(dòng)過(guò)程應(yīng)該是完整 的, 否那么在成為等待

6、狀態(tài)時(shí),可能外圍設(shè)備已經(jīng)空閑。由于設(shè)備的操 作與硬 件密切相關(guān),故通常設(shè)備驅(qū)動(dòng)程序等功能都放在內(nèi)核中完成。內(nèi)核是操作系統(tǒng)對(duì)裸機(jī)的首次改造, 內(nèi)核和裸機(jī)組成了一臺(tái)虛擬 機(jī), 進(jìn)程就在這臺(tái)虛擬機(jī)上運(yùn)行,它比裸機(jī)的功能更強(qiáng)大,具有以下 特性: 1 虛擬機(jī)沒(méi)有 xx ,因而,進(jìn)程的設(shè)計(jì)者不再需要有硬件 xx 的 概念,用戶進(jìn)程執(zhí)行中無(wú)須處理 xx; 2虛擬機(jī)為每個(gè)進(jìn)程提供了一臺(tái)虛擬處理器,每個(gè)進(jìn)程就好像在各自的私有處理器上順序地推進(jìn),實(shí)現(xiàn)了多個(gè)進(jìn)程的并發(fā)執(zhí)行; 3虛擬機(jī)為進(jìn)程提供了功能較強(qiáng)的指令系統(tǒng),即它們能夠使用機(jī)器非特權(quán)指令、系統(tǒng)調(diào)用和原語(yǔ)所組成的新的指令系統(tǒng)。為了保證系統(tǒng)的有效性和靈活性,設(shè)計(jì)內(nèi)

7、核應(yīng)遵循少而精的原那么。如果內(nèi)核功能過(guò)強(qiáng),那么一方面在修改系統(tǒng)時(shí)可能牽動(dòng)內(nèi)核;另一 方面它 占用的內(nèi)存容量和執(zhí)行時(shí)間都會(huì)增大,且屏蔽 xx 的時(shí)間過(guò)長(zhǎng) 也會(huì)影響 系統(tǒng)效率。因而,設(shè)計(jì)內(nèi)核時(shí)應(yīng)注意: xx 處理要簡(jiǎn)單;調(diào) 度算法要有效;原語(yǔ)應(yīng)靈活有力、數(shù)量適當(dāng)。這樣就可以做到下次修 改 系統(tǒng)時(shí),盡量少改動(dòng)內(nèi)核,執(zhí)行時(shí) xx 屏蔽時(shí)間縮短。2進(jìn)程管理程序本身并不能做什么, 只有在 CPU 執(zhí)行它的指令時(shí)才能有所作 為;因此,可以把進(jìn)程看做是正在運(yùn)行的程序。但是當(dāng)我們進(jìn)一步研究時(shí),對(duì)進(jìn)程的定義將更為普遍。例如:一個(gè)分時(shí)用戶程序如編譯器是一個(gè)進(jìn)程,個(gè)人用戶在 PC 上運(yùn)行的字處理程序是一個(gè)進(jìn)程, 一個(gè)

8、系 統(tǒng)任務(wù)如輸出到打印機(jī)也是一個(gè)進(jìn)程,并可以提供允許進(jìn) 程創(chuàng)立與 其并發(fā)執(zhí)行的子進(jìn)程的系統(tǒng)調(diào)用。進(jìn)程需要特定的資源包括 CPU 時(shí)間、內(nèi)存、文件和 I/O 設(shè)備 來(lái) 完成工作。 這些資源或者在進(jìn)程創(chuàng)立時(shí)分配給它, 或者在其運(yùn)行時(shí) 分 配。除了在進(jìn)程創(chuàng)立時(shí)所獲得的各種物理資源和邏輯資源以外, 各 種 各樣的初始化數(shù)據(jù)或輸入也可能一同傳送給進(jìn)程。例如,考慮 一個(gè) 能夠在終端的顯示屏上顯示一個(gè)文件狀態(tài)的進(jìn)程。 這個(gè)進(jìn)程將獲 得包 含輸入的文件名, 將執(zhí)行相應(yīng)的指令和系統(tǒng)調(diào)用來(lái)獲取所期望的 信息 并顯示在終端上。著重強(qiáng)調(diào)程序本身不是進(jìn)程; 程序是靜態(tài)實(shí)體 passive entity 好 像是存儲(chǔ)在磁

9、盤中的文件的內(nèi)容 ,而進(jìn)程是動(dòng)態(tài)實(shí)體 active entity , 它用一個(gè)程序計(jì)數(shù)器來(lái)指明要執(zhí)行的下一條指令。進(jìn)程必 須要按順序執(zhí) 行, CPU 執(zhí)行完進(jìn)程的一條指令后再執(zhí)行下一條,直到 進(jìn)程結(jié)束。進(jìn) 一步地講,一次最多執(zhí)行一條代表該進(jìn)程的指令。 這樣, 從來(lái)就不會(huì) 出現(xiàn)兩個(gè)獨(dú)立運(yùn)行的序列。 但一個(gè)程序在運(yùn)行時(shí)創(chuàng)立多個(gè) 進(jìn)程是非常普遍的。進(jìn)程是并發(fā)程序設(shè)計(jì)的一個(gè)工具, 并發(fā)程序設(shè)計(jì)支撐了多道程序 設(shè)地解計(jì),由于進(jìn)程能確切、動(dòng)態(tài)地刻畫(huà)計(jì)算機(jī)系統(tǒng)內(nèi)部的并發(fā)性,更好 決系統(tǒng)資源的共享性,所以,在操作系統(tǒng)的開(kāi)展史上,進(jìn)程概念 被較早 地引入了系統(tǒng)。 它在操作系統(tǒng)的理論研究和設(shè)計(jì)實(shí)現(xiàn)上均發(fā)揮 了重要

10、 作用。 采用進(jìn)程概念使得操作系統(tǒng)結(jié)構(gòu)變得清晰, 主要表現(xiàn)如 下。 1一個(gè)進(jìn)程到另一個(gè)進(jìn)程的控制轉(zhuǎn)移由進(jìn)程調(diào)度機(jī)構(gòu)統(tǒng)一管理,不能雜亂無(wú)章,隨意進(jìn)行。 2進(jìn)程之間的交互如信號(hào)發(fā)送、消息傳遞和同步互斥等活動(dòng)由通信及同步機(jī)制完成, 從而使進(jìn)程無(wú)法有意或無(wú)意破壞其他進(jìn)程的 數(shù) 據(jù)。因此,每個(gè)進(jìn)程相對(duì)獨(dú)立, 相互隔離, 提高了系統(tǒng)的 xx 和可 靠性。 3進(jìn)程結(jié)構(gòu)較好地刻畫(huà)了系統(tǒng)的并發(fā)性,動(dòng)態(tài)地描述出系統(tǒng) 的 執(zhí)行過(guò)程,因而具有進(jìn)程結(jié)構(gòu)的操作系統(tǒng),結(jié)構(gòu)清晰、整齊劃一,可維護(hù)性好。3主存儲(chǔ)器管理主存儲(chǔ)器是現(xiàn)代計(jì)算機(jī)系統(tǒng)運(yùn)行的核心。 主存儲(chǔ)器是由字或字節(jié) 組 成的大型隊(duì)列, 每個(gè)字或字節(jié)都有它自己的地址。

11、主存儲(chǔ)器是 CPU 和 I/O 設(shè)備共享的大容量快速存儲(chǔ)器。中央處理器在取指令周期中 從主存儲(chǔ)器 中讀取指令,而且在取數(shù)據(jù)周期中從主存儲(chǔ)器中讀 / 寫(xiě)數(shù) 據(jù)。通過(guò) DMA 動(dòng)態(tài)內(nèi)存存取, I/O 操作也實(shí)現(xiàn)了對(duì)主存儲(chǔ)器的數(shù) 據(jù)讀/ 寫(xiě)。通常 主存儲(chǔ)器是 CPU 唯一能夠直接尋址和訪問(wèn)的大容量存 儲(chǔ)空間。例如, CPU 要處理磁盤中的數(shù)據(jù),那么 CPU 首先發(fā)出 I/O 調(diào) 用將這些數(shù)據(jù)傳 送到主存儲(chǔ)器中。 同樣,指令必須在存儲(chǔ)器中才能夠 由 CPU 執(zhí)行。在程序 運(yùn)必須要把程序映射到絕對(duì)地址并載入內(nèi)存中才可以執(zhí)行。行時(shí),它通過(guò)產(chǎn)生絕對(duì)地址來(lái)從內(nèi)存中訪問(wèn)程序指令和數(shù)據(jù)。 最后, 程 序結(jié)束,釋放

12、所占的內(nèi)存空間,方便下一個(gè)程序載入。為了提高 CPU 利用率和計(jì)算機(jī)響應(yīng)速度, 必須在內(nèi)存中保存多個(gè) 程序。 有許多不同的內(nèi)存管理策略, 而且不同算法的效率取決于具體 的 環(huán)境。為具體的系統(tǒng)選擇內(nèi)存管理策略要考慮許多因素尤其是 系統(tǒng) 的硬件設(shè)計(jì)。每種算法都需要自己的硬件支持。操作系統(tǒng)要負(fù)責(zé)以下與內(nèi)存管理相關(guān)的工作: 跟蹤內(nèi)存使用情況, 明確哪一局部正在使用和為誰(shuí)所用; 在內(nèi)存空間有效時(shí)決定將哪個(gè) 進(jìn)程載入內(nèi)存; 根據(jù)需要分配和釋放內(nèi)存空間。4文件管理文件管理是操作系統(tǒng)中可視性最強(qiáng)的組件之一。 計(jì)算機(jī)能夠?qū)?shù) 據(jù) 存儲(chǔ)在各種類型的物理介質(zhì)上。 磁帶、磁盤和光盤是最常用的介質(zhì)。 每 種介質(zhì)都有自己

13、的特性和物理結(jié)構(gòu)。 每個(gè)存儲(chǔ)媒體由一個(gè)驅(qū)動(dòng)器控 制 如磁盤驅(qū)動(dòng)器或磁帶驅(qū)動(dòng)器 ,這種驅(qū)動(dòng)器也有自己的獨(dú)有特性。 這 些特性包括訪問(wèn)速度、 容量、數(shù)據(jù)傳輸率和存取方式 順序的或隨 機(jī)的。為了便于使用計(jì)算機(jī)系統(tǒng), 操作系統(tǒng)提供了一個(gè)計(jì)算機(jī)系統(tǒng)的整 體 邏輯層面。操作系統(tǒng)把存儲(chǔ)設(shè)備的物理屬性抽象定義為一個(gè)邏輯存 儲(chǔ)單 元文件。 文件被映像到物理媒介中, 通過(guò)存儲(chǔ)設(shè)備來(lái)訪問(wèn)這 些文 件。二者文件是由其創(chuàng)立者定義的相關(guān)信息的集合。 一般的文件表現(xiàn)為程 序源程序和目標(biāo)代碼和數(shù)據(jù)。數(shù)據(jù)文件可能是數(shù)字的、字母的或 混合的。文件可能是形式自由的如文本文件,也可能有嚴(yán)格 定義的 格式如固定字段。由字、字節(jié)、行或記

14、錄組成的文件結(jié)構(gòu) 是其創(chuàng)立 者定義的。文件概念具有相當(dāng)廣泛的含義。操作系統(tǒng)通過(guò)管理大容量存儲(chǔ)體如由驅(qū)動(dòng)器控制的磁盤和磁 帶 實(shí)現(xiàn)了文件的抽象概念。另外,為了更簡(jiǎn)易地使用文件,通常將 他們組 織到目錄中。最后, 如果有多個(gè)用戶訪問(wèn)文件,可能需要控制 誰(shuí)以什 么樣的方式訪問(wèn)例如:讀、寫(xiě)、追加。操作系統(tǒng)要負(fù)責(zé)以下與文件管理相關(guān)的工作:創(chuàng)立和刪除文件;創(chuàng)立和刪除目錄; 將文件映像到輔助存儲(chǔ)器中; 將文件備份到永久非易失性存儲(chǔ) 體中。5 I/O 系統(tǒng)管理 操作系統(tǒng)的目的之一就是要向用戶隱藏具體的硬 件特性。例如, 在 UNIX 中,通過(guò) I/O 子系統(tǒng)向操作系統(tǒng)隱藏了 I/O 設(shè) 備的特性。 I/O 子

15、系統(tǒng)由以下幾個(gè)方面組成:一個(gè)內(nèi)存管理模塊,這包括 Buffering 、 Caching 和 SPOOLing ; 一 個(gè)通用設(shè)備驅(qū)動(dòng)程序接口; 針對(duì)具體硬件設(shè)備的驅(qū)動(dòng)程序。 6輔助存儲(chǔ)器管理 操作系統(tǒng)的主要目的是執(zhí)行程序。 這些程序在 運(yùn)行時(shí) 以及它們 要訪問(wèn)的數(shù)據(jù) 都必須在主存儲(chǔ)器中。 因?yàn)橹鞔?儲(chǔ)器的容量太小不能 存儲(chǔ)所有的程序和數(shù)據(jù), 而且掉電后會(huì)喪失所有 的存儲(chǔ)信息, 所以計(jì) 算機(jī)系統(tǒng)必須要提供輔助存儲(chǔ)器作為主存儲(chǔ)器的 后備。 大多數(shù)現(xiàn)代計(jì) 算機(jī)系統(tǒng)使用磁盤作為存儲(chǔ)程序和數(shù)據(jù)的主要聯(lián) 機(jī)存儲(chǔ)體。 大多數(shù)程 序包括編譯程序、匯編程序、排列程序、編輯 程序和 xx 程序在 載入內(nèi)存之前存

16、儲(chǔ)在磁盤上, 并且在運(yùn)行時(shí)利用 磁盤存儲(chǔ)它們所處理 的源文件和目標(biāo)文件。 因此, 合理的磁盤管理對(duì) 一個(gè)計(jì)算機(jī)系統(tǒng)來(lái)說(shuō) 是至關(guān)重要的。操作系統(tǒng)要負(fù)責(zé)以下與輔助存儲(chǔ)器管理相關(guān)的工作: 空閑空間管理; 空間分配;磁盤調(diào)度。因?yàn)轭l繁地使用輔助存儲(chǔ)器, 所以必須要能夠高效運(yùn)行。 而且計(jì) 算 機(jī)的整體運(yùn)行速度取決于磁盤子系統(tǒng)的速度和該子系統(tǒng)實(shí)現(xiàn)算法 的效 率。7 網(wǎng)絡(luò)管理 分布式系統(tǒng)是一個(gè)處理機(jī)的集合, 這些處理機(jī)既不共 享內(nèi)存和外 圍設(shè)備,也不共享時(shí)鐘。而是每個(gè)處理機(jī)擁有自己的本 地內(nèi)存和時(shí)鐘, 并且這些處理機(jī)可以通過(guò)各種通信線路 如高速 總線或網(wǎng)絡(luò) 進(jìn)行通 信。一個(gè)分布式系統(tǒng)中的處理機(jī)在規(guī)模和功 能

17、上有所不同, 其中可能 包括小型微處理器、工作站、小型機(jī)和 大型通用計(jì)算機(jī)。在分布式系統(tǒng)中,處理機(jī)通過(guò)通信網(wǎng)絡(luò) XX,有多種不同的 方 法可以配置該網(wǎng)絡(luò)。 這種網(wǎng)絡(luò)可以完全或局部地連接。 通信網(wǎng)絡(luò)的 設(shè) 計(jì)必須要考慮報(bào)文路由選擇和連接策略,以及爭(zhēng)用和平安的問(wèn)題。分布式系統(tǒng)將物理上相互獨(dú)立的可能不同種類的系統(tǒng)集合成為 一 個(gè)獨(dú)立相連的系統(tǒng), 它具有向用戶提供訪問(wèn)由系統(tǒng)維護(hù)的各種資源 的了數(shù)能力。對(duì)共享資源的訪問(wèn)加快了計(jì)算速度、增強(qiáng)了系統(tǒng)功能、提高據(jù)的可用性并加強(qiáng)了可靠性操作系統(tǒng)把網(wǎng)絡(luò)細(xì)節(jié)包含在了網(wǎng)絡(luò) 接口設(shè)備驅(qū)動(dòng)程序中,于是將網(wǎng)絡(luò)訪問(wèn)泛化為一種文件訪問(wèn)的形式。 因此, 分布式系統(tǒng)所使用的協(xié)議在很

18、大程度上影響到系統(tǒng)的效率和 xx 。8系統(tǒng)保護(hù)如果一個(gè)計(jì)算機(jī)系統(tǒng)有多個(gè)用戶并允許并行執(zhí)行多個(gè)進(jìn)程, 那么 必 須要保護(hù)各個(gè)進(jìn)程免受其他進(jìn)程的侵?jǐn)_。 為此,需要提供一種機(jī)制 來(lái) 保證只有那些從操作系統(tǒng)獲取了適宜權(quán)限的進(jìn)程能夠操作文件、 存 儲(chǔ) 段、 CPU 和其他資源。例如, 內(nèi)存尋址硬件確保了一個(gè)進(jìn)程只能在自己的地址空間內(nèi)執(zhí) 行, 計(jì)時(shí)器確保進(jìn)程最終能夠放棄對(duì) CPU 的控制,用戶不能夠訪問(wèn)設(shè) 備控 制存放器;這樣,就保護(hù)了各種外圍設(shè)備的完整性。保護(hù)是操作系統(tǒng)定義的控制程序, 是進(jìn)程或用戶訪問(wèn)的機(jī)制。 這 個(gè) 機(jī)制必須要提供一種方法來(lái)描述要施加的控制, 以及強(qiáng)制執(zhí)行的方 法。通過(guò)檢測(cè)子系統(tǒng)接口

19、中潛伏的錯(cuò)誤,保護(hù)能夠增強(qiáng)系統(tǒng)的可靠 性。 對(duì)接口錯(cuò)誤的早期檢測(cè)常常能夠阻止一個(gè)子系統(tǒng)故障 xx 到其他 正常的 子系統(tǒng)。 一個(gè)未受保護(hù)的資源難以防止未授權(quán)或不適當(dāng)?shù)挠脩?的使用 或誤用。一個(gè)面向保護(hù)的系統(tǒng)提供了一種區(qū)分授權(quán)的和未 授權(quán)的使 用方法。9操作系統(tǒng)效勞操作系統(tǒng)提供了程序運(yùn)行的環(huán)境。 它為程序和程序用戶提供了特 定 的效勞。當(dāng)然, 不同的操作系統(tǒng)提供的具體效勞不同,但是我們能 夠 找出其共同局部。 提供的這些操作系統(tǒng)效勞是為了便于程序員設(shè)計(jì) 程 序。具體如下。程序執(zhí)行: 系統(tǒng)必須能夠?qū)⒊绦蜉d入內(nèi)存并運(yùn)行它。 程序必須能 夠 正常地或異常地指示錯(cuò)誤結(jié)束運(yùn)行。I/O 操作:一個(gè)正在運(yùn)行的

20、程序可能要請(qǐng)求 I/O 操作。這可能 會(huì)涉 及文件或 I/O 設(shè)備。針對(duì)具體的設(shè)備,需要特定的功能如倒 卷一個(gè)磁 帶驅(qū)動(dòng)器或清空一個(gè) CRT 屏幕顯示 。出于系統(tǒng)效率和保護(hù) 的原因, 用戶通常不能夠直接控制 I/O 設(shè)備。 因此,操作系統(tǒng)必須 要提供一種 I/O 運(yùn)行機(jī)制。文件系統(tǒng)處理:文件系統(tǒng)相當(dāng)有意思。顯然,程序需要能夠讀寫(xiě) 文 件,也要能夠創(chuàng)立和刪除文件。通信:在很多情況下,一個(gè)進(jìn)程需要與另外一個(gè)進(jìn)程交換信息。 通 信有兩種主要的方式。 第一種方式是在運(yùn)行在同一臺(tái)計(jì)算機(jī)上的進(jìn) 程 間通信;另外一種方式是運(yùn)行在由一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)連接的不同的計(jì) 算機(jī) 系統(tǒng)上的進(jìn)程間通信。 可以通過(guò)共享存儲(chǔ)器或

21、報(bào)文傳送 這種方 式中, 操作系統(tǒng)在進(jìn)程之間將信息打包移動(dòng) 的方式實(shí)現(xiàn)進(jìn)程間的通 信。錯(cuò)誤檢測(cè): 操作系統(tǒng)需要經(jīng)常注意可能發(fā)生的錯(cuò)誤。 錯(cuò)誤可能發(fā) 生 在 CPU 、內(nèi)存如存儲(chǔ)錯(cuò)誤或電源故障、 I/O 設(shè)備如磁帶奇偶 檢 驗(yàn)錯(cuò)誤、連結(jié)網(wǎng)絡(luò)失敗或打印機(jī)缺紙及用戶程序如運(yùn)算溢出、 試圖 訪問(wèn)非法存儲(chǔ)器地址或過(guò)多占用 CPU 時(shí)間中。對(duì)于每種類型 的錯(cuò)誤, 操作系統(tǒng)應(yīng)該能夠采取針對(duì)性措施以確保計(jì)算的正確性和相 容性。另外,操作系統(tǒng)還存在另外一些功能, 它們不是為了幫助用戶工 作,而是為了確保系統(tǒng)本身的高效運(yùn)行。如:資源分配:當(dāng)多個(gè)用戶登錄到系統(tǒng)中或同時(shí)有多個(gè)作業(yè)運(yùn)行時(shí), 必 須要在它們之間分配資源。

22、 操作系統(tǒng)管理許多不同類型的資源。 有 些 資源如 CPU 周期、主存儲(chǔ)器和外存儲(chǔ)器可能有專用的分配代 碼, 而其他的如 I/O 設(shè)備可能有更通用的請(qǐng)求和釋放代碼。例 如,在決 定如何最好地使用 CPU 的問(wèn)題上,操作系統(tǒng)的 CPU 調(diào)度程 序要考慮 CPU 速度、 必須要執(zhí)行的作業(yè)、 有效的存放器數(shù)量和其他 的一些因素; 賬戶管理: 我們希望跟蹤記錄每個(gè)用戶使用哪些類型的計(jì)算機(jī)資 源 和用了多少。這個(gè)記錄保持可能用于記賬以便用戶付賬或簡(jiǎn)單 地用 于累加使用率統(tǒng)計(jì)。 對(duì)于研究者來(lái)說(shuō), 使用率統(tǒng)計(jì)可能是個(gè)有效 的工 具。利用使用率統(tǒng)計(jì), 研究者可以重新配制系統(tǒng)以改善計(jì)算效勞; 保護(hù): 存儲(chǔ)在多用

23、戶計(jì)算機(jī)系統(tǒng)上的信息的所有者希望能夠控制 對(duì)該信息的 使用。 當(dāng)多個(gè)不相關(guān)的進(jìn)程并發(fā)執(zhí)行時(shí), 一個(gè)進(jìn)程不應(yīng)該 能夠干擾其 他進(jìn)程或操作系統(tǒng)本身。 保護(hù)包括了監(jiān)控所有對(duì)系統(tǒng)資源 的訪問(wèn)。對(duì) 來(lái)自外界的系統(tǒng)平安檢測(cè) security 也是非常重要的。 這種保護(hù)往往 通過(guò)密碼的方式,用戶向系統(tǒng)驗(yàn)證口令才能訪問(wèn)資源。 它也包括了保護(hù) 外部 I/O 設(shè)備包括調(diào)制解調(diào)器和網(wǎng)絡(luò)適配器免 于非法的訪問(wèn)企圖和 記錄所有這樣的非法闖入。 如果一個(gè)系統(tǒng)受到保 護(hù)并且是平安的,那 么就必須要建立預(yù)防措施。一般,系統(tǒng)的平安強(qiáng) 度與其最薄弱的一個(gè)環(huán) 節(jié)密切相關(guān)。操作系統(tǒng)功能的實(shí)現(xiàn)模型 操作系統(tǒng)本身是一組程序, 像其他程序

24、一 樣也在處理器上執(zhí)行, 那么,操作系統(tǒng)程序是否組織成進(jìn)程?它是如何 控制和怎樣執(zhí)行的 呢?下面來(lái)討論這個(gè)問(wèn)題。 從操作系統(tǒng)的執(zhí)行方式 來(lái)看, 可以把它分 成:非進(jìn)程內(nèi)核模型、 OS 功能函數(shù)在用戶進(jìn) 程內(nèi)執(zhí)行的模型和 OS 功能函數(shù)作為獨(dú)立進(jìn)程執(zhí)行的模型 3 種。1 非進(jìn)程內(nèi)核模型 許多老式操作系統(tǒng)的實(shí)現(xiàn)采用非進(jìn)程內(nèi)核模型, 即操作系統(tǒng)的功 能都不組織成進(jìn)程來(lái)實(shí)現(xiàn),如 圖 1-2 所示,該模型包括一個(gè)較大的 操作系統(tǒng)內(nèi)核程序,進(jìn)程的執(zhí)行在內(nèi)核之外。當(dāng)XX發(fā)生時(shí),當(dāng)前運(yùn) 行進(jìn)程的上下文現(xiàn)場(chǎng)信息將被保存,并把控制權(quán)傳遞給操作 系統(tǒng)內(nèi)核。操作系統(tǒng)具有自己的內(nèi)存區(qū)和系統(tǒng)堆棧區(qū),用于控制過(guò)程調(diào)用和 返

25、回。它將在核心態(tài)執(zhí)行相應(yīng)的操作,并根據(jù) XX的類型和具體 的情況,或者是恢復(fù)被 XX進(jìn)程的現(xiàn)場(chǎng)并讓它繼續(xù)執(zhí)行,或是轉(zhuǎn)向進(jìn)程 調(diào) 度指派另一個(gè)就緒進(jìn)程運(yùn)行。在這種情況下,進(jìn)程的概念僅僅是針對(duì)用戶程序而言的,操作系 統(tǒng)代碼作為一個(gè)獨(dú)立實(shí)體在內(nèi)核模式下運(yùn)行。2. OS功能在用戶進(jìn)程內(nèi)執(zhí)行的模型小型機(jī)和工作站操作系統(tǒng)如UNIX等往往采用 OS的所有功能在用戶進(jìn)程內(nèi)執(zhí)行的模型,如圖1-3所示,在這種實(shí)現(xiàn)模型中,大部分操作系統(tǒng)功能組織成一組例行程序供用戶程序調(diào)用,認(rèn)為操作系統(tǒng)例程與用戶進(jìn)程是上下文相關(guān)的,操作系統(tǒng)的地址空間被包含在用戶進(jìn)程的地址空間中;因而,操作系統(tǒng)例行程序也在用戶進(jìn)程的上下文環(huán)境中執(zhí)行。圖1-4給出了 OS的所有功能在用戶進(jìn)程內(nèi)執(zhí)行的模型 中 的進(jìn)程映像,它既包含進(jìn)程控制塊、用戶堆棧、XX用戶程序和數(shù) 據(jù)的地址空間等,還包括操作系統(tǒng)內(nèi)核的程序、數(shù)據(jù)和系統(tǒng)堆棧區(qū)。當(dāng)發(fā)生一次XX或系統(tǒng)調(diào)用后,處理器狀態(tài)將被置成內(nèi)核模式,控制從用戶進(jìn)程手中被

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論