為什么學(xué)習(xí)操作系統(tǒng)?
1.加深對(duì)使用的OS的理解,有利于深入編程:用戶為了開(kāi)發(fā)應(yīng)用程序必須與操作系統(tǒng)打交道;?
2.編程時(shí)借鑒操作系統(tǒng)的設(shè)計(jì)思想和算法: 操作系統(tǒng)中所用的許多概念和技巧可以推廣應(yīng)用到其他領(lǐng)域;比如對(duì)JAVA虛擬機(jī)的理解
3.設(shè)計(jì)操作系統(tǒng)或者修改現(xiàn)有的系統(tǒng): 嵌入式系統(tǒng)(Embedded OS);
課程定位
地位:計(jì)算機(jī)相關(guān)各專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)技術(shù)基礎(chǔ)課程
涉及的內(nèi)容:現(xiàn)代操作系統(tǒng)變化巨大,其層次,內(nèi)涵,及在應(yīng)用領(lǐng)域、技術(shù)領(lǐng)域、服務(wù)領(lǐng)域等涉及內(nèi)容很多,沒(méi)有必要也不可能完全學(xué)完,高等學(xué)校《操作系統(tǒng)》課程還是局限于其基本原理部分。
現(xiàn)代操作系統(tǒng)不斷變化
應(yīng)用在變:從核心與外圍都有變化,信息處理多元、海量、高速、高性能,要求越來(lái)越高——可配置,可拆卸,可剪裁,可替換
軟件結(jié)構(gòu)在變:重用,安裝、配置;工具箱、服務(wù)組件、虛擬件等支持
硬件結(jié)構(gòu)和平臺(tái)在變:?jiǎn)魏?,多核,重?/p>
OS結(jié)構(gòu)、功能、性能、組件、算法、機(jī)制、接口、界面、安全等都在變化,但核心問(wèn)題和核心機(jī)制沒(méi)有變。
操作系統(tǒng)逐漸走下神壇
從監(jiān)控程序→OS→組件式OS
從OS→OS工具箱→OS平臺(tái)
從計(jì)算機(jī)→智能信息終端(手機(jī)、pda,嵌入式平臺(tái)等)
OS原有的理論、機(jī)制與技術(shù)已經(jīng)廣泛應(yīng)用于數(shù)據(jù)庫(kù)、信息系統(tǒng)、移動(dòng)系統(tǒng)…
人們對(duì)OS的理解逐漸深入,基于OS的編程和應(yīng)用開(kāi)發(fā)蓬勃開(kāi)展
操作系統(tǒng)家族龐大
高端系統(tǒng)(大型機(jī)、陣列機(jī)…)
專(zhuān)用系統(tǒng)(實(shí)時(shí)、分布…)
桌面系統(tǒng)(個(gè)人通用OS)
智能終端系統(tǒng)(個(gè)人移動(dòng)終端、手機(jī)…)
嵌入系統(tǒng)(智能設(shè)備、儀器…)
操作系統(tǒng)課程教學(xué)的層次
研究生 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本科生? ??????????????????????????????專(zhuān)科生
? OS結(jié)構(gòu) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? OS原理????????????????????????????? OS原理適度
? OS新發(fā)展 ? ? ? ? ? ? ? ? ? ? ? ? ?? OS資源管理????????????????????? OS平臺(tái)操作
? OS新技術(shù) ? ? ? ? ? ? ? ? ? ? ? ? ?? OS系統(tǒng)服務(wù)????????????????????? OS系統(tǒng)服務(wù)
? OS組件設(shè)計(jì) ? ? ? ? ? ? ? ? ? ? ?? 基于OS編程????????????????????? OS編程適度
? OS系統(tǒng)設(shè)計(jì) ? ? ? ? ? ? ? ? ? ? ?? 主流OS案例????????????????????? 主流OS應(yīng)用
操作系統(tǒng)課程教學(xué)的層次(IEEE,ACM)
科學(xué)型? ??????????????????????????工程型? ??????????????????????????應(yīng)用型
? 并發(fā)、并行 ? ? ? ? ? ? ? ? ?? 并發(fā)、并行 ? ? ? ? ? ? ? ??? 原理適度
? 結(jié)構(gòu)、模型 ? ? ? ? ? ? ? ? ?? 原理、技術(shù) ? ? ? ? ? ? ? ??? 操作、實(shí)踐
? 算法、分析 ? ? ? ? ? ? ? ? ?? 資源利用管理 ? ? ? ? ? ??? OS系統(tǒng)維護(hù)
? 設(shè)計(jì)、替換 ? ? ? ? ? ? ? ? ?? 服務(wù)調(diào)用編程 ? ? ? ? ? ??? OS編程適度
? 改進(jìn)、優(yōu)化 ? ? ? ? ? ? ? ? ?? 主流OS案例 ? ? ? ? ? ? ? ? 主流OS應(yīng)用
? 新結(jié)構(gòu)新技術(shù) ? ? ? ? ? ? ?? OS安全防護(hù) ? ? ? ? ? ? ??? OS安全保護(hù)


