第一章 操作系統(tǒng)引論
1.1 操作系統(tǒng)的目標(biāo)和作用
1.1.1 操作系統(tǒng)的目標(biāo)
-
方便性(用戶的觀點(diǎn))
提供良好的刀崖、一致的用戶接口抄腔,彌補(bǔ)硬件系統(tǒng)的類型和數(shù)量差別蜀撑。
-
有效性(系統(tǒng)管理人員的觀點(diǎn))
提高系統(tǒng)資源的利用率村怪,提高系統(tǒng)的吞吐量
-
可擴(kuò)充性(系統(tǒng)開發(fā)人員的觀點(diǎn))
為適應(yīng)計(jì)算機(jī)硬件法瑟、體系結(jié)構(gòu)以及計(jì)算機(jī)應(yīng)用發(fā)展的要求冀膝。可擴(kuò)充性與 os 結(jié)構(gòu)有十分緊密的聯(lián)系霎挟。
-
開放性(開放的觀點(diǎn))
所謂開放性窝剖,是指系統(tǒng)能遵循世界標(biāo)準(zhǔn)規(guī)范,特別是遵循開發(fā)系統(tǒng)互聯(lián) OSI 國際標(biāo)準(zhǔn)酥夭。使各種計(jì)算機(jī)硬件系統(tǒng)能夠有效赐纱、協(xié)同地工作,實(shí)現(xiàn)應(yīng)用程序的可移植性和互操作性熬北。
1.1.2 操作系統(tǒng)的作用
- 從計(jì)算機(jī)系統(tǒng)組成觀點(diǎn)疙描,操作系統(tǒng)是系統(tǒng)軟件。
- 從服務(wù)用戶的觀點(diǎn)蒜埋,操作系統(tǒng)是用戶與計(jì)算機(jī)硬件之間接口淫痰。
- 從資源管理觀點(diǎn),操作系統(tǒng)是系統(tǒng)資源管理者整份。
- 從軟件分層待错、擴(kuò)充機(jī)器的觀點(diǎn),OS 實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象烈评,是擴(kuò)充裸機(jī)的第一層系統(tǒng)軟件火俄。
1.1.3 推動操作系統(tǒng)發(fā)展的主要動力
- 提高資源的利用率和系統(tǒng)性能:計(jì)算機(jī)發(fā)展的初期,計(jì)算機(jī)系統(tǒng)昂貴讲冠,用作集中計(jì)算瓜客;
- 方便用戶:用戶上機(jī)、調(diào)試程序竿开,分散計(jì)算時的事務(wù)處理和非專業(yè)用戶(商業(yè)和辦公谱仪、家庭);
- 器件的不斷更新?lián)Q代:CPU的位寬度(指令和數(shù)據(jù))否彩、快速外存疯攒;
- 計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展:單處理器、多處理器列荔、網(wǎng)絡(luò)敬尺;
- 新的應(yīng)用需求的不斷提出枚尼。
1.2 操作系統(tǒng)的發(fā)展過程
-
第0代(40年代未-50年代初)無操作系統(tǒng)
這時的計(jì)算機(jī)操作是由程序員采用人工操作方式直接使用計(jì)算機(jī)硬件系統(tǒng)。
-
第1代(50年代中-50年代末)初級單道批處理系統(tǒng)
它是為了減少人工操作時間和作業(yè)轉(zhuǎn)換時間提高CPU利用率而設(shè)計(jì)的砂吞。系統(tǒng)自動成批處理作業(yè)署恍,這是初級單道批處理系統(tǒng)。
-
第2代(60年代初-60年代中)多道程序設(shè)計(jì)共享系統(tǒng)
這一代操作系統(tǒng)包括多道批處理系統(tǒng)蜻直、采用交互方式的分時系統(tǒng)和以提高瞬時響應(yīng)時間為特征的實(shí)時系統(tǒng)盯质。
-
第3代(60年代中-70年代中)多模式系統(tǒng)
這一代計(jì)算機(jī)系統(tǒng)是通用系統(tǒng),這一代操作系統(tǒng)是多模式系統(tǒng)概而,即一個系統(tǒng)同時支持批處理唤殴、分時處理、實(shí)時處理和多重處理到腥。
-
第4代(70年代中- )網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)
網(wǎng)絡(luò)操作系統(tǒng)實(shí)現(xiàn)在計(jì)算機(jī)網(wǎng)絡(luò)上進(jìn)行信息交換、資源共享和互操作等功能蔚袍。分布式操作系統(tǒng)將地域上分散的各系統(tǒng)互連成一個具有整體功能的系統(tǒng)乡范,并可將一個任務(wù)分布地在各系統(tǒng)上運(yùn)行,實(shí)現(xiàn)分布式處理啤咽。
1.2.1 未配置操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)
特點(diǎn):計(jì)算機(jī)沒有配置操作系統(tǒng)晋辆、人工負(fù)責(zé)計(jì)算機(jī)的調(diào)度、人工負(fù)責(zé)作業(yè)編排順序宇整。
-
人工操作方式
缺點(diǎn):用戶獨(dú)占全機(jī)瓶佳、CPU 等待人工操作、計(jì)算機(jī)的資源利用率很低鳞青。
脫機(jī)輸入/輸出(Off-Line I/O)方式
1.2.2 單道批處理系統(tǒng)
目標(biāo):解決人機(jī)矛盾和高速 CPU 與低速 I/O 間矛盾等問題霸饲,提高系統(tǒng)資源的利用率和系統(tǒng)的吞吐量。
缺點(diǎn):系統(tǒng)中的資源得不到充分的利用臂拓。這是因?yàn)樵趦?nèi)存中僅有一道程序厚脉,每逢該程序在運(yùn)行中發(fā)出 I/O 請求后,CPU 便處于等待狀態(tài)胶惰,必須在其 I/O 完成后才繼續(xù)運(yùn)行傻工。在 t2~t3、t6~t7 時間間隔內(nèi) CPU 空閑孵滞。
1.2.3 多道批處理系統(tǒng)
目標(biāo):為了進(jìn)一步提高資源利用率和系統(tǒng)吞吐量中捆,在硬件采用通道和中斷技術(shù)支持并行操作的情況下,引入了多道程序設(shè)計(jì)技術(shù)坊饶,由此形成多道批處理系統(tǒng)泄伪。
優(yōu)點(diǎn):資源利用率高、系統(tǒng)吞吐量大幼东;
缺點(diǎn):平均周轉(zhuǎn)時間長臂容、無交互能力科雳。
衡量操作系統(tǒng)或整個計(jì)算機(jī)系統(tǒng)的性能指標(biāo):資源利用率、吞吐量脓杉、周轉(zhuǎn)時間糟秘。
多道批處理系統(tǒng)需要解決的問題:處理機(jī)爭用問題、內(nèi)存分配和保護(hù)問題球散、I/O 設(shè)備分配問題尿赚、文件的組織和管理問題、作業(yè)管理問題蕉堰、用戶與系統(tǒng)的接口問題凌净。
1.2.4 分時系統(tǒng)
分時系統(tǒng)的形成和發(fā)展的動力是用戶的需要——人機(jī)交互、共享主機(jī)屋讶。
分時系統(tǒng)是指在一臺主機(jī)上連接了多個帶有顯示器和鍵盤的終端冰寻,它同時允許許多用戶通過終端以交互方式使用計(jì)算機(jī)共享主機(jī)中的資源。
分時系統(tǒng)的關(guān)鍵問題:及時接受皿渗、及時處理斩芭。
特征:多路性(同時性)、獨(dú)立性乐疆、及時性划乖、交互性。
響應(yīng)時間是分時系統(tǒng)的重要指標(biāo)挤土,它是用戶發(fā)終端命令到系統(tǒng)作出響應(yīng)之間的時間間隔琴庵。
1.2.5 實(shí)時系統(tǒng)
實(shí)時系統(tǒng)是指系統(tǒng)能及時響應(yīng)外部事件的請求,在規(guī)定的時間內(nèi)完成對該事件的處理仰美,并控制所有實(shí)時任務(wù)協(xié)調(diào)一致的運(yùn)行迷殿。
常見的實(shí)時系統(tǒng):工業(yè)(武器)控制系統(tǒng)、信息查詢系統(tǒng)咖杂、多媒體系統(tǒng)贪庙、嵌入式系統(tǒng)。
實(shí)時任務(wù)的類型:周期性實(shí)時任務(wù)和非周期性實(shí)時任務(wù)翰苫、硬實(shí)時任務(wù)和軟實(shí)時任務(wù)止邮。
特征:多路性、獨(dú)立性奏窑、及時性导披、交互性、可靠性埃唯。
1.2.6 微機(jī)操作系統(tǒng)的發(fā)展
單用戶單任務(wù) --> 單用戶多任務(wù) --> 多用戶多任務(wù)
1.2.7 多處理機(jī)操作系統(tǒng)
提高性能有兩條途徑:提高各個組成部分的速度撩匕、增大處理的并行程度。
類型:緊密耦合(一個 OS 核心)墨叛、松散耦合(獨(dú)立運(yùn)行 OS)止毕。
1.3 操作系統(tǒng)的基本特性
并發(fā)性模蜡、共享性、虛擬性扁凛、異步性忍疾。
-
并發(fā)性
并行性和并發(fā)性是既相似又有區(qū)別的兩個概念。并行性是指兩個或多個事件在同一時刻發(fā)生谨朝。而并發(fā)性是指兩個或多個事件在同一時間間隔內(nèi)發(fā)生卤妒。
-
共享性
- 互斥共享方式:雖然可以提供給多個進(jìn)程(線程)使用,但應(yīng)規(guī)定在一段時間內(nèi)字币,只允許一個進(jìn)程訪問該資源则披。
- 同時訪問方式:允許在一段時間內(nèi)由多個進(jìn)程“同時”對它們進(jìn)行訪問。
-
虛擬性
虛擬是操作系統(tǒng)管理系統(tǒng)資源的重要手段洗出,可提高資源利用率士复。
- 時分復(fù)用技術(shù):虛擬處理機(jī)技術(shù)、虛擬設(shè)備技術(shù)翩活。
- 空分復(fù)用技術(shù)判没。
-
異步性
在多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行隅茎,但由于資源等因素的限制,程序的執(zhí)行并非“一氣呵成”嫉沽,而是以“走走停捅傧”的方式運(yùn)行,即程序是以異步方式運(yùn)行的绸硕。
兩種不確定性:每個程序(進(jìn)程)執(zhí)行的速度和時間不確定堂竟,各程序(進(jìn)程)之間推進(jìn)的序列也不確;每個程序(進(jìn)程)執(zhí)行結(jié)果不確定玻佩。
1.4 操作系統(tǒng)的主要功能
1.4.1 處理機(jī)(進(jìn)程)管理
處理機(jī)管理的主要任務(wù)出嘹,是對處理機(jī)進(jìn)行分配,并對其運(yùn)行進(jìn)行有效的控制和管理咬崔。在多道程序環(huán)境下税稼,處理機(jī)的分配和運(yùn)行以進(jìn)程為基本單位。
- 進(jìn)程控制:創(chuàng)建垮斯、撤銷郎仆、掛起、改變運(yùn)行優(yōu)先級等兜蠕;
- 進(jìn)程同步:協(xié)調(diào)并發(fā)進(jìn)程之間的推進(jìn)步驟扰肌,以協(xié)調(diào)資源共享;
- 進(jìn)程通信:進(jìn)程之間傳送數(shù)據(jù)熊杨,以協(xié)調(diào)進(jìn)程間的協(xié)作曙旭;
- 進(jìn)程調(diào)度:作業(yè)和進(jìn)程的調(diào)度切換盗舰,以充分利用處理機(jī)資源和提高系統(tǒng)性能.
1.4.2 存儲器的管理
存儲器管理的主要任務(wù)是為多道程序的運(yùn)行提供良好的環(huán)境,方便用戶使用存儲器桂躏,提高存儲器的利用率钻趋,以及能從邏輯上來擴(kuò)充內(nèi)存,因此存儲管理應(yīng)具有:
- 內(nèi)存分配與回收:靜態(tài)沼头、動態(tài)爷绘;
- 內(nèi)存保護(hù):保證進(jìn)程間互不干擾、相互保密进倍;
- 地址映射:進(jìn)程邏輯地址到內(nèi)存物理地址的映射土至;
- 內(nèi)存擴(kuò)充:提高內(nèi)存利用率、擴(kuò)大進(jìn)程的內(nèi)存空間猾昆。
1.4.3 設(shè)備管理
設(shè)備管理的任務(wù)是登記各 I/O 設(shè)備狀態(tài)陶因,管理并完成用戶提出的 I/O 請求,按一定的策略為用戶分配 I/O 設(shè)備垂蜗。同時提高 CPU 和 I/O 設(shè)備的利用率楷扬,提高 I/O 速度,方便用戶使用 I/O 設(shè)備:
- 緩沖管理:匹配CPU和外設(shè)的速度贴见,提高兩者的利用率烘苹;
- 設(shè)備分配與回收:在多用戶間共享 I/O 設(shè)備資源;
- 設(shè)備處理:利用設(shè)備驅(qū)動程序完成對設(shè)備的操作片部;
- 設(shè)備獨(dú)立性(device independence):提供統(tǒng)一的I/O設(shè)備接口镣衡,使應(yīng)用程序獨(dú)立于物理設(shè)備,提高可適應(yīng)性档悠;
- 虛擬設(shè)備(virtual device):設(shè)備由多個進(jìn)程共享廊鸥,每個進(jìn)程如同獨(dú)占。
1.4.4 文件管理
文件系統(tǒng)的任務(wù)是對用戶文件和系統(tǒng)文件進(jìn)行管理辖所,以方便用戶使用惰说,并保證文件的安全性。
-
文件存儲空間管理
解決如何存放信息缘回,以提高空間利用率和讀寫性能吆视。
-
目錄管理
解決信息檢索問題。文件的屬性(如文件名)酥宴、單一副本賦予多文件名揩环。
-
文件的讀寫管理和存取控制
解決信息安全問題。系統(tǒng)設(shè)口令"哪個用戶"幅虑、用戶分類"哪個用戶組"丰滑、文件權(quán)限"針對用戶或用戶組的讀寫權(quán)"。
1.4.5 用戶接口
- 用戶接口:脫機(jī)用戶接口、聯(lián)機(jī)用戶接口褒墨、圖形用戶接口炫刷。
- 程序接口:為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置,是用戶程序取得操作系統(tǒng)服務(wù)的唯一途徑郁妈。
1.4.6 現(xiàn)代操作系統(tǒng)的新功能
- 系統(tǒng)安全:認(rèn)證技術(shù)浑玛、密碼技術(shù)、訪問控制技術(shù)噩咪、反病毒技術(shù)顾彰;
- 網(wǎng)絡(luò)的功能和服務(wù):網(wǎng)絡(luò)通信、資源管理胃碾、應(yīng)用互操作涨享;
- 支持多媒體:接納控制功能、實(shí)時調(diào)度仆百、多媒體文件的存儲厕隧。
1.5 OS 結(jié)構(gòu)設(shè)計(jì)
1.5.1 傳統(tǒng)操作系統(tǒng)結(jié)構(gòu)
-
無結(jié)構(gòu)操作系統(tǒng)
早期的 OS 是無結(jié)構(gòu)的,又稱為整體結(jié)構(gòu)系統(tǒng)俄周。
-
模塊化結(jié)構(gòu) OS
-
模塊化程序設(shè)計(jì)技術(shù)的基本概念
image -
模塊獨(dú)立性
在模塊-接口法中吁讨,關(guān)鍵問題是模塊的劃分和規(guī)定好模塊之間的接口,在劃分模塊時峦朗,應(yīng)在兩者間進(jìn)行權(quán)衡建丧。
-
模塊接口法的優(yōu)點(diǎn)
- 提高OS設(shè)計(jì)的正確性、可理解性和可維護(hù)性波势。
- 增強(qiáng)OS的可適應(yīng)性翎朱。
- 加速OS的開發(fā)過程。
-
模塊接口法的缺點(diǎn)
- 在OS設(shè)計(jì)時艰亮,對各模塊間的接口規(guī)定很難滿足在模塊設(shè)計(jì)完成后對接口的實(shí)際需求。
- 在OS設(shè)計(jì)階段挣郭,設(shè)計(jì)者必須做出一系列的決定(決策)迄埃,每一個決定必須建立在上一個決定的基礎(chǔ)上,但模塊化結(jié)構(gòu)設(shè)計(jì)中兑障,各模塊的設(shè)計(jì)齊頭并進(jìn)侄非,無法尋找一個可靠的決定順序,造成各種決定的“無序性”流译,這將使程序人員很難做到“設(shè)計(jì)中的每一步?jīng)Q定”都是建立在可靠的基礎(chǔ)上逞怨,因此模塊-接口法又被稱為“無序模塊法”。
-
-
分層式結(jié)構(gòu) OS
分層法的設(shè)計(jì)任務(wù)是福澡,s在目標(biāo)系統(tǒng) An 和裸機(jī)系統(tǒng)(又稱宿主系統(tǒng)) A0 之間叠赦,鋪設(shè)若干個層次的軟件 A1、A2革砸、A3除秀、…糯累、An-1,使 An 通過 An-1册踩、An-2泳姐、…、A2暂吉、A1 層胖秒,最終能在 A0 上運(yùn)行。在操作系統(tǒng)中慕的,常采用自底向上法來鋪設(shè)這些中間層阎肝。
優(yōu)點(diǎn):易保證系統(tǒng)的正確性、易擴(kuò)充性和維護(hù)性业稼。
缺點(diǎn):系統(tǒng)效率降低盗痒。
1.5.2 客戶/服務(wù)器模式簡介
三部分:客戶機(jī)、服務(wù)器低散、網(wǎng)絡(luò)系統(tǒng)俯邓。
客戶/服務(wù)器之間的交互:客戶發(fā)送請求消息;服務(wù)器接收消息熔号;服務(wù)器回送消息稽鞭;客戶機(jī)接收消息。
優(yōu)點(diǎn):數(shù)據(jù)的分布式處理和存儲引镊、便于集中管理朦蕴、靈活性和可擴(kuò)充性、易于改編應(yīng)用軟件弟头。
1.5.3 面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)簡介
優(yōu)點(diǎn): (1) 通過“重用”提高產(chǎn)品質(zhì)量和生產(chǎn)率吩抓;(2) 使系統(tǒng)具有更好的易修改性和易擴(kuò)展性;(3) 更易于保證系統(tǒng)的“正確性”和“可靠性”赴恨。
1.5.4 微內(nèi)核 OS 結(jié)構(gòu)
- 足夠小的內(nèi)核
- 基于客戶/服務(wù)器模式
- 應(yīng)用“機(jī)制與策略分離”原理
- 采用面向?qū)ο蠹夹g(shù)
功能:進(jìn)程(線程)管理疹娶、低級存儲器管理、中斷和陷入管理伦连。
優(yōu)點(diǎn):(1)提高了系統(tǒng)的可擴(kuò)展性雨饺;(2) 增強(qiáng)了系統(tǒng)的可靠性;(3) 可移植性強(qiáng)惑淳;(4) 提供了對分布式系統(tǒng)的支持额港;(5) 融入了面向?qū)ο蠹夹g(shù)。