1.1 操作系統(tǒng)的目標(biāo)、作用和模型
1. ?OS的目標(biāo)
方便性:用戶無(wú)需了解底層硬件,無(wú)需用0、1機(jī)器語(yǔ)言操作。(可以說(shuō)不用手,用工具,進(jìn)入石器時(shí)代了。)
有效性:CPU、I/O、存儲(chǔ)等的管理專(zhuān)門(mén)、合理地被組織管理起來(lái),提高資源的利用率。
可擴(kuò)充性:擴(kuò)充應(yīng)用軟件;適應(yīng)硬件和體系結(jié)構(gòu)發(fā)展,擴(kuò)充底層管理功能模塊等。
開(kāi)放性:網(wǎng)絡(luò)環(huán)境,遵循開(kāi)放互聯(lián)標(biāo)準(zhǔn)。
2. ?OS的作用
1) 作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口
* 達(dá)成了方便性的目標(biāo)。*
用戶通過(guò)OS來(lái)使用計(jì)算機(jī)系統(tǒng)?;蛘哒f(shuō),用戶在OS幫助下,能夠方便、快捷、安全、可靠地操縱計(jì)算機(jī)硬件和運(yùn)行自己的程序。
提供三種供用戶操作OS的方式,如下圖:

2)OS作為計(jì)算機(jī)系統(tǒng)資源的管理者
* 達(dá)成有效性目標(biāo) *
? ? ? ? ? ? ? ? ?處理器 ? ? ? ——》 ? ? ? ? ? ? ? ? ? ? ? ? 處理器管理 ? ? ? ? ? ? ? ?Os
? ? 資 ? ? ? ? 存儲(chǔ)器 ? ? ?——》 ? ? ? ? ? ? ? ? ? ? ? ? 存儲(chǔ)器管理 ? ? ? ? ? ? ? ? 主要
? ? 源 ? ? ? ? I/O設(shè)備 ? ? ——》 ? ? ? ? ? ? ? ? ? ? ? ? I/O設(shè)備管理 ? ? ? ? ? ? ? ?管理
? ? ? ? ? ? ? ? ?信息(數(shù)據(jù)和程序) ? ? ——》 ? ? ? 文件管理 ? ? ? ? ? ? ? ? ? ? ?功能
3)OS用作擴(kuò)充機(jī)器
* 系統(tǒng)軟件以及更上層的用戶應(yīng)用軟件在操作系統(tǒng)虛擬機(jī)上運(yùn)行:計(jì)算機(jī)成為功能更強(qiáng)大的多層虛擬機(jī)。
* 操作系統(tǒng)附加在裸機(jī)上第一層,對(duì)裸機(jī)的首次擴(kuò)充: “虛擬機(jī)”
* 最低層:
物理“裸機(jī)”

目標(biāo) ???????????????????????????????????????????????????? 作用
方便性:? ??????????????????????????????????????????????1) 作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口
有效性:? ??????????????????????????????????????????????2)OS作為計(jì)算機(jī)系統(tǒng)資源的管理者
可擴(kuò)充性:? ??????????????????????????????????????????3)OS用作擴(kuò)充機(jī)器
開(kāi)放性:
1.2 操作系統(tǒng)的發(fā)展過(guò)程
推動(dòng)OS萌芽、發(fā)展、變化的主要?jiǎng)恿Γ?br>
1.方便用戶
2.提高計(jì)算機(jī)資源利用率
3.硬件器件不斷更新?lián)Q代:8bit ->16,32
4.計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展:?jiǎn)蜟PU,多CPU,網(wǎng)絡(luò)
1. 人工操作方式
1946-50年代中:電子管時(shí)代,計(jì)算機(jī)速度慢,無(wú)操作系統(tǒng),計(jì)算機(jī)資源昂貴;
工作方式:
????????????????????用戶:既是程序員又是操作員;用戶是計(jì)算機(jī)專(zhuān)業(yè)人員;
????????????????????編程語(yǔ)言:機(jī)器語(yǔ)言;
????????????????????輸入輸出:紙帶或卡片;
計(jì)算機(jī)工作特點(diǎn):
????????????????????用戶獨(dú)占全機(jī),資源利用率極低;
????????????????????CPU等待用戶,計(jì)算前,手工裝入紙帶或卡片;計(jì)算完成后,手工卸取紙帶或 ? ? ? ? 卡片;CPU利用率低;
主要矛盾:
????????????????????人機(jī)矛盾----人工操作嚴(yán)重降低了計(jì)算機(jī)資源的利用率
提高效率的途徑:
????????????????????脫機(jī)輸入/輸出技術(shù)。
2. 脫機(jī)輸入/輸出(Off-Line I/O)方式:
等待人工操作紙帶輸入數(shù)據(jù)的不是CPU,而是外圍機(jī),一定程度上解決人機(jī)矛盾。

脫機(jī)I/O方式的主要優(yōu)點(diǎn):
????????????????????減少了CPU的空閑時(shí)間
????????????????????提高I/O速度
脫機(jī)I/O方式的主要缺點(diǎn):
????????????????????系統(tǒng)開(kāi)銷(xiāo)大!
3. 單道批處理系統(tǒng)(Simple Batch Processing System)
作業(yè)成批、脫機(jī)方式輸入到磁帶或磁盤(pán)上
進(jìn)一步減少脫機(jī)I/O中裝卸磁帶等耗時(shí)操作
系統(tǒng)監(jiān)督程序(Monitor)控制作業(yè)自動(dòng)過(guò)渡,一個(gè)接一個(gè)的連續(xù)處理。
特征:
????????????單道性
????????????順序性
????????????自動(dòng)性
優(yōu)點(diǎn):
????????????一定程度解決人機(jī)矛盾,CPU與I/O速度矛盾;
????????????提高了資源利用率和系統(tǒng)吞吐量;
????????????算做OS的前身,但還不是現(xiàn)在所理解的OS;

4. 多道批處理系統(tǒng)
* 一個(gè)重要思想誕生:多道程序設(shè)計(jì) *
用戶作業(yè)、外存上排隊(duì),稱(chēng)為“后備隊(duì)列”;
作業(yè)調(diào)度程序、按一定的算法、從后備隊(duì)列中選擇若干作業(yè) 調(diào)入內(nèi)存
入內(nèi)存的作業(yè)、共享CPU和系統(tǒng)中的各種資源,自動(dòng)批量處理。

“多道”程序有什么好處?
CPU利用率提高:減少了CPU等待時(shí)間(正在運(yùn)行的程序若因?yàn)镮/O操作暫停,可調(diào)度其他程序執(zhí)行,不必裝卸。)
內(nèi)存利用率提高:容量盡可能多的被利用
多種I/O設(shè)備并發(fā)被使用,也提高了利用率
總體->系統(tǒng)吞吐量增加(雖然CPU總是串行的,但一段時(shí)間內(nèi)被運(yùn)行的作業(yè)數(shù)相對(duì)要多)
1)多道批處理系統(tǒng)的特征:
多道性
無(wú)序性
????????????????作業(yè)入內(nèi)存由算法決定,不按提交順序。入內(nèi)存后順序執(zhí)行。
調(diào)度性
????????????????包括作業(yè)調(diào)度、進(jìn)程調(diào)度

2)多道批處理系統(tǒng)的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
????????????資源利用率高:CPU和內(nèi)存利用率較高;
????????????系統(tǒng)吞吐量大:?jiǎn)挝粫r(shí)間內(nèi)完成的工作總量大;
缺點(diǎn):
????????????平均周轉(zhuǎn)時(shí)間長(zhǎng):短作業(yè)的周轉(zhuǎn)時(shí)間顯著增長(zhǎng);
????????????無(wú)交互能力:整個(gè)作業(yè)完成后或中間出錯(cuò)時(shí),才與用戶交互,不利于調(diào)試和修改;
3)多道批處理系統(tǒng)解決的五大問(wèn)題:
a.處理機(jī)管理問(wèn)題
b.內(nèi)存管理問(wèn)題
c.I/O設(shè)備管理問(wèn)題
d.文件管理問(wèn)題
e.作業(yè)管理問(wèn)題
操作系統(tǒng)是:一組控制和管理計(jì)算機(jī)硬件和軟件資源,合理地對(duì)各類(lèi)作業(yè)進(jìn)行調(diào)度(多道),方便用戶使用的程序的集合。
5.分時(shí)系統(tǒng)(time-sharing system)
1)分時(shí)系統(tǒng)的產(chǎn)生
用戶的新需求是主要?jiǎng)恿Γ?/p>
A.人—機(jī)交互
B.共享主機(jī)
C.便于用戶上機(jī)
2)分時(shí)系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵問(wèn)題
交互:當(dāng)用戶在自己的終端上鍵入命令時(shí),系統(tǒng)應(yīng)能及時(shí)接收并及時(shí)處理該命令,再將結(jié)果返回給用戶。
共享:強(qiáng)調(diào)即使有多個(gè)用戶同時(shí)通過(guò)自己的鍵盤(pán)鍵入命令,系統(tǒng)也應(yīng)能全部地及時(shí)接收并處理。
? ????????? (1)及時(shí)接收:多路卡,緩沖區(qū)
? ????????? (2)及時(shí)處理:終端請(qǐng)求作業(yè)直接進(jìn)入內(nèi)存,設(shè)置時(shí)間片
3)分時(shí)系統(tǒng)的實(shí)現(xiàn)方法
改變批處理系統(tǒng)的運(yùn)行方式:
????????????????多個(gè)用戶連接主機(jī)
????????????????請(qǐng)求的作業(yè)發(fā)送到主機(jī)后,直接進(jìn)入主機(jī)內(nèi)存以快速響應(yīng)
????????????????系統(tǒng)采用時(shí)間片輪轉(zhuǎn)方式處理服務(wù)請(qǐng)求
響應(yīng)時(shí)間RT(response time)≈時(shí)間片×用戶數(shù)
時(shí)間片:就是分配給進(jìn)程運(yùn)行的一段時(shí)間(time slice)。
4)分時(shí)系統(tǒng)的特征:
????????????????多路、獨(dú)立、及時(shí)、交互
多路性:多個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī),共享CPU和其他資源,充分利用系統(tǒng)資源。
宏觀上:是多個(gè)人同時(shí)使用一個(gè)CPU
微觀上:多個(gè)人在不同時(shí)刻輪流使用CPU
獨(dú)立性:用戶感覺(jué)不到計(jì)算機(jī)為其他人服務(wù),各用戶獨(dú)立操作,互不干擾。
及時(shí)性:通過(guò)時(shí)間片技術(shù)和輪轉(zhuǎn)調(diào)度算法保證及時(shí)響應(yīng)。
交互性:系統(tǒng)及時(shí)響應(yīng)用戶的請(qǐng)求,顯著提高調(diào)試和修改程序的效率:縮短了周轉(zhuǎn)時(shí)間。
6. 實(shí)時(shí)系統(tǒng)(Real-Time System)
實(shí)時(shí)系統(tǒng)是指:系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。
實(shí)時(shí)系統(tǒng)的引入
????????????????(1)實(shí)時(shí)控制
????????????????????????????如:火箭發(fā)射隨時(shí)停止,實(shí)時(shí)根據(jù)采集數(shù)據(jù)進(jìn)行處理
????????????????(2)實(shí)時(shí)信息處理
????????????????????????????訂票系統(tǒng)等,短時(shí)間內(nèi)為用戶做出正確回答
實(shí)時(shí)系統(tǒng)的實(shí)現(xiàn)
????????????????系統(tǒng)必修有能夠保證其承擔(dān)的多個(gè)任務(wù)在規(guī)定的時(shí)間完成,調(diào)度和能力是關(guān)鍵。
????????????????????????????(1)按任務(wù)執(zhí)行時(shí)是否呈現(xiàn)周期性來(lái)劃分
????????????????????????????????????????周期性實(shí)時(shí)任務(wù)
????????????????????????????????????????非周期性實(shí)時(shí)任務(wù)——截止時(shí)間
? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)根據(jù)對(duì)截止時(shí)間的要求來(lái)劃分
????????????????????????????????????????硬實(shí)時(shí)任務(wù)
????????????????????????????????????????軟實(shí)時(shí)任務(wù)


操作系統(tǒng)分類(lèi)
(1)單用戶OS:一次只能支持一個(gè)用戶作業(yè)的運(yùn)行。
(2)批處理OS:用戶作業(yè)以成批的方式提交給計(jì)算機(jī)。
(3)分時(shí)OS:允許多個(gè)用戶同時(shí)與計(jì)算機(jī)系統(tǒng)交互。
(4)實(shí)時(shí)OS:能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件,并對(duì)外部事件做出快速處理,對(duì)來(lái)自外部的請(qǐng)求和信號(hào)在限定的時(shí)間范圍內(nèi)做出響應(yīng)。實(shí)時(shí)性和可靠性是其重要特點(diǎn)。
(5)網(wǎng)絡(luò)OS:面向網(wǎng)絡(luò)上多用戶,提供基本的網(wǎng)絡(luò)操作所需要的功能,如文件共享,內(nèi)存管理和進(jìn)程任務(wù)調(diào)度等。
(6)分布式OS:是最高級(jí)的操作系統(tǒng),管理整個(gè)系統(tǒng)(包括網(wǎng)絡(luò))中的所有資源,負(fù)責(zé)所有資源的分配和調(diào)度、任務(wù)的劃分和具體安排、信息傳遞和控制。
(7)嵌入式OS:與應(yīng)用緊密結(jié)合、專(zhuān)用性很強(qiáng)、可裁剪。
分布式操作系統(tǒng)的主要特點(diǎn)是各節(jié)點(diǎn)的自治性;資源共享的透明性;各節(jié)點(diǎn)間的協(xié)同性;系統(tǒng)的堅(jiān)定性。
分布式OS與網(wǎng)絡(luò)OS的比較
1、分布性(控制和處理都是分布的)
????????????????分布式OS不是集中地駐留在某一個(gè)站點(diǎn),而是較均勻地分布在系統(tǒng)的各個(gè)站點(diǎn)上,所以O(shè)S的處理和控制功能是分布式的。
????????????????計(jì)算機(jī)網(wǎng)絡(luò)也具有分布處理功能,但網(wǎng)絡(luò)的控制功能,是集中在某個(gè)主機(jī)或網(wǎng)絡(luò)服務(wù)器中,或說(shuō)控制方式是集中式的。處理是分布的。
2、并行性
????????????????分布式處理系統(tǒng),具有多個(gè)處理單元,分布式OS的任務(wù)分配程序可將多個(gè)任務(wù)分配到多個(gè)處理單元上,使這些任務(wù)并行執(zhí)行,從而加速了任務(wù)的執(zhí)行。
????????????????計(jì)算機(jī)網(wǎng)絡(luò)中,每個(gè)用戶的一個(gè)或多個(gè)任務(wù)通常都在自己(本地)的計(jì)算機(jī)上處理,所以,在網(wǎng)絡(luò)OS中無(wú)任務(wù)分配功能。
3、透明性
????????????????分布式OS能很好地隱藏系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),如:對(duì)象的物理位置,并發(fā)控制,系統(tǒng)故障等,對(duì)用戶都是透明的。
????????????????當(dāng)用戶訪問(wèn)某個(gè)文件時(shí),只需提供文件名而無(wú)須知道它是駐留在哪個(gè)站點(diǎn)上,即可對(duì)它進(jìn)行訪問(wèn),即物理位置是透明的。
????????????????網(wǎng)絡(luò)OS,也有一定的透明性,但主要是指在操作實(shí)現(xiàn)上的透明性。如:當(dāng)用戶要訪問(wèn)服務(wù)器上的文件時(shí),只需發(fā)出相應(yīng)的文件存取命令,而無(wú)須了解對(duì)該文件的存取是如何實(shí)現(xiàn)的。
4、共享性
????????????????分布式系統(tǒng)中,分布在各個(gè)站點(diǎn)上的軟、硬件資源,可供全系統(tǒng)中的所有用戶共享,并能以透明方式對(duì)它們進(jìn)行訪問(wèn)。
????????????????網(wǎng)絡(luò)OS也能提供資源共享,但所共享的資源大多是設(shè)置在主機(jī)或網(wǎng)絡(luò)服務(wù)器中,而在其它機(jī)器上的資源,只能由使用該機(jī)的用戶獨(dú)占。
5、健壯性
????????????????分布式系統(tǒng)的處理和控制功能是分布的,任何站上的故障,都不會(huì)給系統(tǒng)造成太大的影響,并且,當(dāng)某設(shè)備出現(xiàn)故障時(shí),可通過(guò)容錯(cuò)技術(shù)實(shí)現(xiàn)系統(tǒng)重構(gòu),使系統(tǒng)能正常運(yùn)行,所以,系統(tǒng)具有健壯性,即具有較好的可用性和可靠性。
????????????????網(wǎng)絡(luò)OS中,其控制功能大多集中在主機(jī)或服務(wù)器中,使系統(tǒng)具有潛在的不可靠性,此外,系統(tǒng)的重構(gòu)功能也較弱。