版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《計(jì)算機(jī)操作系統(tǒng)》
教案
備課教師:晁妍職稱:助教
教學(xué)班級(jí)計(jì)科專業(yè)。9級(jí)本科2班
時(shí)間:2011年9月已教輪數(shù):]
計(jì)算機(jī)與信息學(xué)院
2011-2012學(xué)年度第一學(xué)期
課程教學(xué)目的及教學(xué)要求:
本課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的主要專業(yè)基礎(chǔ)課和主干課。本課程的學(xué)習(xí)目的在于
使學(xué)生掌握操作系統(tǒng)的基本概念、基本原理、設(shè)計(jì)方法和實(shí)現(xiàn)技術(shù),具有初步分析實(shí)
際操作系統(tǒng)的能力,為其今后在相關(guān)領(lǐng)域開展工作打下堅(jiān)實(shí)的基礎(chǔ)。
教學(xué)時(shí)數(shù)與學(xué)時(shí)分配:共51學(xué)時(shí),周學(xué)時(shí):17,(分單雙周,每次2個(gè)學(xué)時(shí))
章次標(biāo)題教學(xué)手段學(xué)時(shí)數(shù)
第一章操作系統(tǒng)引論4
第二章進(jìn)程管理12
第三章處理機(jī)調(diào)度與死鎖4
第四章存儲(chǔ)管理10
第五章設(shè)備管理6
弟八早文件系統(tǒng)8
第七章操作系統(tǒng)接口4
第八章網(wǎng)絡(luò)操作系統(tǒng)1
第九章系統(tǒng)安全性1
第十章UNIX系統(tǒng)內(nèi)核結(jié)構(gòu)1
1__a:
《計(jì)算機(jī)操作系統(tǒng)》(第三版)湯小丹等
推薦參考書:
[1]《計(jì)算機(jī)操作系統(tǒng)》(第二版)湯子瀛等西安電子科技大學(xué)出版社
[2]《計(jì)算機(jī)操作系統(tǒng)教程》張堯?qū)W史美林清華大學(xué)出版社
[3]《UNIX教程》(第2版)(美)SyedMansoorSarwarRobertKoretsky張玉潔
孟祥武譯機(jī)械工業(yè)出版社
[4]《計(jì)算機(jī)操作系統(tǒng).學(xué)習(xí)指導(dǎo)與題解》梁紅兵、湯小丹西安電子科技大學(xué)出版
社
[5]《操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)一基于linux內(nèi)核》徐虹編清華大學(xué)出版社
第1、2講(周次:第2周)
(注:線右側(cè)寫教學(xué)方法、實(shí)驗(yàn)演示、新增補(bǔ)內(nèi)容、重要標(biāo)注、時(shí)間
分配等)
教學(xué)章節(jié):
1.1操作系統(tǒng)的目標(biāo)和作用(簡(jiǎn)略)
1.2操作系統(tǒng)的發(fā)展過程(每種OS的不足與各自特點(diǎn))
教學(xué)目的及要求:
目的:是使學(xué)生建立起OS的基本概念。
要求:了解OS的引入和發(fā)展;理解多道程序設(shè)計(jì)技術(shù);
重點(diǎn)、難點(diǎn):(注:重點(diǎn)和難點(diǎn)如果一致,則寫在一起,若不同則應(yīng)分開寫):
OS引入和發(fā)展、OS的基本特征和功能。
教學(xué)內(nèi)容:板書設(shè)計(jì)見PPT。(注:內(nèi)容每節(jié)課1-2頁為宜)
復(fù)習(xí)引入;
首先說明對(duì)課程的成績(jī)?nèi)绾卧u(píng)定,提出學(xué)習(xí)要求,以及教材的使
用并推薦參考教材)然后介紹本課程的特點(diǎn)、性質(zhì)和目的,以及如何
學(xué)習(xí),最后對(duì)本課程內(nèi)容以及課時(shí)分配做簡(jiǎn)單的介紹。
新課講授:
操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中的地位:(結(jié)合課件中圖加以說明,由此引
出目標(biāo)和作用)
計(jì)算機(jī)系統(tǒng)由硬件利軟件組成;操作系統(tǒng)在硬件基礎(chǔ)上的第一層軟
件;是其他軟件和硬件之間的接口。
操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中占據(jù)著特別重要的地位,是計(jì)算機(jī)中最重要
的系統(tǒng)軟件,是其他系統(tǒng)軟件和應(yīng)用軟件運(yùn)行的基礎(chǔ)。
1.1操作系統(tǒng)的目標(biāo)和作用
1.1.1操作系統(tǒng)的目標(biāo)
方便性(用戶的觀點(diǎn)):提供良好的、一致的用戶接口。無需了解許多
有關(guān)硬件和系統(tǒng)軟件的細(xì)節(jié)。
有效性(系統(tǒng)管理人員的觀點(diǎn)):合理地組織計(jì)算機(jī)的工作流程,管理
和分配硬件、軟件資源,提高資源的利用率;提高系統(tǒng)的吞吐量。
可擴(kuò)充性(開放的觀點(diǎn)):操作系統(tǒng)必須能方便地開發(fā)、測(cè)試和引進(jìn)新
的系統(tǒng)功能,以適應(yīng)計(jì)算機(jī)硬件和體系結(jié)構(gòu)的迅速發(fā)展以及應(yīng)用不斷
擴(kuò)大的要求。給計(jì)算機(jī)系統(tǒng)的功能的擴(kuò)展提供開放式的支撐平臺(tái)。
開放性:可移植性和互操作性
其中有效性和方便性是設(shè)計(jì)OS時(shí)最重要的兩個(gè)目標(biāo),設(shè)計(jì)現(xiàn)代OS
的主要目標(biāo)也是對(duì)提高資源利用率和方便用戶。
1.1.2操作系統(tǒng)的作用
1.從一般用戶的觀點(diǎn)來看,OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的
接口(橋梁)
用戶并不直接與計(jì)算機(jī)硬件打交道,而是通過操作系統(tǒng)提供的命
令、系統(tǒng)功能調(diào)用以及圖形化接口來使用計(jì)算機(jī)。
2.從資源管理的觀點(diǎn)來看,OS作為計(jì)算機(jī)系統(tǒng)資源的管理者(管
家)
處理機(jī)的分配和控制,內(nèi)存的分配和回收,I/O設(shè)備的分配和處理,
文件的存取、共享和保護(hù)工作都是由操作系統(tǒng)完成的。主要功能有:
處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理、文件管理
3.從虛擬機(jī)的觀點(diǎn)來看,OS用作擴(kuò)充機(jī)器(實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源
的抽象)(虛擬機(jī)或擴(kuò)充機(jī))
硬件處在最底層,不附加任何軟件的物理計(jì)算機(jī)與“裸機(jī)”.
操作系統(tǒng)是附加在裸機(jī)上的第一層,是對(duì)裸機(jī)的首次擴(kuò)充,構(gòu)成了一
個(gè)比裸機(jī)更強(qiáng),使用更方便的“虛擬計(jì)算機(jī)”。
所有系統(tǒng)軟件以及更上層的用戶應(yīng)用軟件在操作系統(tǒng)虛擬機(jī)上運(yùn)行,
它們受操作系統(tǒng)的統(tǒng)一管理和控制,通過操作系統(tǒng)使用各種資源來完
成特定的任務(wù)。
引出OS的定義(以提問的方式)
操作系統(tǒng)的定義:是一組控制和管理計(jì)算機(jī)硬件和軟件資源、合理地
對(duì)各類作業(yè)進(jìn)行調(diào)度,以及方便用戶使用計(jì)算機(jī)的程序的集合。
1.1.3推動(dòng)操作系統(tǒng)發(fā)展主要?jiǎng)恿Γㄉ院笱a(bǔ)充)
1.2操作系統(tǒng)的發(fā)展過程(介紹OS的引入與發(fā)展,以及推動(dòng)發(fā)展的
主要?jiǎng)恿Γ?/p>
1.2.1無操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)
1.人工操作方式
1946-50年代中:電子管時(shí)代(第一代計(jì)算機(jī)),計(jì)算機(jī)速度慢,無操
作系統(tǒng),計(jì)算機(jī)資源昂貴;
工作方式:
用戶:既是程序員又是操作員;用戶是計(jì)算機(jī)專業(yè)人員;
編程語言:機(jī)器語言;
輸入輸出:紙帶或卡片;
計(jì)算機(jī)的工作特點(diǎn):用戶獨(dú)占全機(jī),資源利用率極低;
CPU等待用戶,計(jì)算前,手工裝入紙帶或卡片;計(jì)算完成后,手工卸取
紙帶或卡片;CPU利用率低;
主要矛盾:人機(jī)矛盾一一人工操作嚴(yán)重降低了計(jì)算機(jī)資源的利用率
提高效率的途徑:脫機(jī)輸入/輸出技術(shù)。
2.脫機(jī)輸入/輸出(Off-LineI/O)方式:
脫機(jī)輸入方式是指在一臺(tái)外圍機(jī)(它是一臺(tái)專門用來管理I/O的、
功能較簡(jiǎn)單的計(jì)算機(jī))的控制下,預(yù)先將程序和數(shù)據(jù)從低速輸入設(shè)備
到磁帶,當(dāng)CPU需要這些程序和數(shù)據(jù)時(shí),再從磁帶高速地讀入內(nèi)存。
類似地,脫機(jī)輸出方式是指當(dāng)CPU需要輸出時(shí),先高速地將數(shù)據(jù)寫入
磁帶,然后在一臺(tái)外圍機(jī)的控制下,通過低速輸出設(shè)備進(jìn)行輸出。相
反,在主機(jī)的直接控制下進(jìn)行的I/O方式被稱為聯(lián)機(jī)I/O方式。
脫機(jī)I/O方式的主要優(yōu)點(diǎn):減少了CPU的空閑時(shí)間、提高I/O速度(緩
和了人機(jī)矛盾)
1.2.2單道批處理系統(tǒng)(SimpleBatchProcessingSystem)
1.單道批處理系統(tǒng)處理過程
晶體管時(shí)代(第二代計(jì)算機(jī))
批處理技術(shù)是在系統(tǒng)中配置一個(gè)監(jiān)督程序,并在該監(jiān)督程序的控制
下,能夠?qū)σ慌鳂I(yè)自動(dòng)進(jìn)行處理的一種技術(shù)。
把一批作業(yè)以脫機(jī)方式輸入到磁帶或磁盤上,并在系統(tǒng)中配上監(jiān)督程
序(Monitor),在它的控制下使這批作業(yè)能一個(gè)接一個(gè)的連續(xù)處理。
2.單道批處理系統(tǒng)的特征:
自動(dòng)性:無需人工干預(yù)。
順序性:作業(yè)完成的順序與它們進(jìn)入內(nèi)存的順序以及作業(yè)在磁帶上的
順序一致。
單道性:內(nèi)存中僅能存放一道作業(yè)。
不足:無法充分利用系統(tǒng)中的所有的資源
1.2.3多道批處理系統(tǒng)
1.多道程序設(shè)計(jì)技術(shù)
是指在內(nèi)存中同時(shí)存放若干個(gè)作業(yè),使它們共享系統(tǒng)資源并同時(shí)運(yùn)行
的技術(shù)。在單處理機(jī)環(huán)境下,這些作業(yè)僅在宏觀上同時(shí)運(yùn)行,而在微
觀上交替執(zhí)行。
2.多道批處理系統(tǒng)
采用多道程序設(shè)計(jì)技術(shù)的批處理系統(tǒng)被稱作多道批處理系統(tǒng)。多道
批處理系統(tǒng)中必須配置一組軟件(調(diào)度程序),來解決多道程序?qū)ο?/p>
統(tǒng)資源的共享和爭(zhēng)用問題,并對(duì)作業(yè)進(jìn)行合理的組織和調(diào)度。
外存(后備隊(duì)列)一一>作業(yè)調(diào)度一一〉內(nèi)存(共享CPU和系統(tǒng)中
的各種資源)
就形成了現(xiàn)代意義上的OS
3.具有的主要特征:(與單道批處理的特征對(duì)比)
多道性:內(nèi)存中可同時(shí)存放多個(gè)作業(yè)
調(diào)度性:(作業(yè)調(diào)度、進(jìn)程調(diào)度)需通過作業(yè)調(diào)度從外存中選取若干
個(gè)作業(yè)裝入內(nèi)存,還需通過進(jìn)程調(diào)度在內(nèi)存的多個(gè)作業(yè)中分配CPU。
無序性:作業(yè)調(diào)度的次序與作業(yè)在外存中次序無關(guān),作業(yè)完成的次序
與作業(yè)進(jìn)入內(nèi)存的次序也無關(guān)。
4.多道批處理系統(tǒng)需解決的問題
(1)多道程序?qū)S的基本要求
存儲(chǔ)管理一系統(tǒng)必須為若干作業(yè)分派空間
CPU調(diào)度一系統(tǒng)必須在就緒作業(yè)中選擇準(zhǔn)備運(yùn)行.
設(shè)備分配一既方便用戶使用,又能提高設(shè)備利用率.
(2)多道批處理系統(tǒng)需解決的問題:
處理機(jī)管理問題、內(nèi)存管理問題、設(shè)備管理問題、文件管理問題、作
業(yè)管理問題
5.優(yōu)缺點(diǎn):
優(yōu)點(diǎn):資源利用率高一一CPU和內(nèi)存利用率較高;
系統(tǒng)吞吐量大一一(單位時(shí)間內(nèi)所完成的總工作量)
缺點(diǎn):平均周轉(zhuǎn)時(shí)間長(zhǎng)一一(從作業(yè)進(jìn)入系統(tǒng)開始,直至其完成并退
出系統(tǒng)為止所經(jīng)歷的時(shí)間),短作業(yè)的周轉(zhuǎn)時(shí)間顯著增長(zhǎng)
無交互能力一一整個(gè)作業(yè)完成后或中間出錯(cuò)時(shí),才與用戶交互,不利
于調(diào)試和修改;
1.2.4分時(shí)系統(tǒng)
1.分時(shí)系統(tǒng)的產(chǎn)生
引入:為了解決批處理系統(tǒng)無法進(jìn)行人機(jī)交互的問題,并使多個(gè)用戶
(包括遠(yuǎn)程用戶)能同時(shí)使用昂貴的主機(jī)資源,又引入了分時(shí)系統(tǒng)。
分時(shí)系統(tǒng):是指在一臺(tái)主機(jī)上連接了多個(gè)帶有顯示器和鍵盤的終端,
同時(shí)允許多個(gè)用戶通過自己的終端,以交互方式使用計(jì)算機(jī),共享主
機(jī)中的資源。
2.分時(shí)系統(tǒng)的設(shè)計(jì)思想
(1)采用了分時(shí)技術(shù):既把處理機(jī)的時(shí)間劃分成很短的時(shí)間片(eg,
幾百毫秒),輪流地分配給各個(gè)終端作業(yè)使用。(若在分配給它的時(shí)間
片內(nèi),作業(yè)仍沒執(zhí)行完,它也必須將CPU交給下一個(gè)作業(yè)使用,并等
下一輪得到CPU時(shí)再繼續(xù)執(zhí)行)
(2)設(shè)計(jì)目標(biāo):系統(tǒng)能及時(shí)響應(yīng)用戶的終端命令
(3)實(shí)現(xiàn)中的最關(guān)鍵問題:使用戶能與自己的作業(yè)進(jìn)行交互。(及時(shí)
接收、及時(shí)處理)
響應(yīng)時(shí)間RT(responsetime):從鍵盤命令進(jìn)入(按下回車鍵為準(zhǔn))到
開始在終端上顯示應(yīng)答的時(shí)間間隔.。在分時(shí)系統(tǒng)中,響應(yīng)時(shí)間七時(shí)間
片X用戶數(shù)
.改變批處理系統(tǒng)的運(yùn)行方式:
作業(yè)直接進(jìn)入內(nèi)存
系統(tǒng)采用時(shí)間片輪轉(zhuǎn)方式處理服務(wù)請(qǐng)求
4.分時(shí)系統(tǒng)的特征
多路性:多個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī),共享CPU和其他資源,充分
利用系統(tǒng)資源。
宏觀上:是多個(gè)人同時(shí)使用一個(gè)CPU
微觀上:多個(gè)人在不同時(shí)刻輪流使用CPU
獨(dú)立性:用戶感覺不到計(jì)算機(jī)為其他人服務(wù),各用戶獨(dú)立操作,互不
干擾。
及時(shí)性:通過時(shí)間片技術(shù)和輪轉(zhuǎn)調(diào)度算法保證及時(shí)響應(yīng)。(指用戶能
在很短的時(shí)間內(nèi)獲得系統(tǒng)的響應(yīng),是以人們所能接受的等待時(shí)間決定
的,一般為2、3秒)
交互性:能進(jìn)行廣泛的人機(jī)交
分時(shí)系統(tǒng)的關(guān)鍵問題是使用戶能與自己的作業(yè)進(jìn)行交互,或者說它追
求的主要目標(biāo)是系統(tǒng)能及時(shí)響應(yīng)用戶的終端命令。
1.2.5實(shí)時(shí)系統(tǒng)(實(shí)時(shí):及時(shí)響應(yīng)并快速處理?。?/p>
引入:由于前幾種操作系統(tǒng)都不能很好的滿足在實(shí)時(shí)控制和實(shí)時(shí)信息
處理領(lǐng)域的需要
1.實(shí)時(shí)系統(tǒng)及其類型
(1)實(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)行。
(2)可分成兩大類:
實(shí)時(shí)控制系統(tǒng):通常使指以計(jì)算機(jī)為中心的生產(chǎn)過程控制系統(tǒng)和武器
控制系統(tǒng)。這類系統(tǒng)要求實(shí)時(shí)采集現(xiàn)場(chǎng)數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行及時(shí)處理,
進(jìn)而自動(dòng)地控制相應(yīng)的執(zhí)行機(jī)構(gòu)。如工業(yè)自動(dòng)控制、火炮自動(dòng)控制、
飛機(jī)自動(dòng)駕駛、導(dǎo)彈制導(dǎo)等。
實(shí)時(shí)信息處理系統(tǒng):通常使指對(duì)信息進(jìn)行實(shí)時(shí)處理的系統(tǒng)。這類系統(tǒng)
要求及時(shí)接受從終端(包括遠(yuǎn)程終端)發(fā)來的服務(wù)請(qǐng)求,按請(qǐng)求的內(nèi)
容對(duì)信息進(jìn)行檢索和處理,并在很短的時(shí)間內(nèi)為用戶做出正確的回答。
如飛機(jī)訂票、情報(bào)檢索等。
2.實(shí)時(shí)任務(wù)的類型
(1)按任務(wù)執(zhí)行時(shí)是否呈現(xiàn)周期性來劃分
周期性實(shí)時(shí)任務(wù)
非周期性實(shí)時(shí)任務(wù)——截止時(shí)間
開始截止時(shí)間:某任務(wù)在某時(shí)間以前必須開始執(zhí)行
完成截止時(shí)間:某任務(wù)在某口寸間以前必須完成
(2)根據(jù)對(duì)截止時(shí)間的要求來劃分(與截止時(shí)間聯(lián)系的是否嚴(yán)格)
硬實(shí)時(shí)任務(wù)
軟實(shí)時(shí)任務(wù)
3.三種基本操作系統(tǒng)的比較:
多路性獨(dú)立性及時(shí)性交互性可靠
性
批處理系無無差差一般
統(tǒng)
分時(shí)系統(tǒng)多終端服務(wù)有好好可靠
實(shí)時(shí)系統(tǒng)多路采集、多路控有最好一般高度
制可靠
補(bǔ)充:推動(dòng)批處理系統(tǒng)的形成與發(fā)展的主要?jiǎng)恿?提高系統(tǒng)資源利用
率;
推動(dòng)分時(shí)系統(tǒng)形成與發(fā)展的動(dòng)力室方便是用戶;推動(dòng)OS發(fā)展的主要
動(dòng)力:計(jì)算機(jī)硬件的不斷更新?lián)Q代
1.2.6微機(jī)OS的發(fā)展
1.單用戶單任務(wù)OS:只允許用戶程序作為一個(gè)任務(wù)運(yùn)行eg.CP/M、
MS-DOS
2.單用戶多任務(wù)OS:允許用戶把程序分為若干個(gè)任務(wù),使它們并發(fā)
執(zhí)行eg.MS-Windows
3.多用戶多任務(wù)OS:允許多個(gè)用戶通過各自的終端使用一臺(tái)機(jī)器。
eg.UNIX、LINUX
教課小結(jié):
1、了解操作系統(tǒng)的目標(biāo),理解操作系統(tǒng)的作用,了解推動(dòng)操作系統(tǒng)發(fā)
展的主要?jiǎng)恿?/p>
2、了解無操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)和單道批處理系統(tǒng)。理解多道批處理
系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)的特征和優(yōu)缺點(diǎn)。
預(yù)習(xí)要求:
作業(yè)布置:
1、作業(yè):
2、補(bǔ)充習(xí)題:(若沒有可以刪去)
推薦參考書目、網(wǎng)站及閱讀材料:彳;沒[?匚又加
實(shí)驗(yàn)一:LINUX入門
第3講(第3周)
(注:線右側(cè)寫教學(xué)方法、實(shí)驗(yàn)演示、新增補(bǔ)內(nèi)容、重要標(biāo)注、時(shí)間
分配等)
教學(xué)章節(jié):
1.3操作系統(tǒng)的特征
1.4操作系統(tǒng)的主要功能
1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
教學(xué)目的及要求:
1.掌握操作系統(tǒng)的功能和特征。
2.了解分層式結(jié)構(gòu)和微內(nèi)核結(jié)構(gòu)。
重點(diǎn)、難點(diǎn):(注:重點(diǎn)和難點(diǎn)如果一致,則""卜一起,若不同則應(yīng)分開寫)
OS的基本特征和功能。
教學(xué)內(nèi)容:板書設(shè)計(jì)見PPT。(注:內(nèi)容每節(jié)課卜2頁為宜)
復(fù)習(xí)引入:
上節(jié)課學(xué)習(xí)了OS的引論,介紹了OS的發(fā)展過程,其中主要功能小節(jié)
也是對(duì)本書的簡(jiǎn)要的概括,需要同學(xué)們掌握。OS是系統(tǒng)軟件,對(duì)于
這種大型的軟件,在開發(fā)的過程中,其軟件的結(jié)構(gòu)設(shè)計(jì)是怎么樣的發(fā)
展過程,下而就來學(xué)習(xí):
新課講授:
1.3操作系統(tǒng)的特征
采用多道程序設(shè)計(jì)技術(shù)的現(xiàn)代操作系統(tǒng)具有如下四個(gè)基木特征:在
發(fā)、共享、虛擬、異步。其中并發(fā)和共享是OS的兩個(gè)最基本的特征。
1.并發(fā)
并行性:兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生
并發(fā)性:兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生
在多道程序系統(tǒng)(單處理器)中,宏觀上并行,微觀上串行(交
替執(zhí)行)
程序(靜態(tài)實(shí)體)不能并發(fā)執(zhí)行,為使多個(gè)程序并發(fā)執(zhí)行,引入進(jìn)程。
進(jìn)程一一在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位,(是活動(dòng)實(shí)
體)?,F(xiàn)代OS中還引入一個(gè)比進(jìn)程更小的單位一一線程,此時(shí),一個(gè)
進(jìn)程中可包含若干個(gè)線程,資源分配的基本單位雖仍然是進(jìn)程,但獨(dú)
立運(yùn)行、獨(dú)立調(diào)度和分配處理機(jī)的基本單位卻是線程。
2.共享
在操作系統(tǒng)環(huán)境下,所謂共享是指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并
發(fā)執(zhí)行的進(jìn)程(線程)共同使用
共享方式:
互斥共享方式:資源分配后到釋放前,不能被其他進(jìn)程所用,如打印
機(jī)、變量、隊(duì)列等。
臨界資源(獨(dú)占資源):一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問的資源
同時(shí)訪問方式:在同一段時(shí)間內(nèi)可以被多個(gè)作業(yè)同時(shí)訪問。如可重入
代碼,磁盤文件。宏觀并行微觀串行。
并發(fā)和共享是OS的兩個(gè)最基本的特征,又互為存在的條件。
3.虛擬(是以并發(fā)和資源共享為前提)
虛擬一一通過某種技術(shù)把一個(gè)物理實(shí)體變?yōu)槿舾蓚€(gè)邏輯上的對(duì)應(yīng)物。
虛擬是操作系統(tǒng)管理系統(tǒng)資源的重耍手段,可提高資源利用率。
用于實(shí)現(xiàn)虛擬的技術(shù),稱為虛擬技術(shù)
時(shí)分復(fù)用技術(shù):虛擬處理機(jī)、虛擬設(shè)備技術(shù)(分時(shí)使用方式)
空分復(fù)用技術(shù):虛擬內(nèi)存、虛擬磁盤技術(shù)
4.異步性(是并發(fā)與共享的必然結(jié)果)
指進(jìn)程的執(zhí)行順序和執(zhí)行時(shí)間的不確定性;指進(jìn)程以人們不可預(yù)知的
速度向前推進(jìn)。
進(jìn)程的運(yùn)行速度不可預(yù)知:多個(gè)進(jìn)程并發(fā)執(zhí)行,“時(shí)走時(shí)停”,不可
預(yù)知每個(gè)進(jìn)程的運(yùn)行推進(jìn)快慢;
無論快慢,結(jié)果應(yīng)該相同。通過進(jìn)程互斥和同步手段來保證;
1.4操作系統(tǒng)的主要功能
包括:處理機(jī)管理功能、存儲(chǔ)器管理功能、設(shè)備管理功能、文件管理
功能、用戶接口
1.4.1處理機(jī)管理功能
主要是對(duì)處理機(jī)的分配和運(yùn)行進(jìn)行管理。(創(chuàng)建和撤銷進(jìn)程(線程),
對(duì)諸進(jìn)程(線程)的運(yùn)行進(jìn)行協(xié)調(diào),實(shí)現(xiàn)進(jìn)程(線程)之間的信息交換,
以及按照一定的算法把處理機(jī)分配給進(jìn)程(線程)。)
主要功能包括:
進(jìn)程控制:為作業(yè)創(chuàng)建進(jìn)程、撤銷已結(jié)束的進(jìn)程,以及控制進(jìn)程在運(yùn)
行過程中的狀態(tài)轉(zhuǎn)換
進(jìn)程同步:為多個(gè)進(jìn)程(含線程)的運(yùn)行進(jìn)行協(xié)調(diào)(協(xié)調(diào)方式:互斥和
同步)
進(jìn)程通信:用來實(shí)現(xiàn)在相互合作的進(jìn)程之間的信息交換;
調(diào)度:作業(yè)和進(jìn)程的狀態(tài)切換,包括作業(yè)調(diào)度和進(jìn)程調(diào)度
1.4.2存儲(chǔ)器管理功能
存儲(chǔ)器管理為多道程序的運(yùn)行提供良好的環(huán)境,方便用戶使用存儲(chǔ)器,
提高存儲(chǔ)器的利用率以及能從邏輯上擴(kuò)充內(nèi)存
存儲(chǔ)器管理功能有:
內(nèi)存分配:為每道程序分配內(nèi)存空間,提高存儲(chǔ)器的利用率,允許正
在運(yùn)行的程序申請(qǐng)附加的內(nèi)存空間;
存儲(chǔ)保護(hù):確保每道用戶程序都只在自己的內(nèi)存空間中運(yùn)行,彼此互
不干擾;
地址映射(變換):進(jìn)程的邏輯地址到內(nèi)存物理地址的映射。
內(nèi)存擴(kuò)充:用虛擬存儲(chǔ)技術(shù)解決內(nèi)存容量不足的問題;
請(qǐng)求調(diào)入功能
頁面置換功能
1.4.3設(shè)備管理功能
設(shè)備管理的主耍任務(wù):完成用戶進(jìn)程提出的I/O請(qǐng)求,為用戶進(jìn)程分配
其所需的I/O設(shè)備,提高CPU和I/O設(shè)備的利用率,提高I/O速度,
方便用戶使用I/O設(shè)備。
設(shè)備管理的功能有:
緩沖管理:匹配CPU和外設(shè)的速度,提高兩者的利用率和并行操作程
度;
設(shè)備分配:根據(jù)用戶進(jìn)程的I/O請(qǐng)求、系統(tǒng)的現(xiàn)有資源情況以及按照
某種設(shè)備分配策略,為之分配其所需的設(shè)備;
設(shè)備處理:設(shè)備驅(qū)動(dòng)程序用于實(shí)現(xiàn)CPU和設(shè)備控制器之間的通信。
設(shè)備獨(dú)立性和虛擬設(shè)備:
1.4.4文件管理功能
文件系統(tǒng)管理的主要任務(wù):對(duì)用戶文件和系統(tǒng)文件進(jìn)行管理,以方便
用戶使用,并保證文件的安全性。
文件管理的功能有:
文件存儲(chǔ)空間的管理:為每個(gè)文件分配必要的外存空間,提高外存的
利用率,并能有助于提高文件系統(tǒng)的運(yùn)行速度;一一解決如何存放信
息的問題
目錄管理:為每個(gè)文件建立其目錄項(xiàng),并對(duì)眾多的目錄項(xiàng)加以有效組
織,實(shí)現(xiàn)方便的按名存取,能實(shí)現(xiàn)文件共享,提供快速的目錄查詢手
段。(通過目錄方式來組織文件,以實(shí)現(xiàn)文件的按名存?。┮灰唤鉀Q信
息檢索問題
文件的讀/寫管理和保護(hù):實(shí)現(xiàn)文件的讀寫操作,并提供有效的存取
控制功能,保護(hù)文件的安全性。一一解決信息安全問題。
1.4.5OS與用戶之間的接口
1.用戶接口(提供給用戶使用)
(1)命令接口:用戶可通過該接口向作業(yè)發(fā)出命令以控制作業(yè)的運(yùn)
行。
聯(lián)機(jī)用戶接口:由一組鍵盤操作命令和命令解釋程序組成
脫機(jī)用戶接口:由一組作業(yè)控制語言JCL組成
(2)圖形接口:
2.程序接口(提供給程序員在編程時(shí)使用)
為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置,由一組系統(tǒng)調(diào)用組成。
1.5操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
操作系統(tǒng)的結(jié)構(gòu):一整體式(無)結(jié)構(gòu)、模塊化結(jié)構(gòu)、層次式結(jié)構(gòu)、微
內(nèi)核結(jié)構(gòu)
1、整體式OS結(jié)構(gòu)
整體式系統(tǒng)是早期操作系統(tǒng)和一些較小的操作系統(tǒng)所采用的一種結(jié)構(gòu)
模型。整個(gè)系統(tǒng)是一堆過程的集合,每個(gè)過程都可以隨便調(diào)用任意其
它過程。采用這種結(jié)構(gòu)的操作系統(tǒng)不僅調(diào)試前維護(hù)不方便,而且其可
讀性和可擴(kuò)充性都較差。
2、模塊化OS結(jié)構(gòu)(關(guān)鍵問題:模塊的劃分和規(guī)定好模塊之間的接口)
模塊化程序設(shè)計(jì)技術(shù),是基于“分解”和“模塊化”原則來控制大型
軟件的復(fù)雜度的。將OS按其功能劃分為若干個(gè)具有一定獨(dú)立性和大小
的模塊。并規(guī)定好各模塊間的接口,各模塊之間能通過該接口實(shí)現(xiàn)交
互。衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn):內(nèi)聚性和耦合度。
模塊化OS結(jié)構(gòu)優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
提高設(shè)計(jì)的正確性、可理解性和可維護(hù)性
增強(qiáng)可適應(yīng)性;
加速開發(fā)過程
缺點(diǎn):
模塊的劃分和接口的規(guī)定較困難
模塊間還存在著復(fù)雜的依賴關(guān)系,是OS結(jié)構(gòu)變得不夠清晰。
(在模塊化結(jié)構(gòu)設(shè)計(jì)中,各模塊的設(shè)計(jì)齊頭并進(jìn),無法尋找到一個(gè)可
靠的決定順序,造成各種決定的“無序性”)
3、層次式結(jié)構(gòu)
為了將模塊化中的“決定順序”無序性變?yōu)橛行蛐裕肓擞行蚍謱?/p>
法,常采用自底向上法來鋪設(shè)這些中間層。
層次式結(jié)構(gòu)是對(duì)模塊化結(jié)構(gòu)的一種改進(jìn)。將一個(gè)操作系統(tǒng)分為若干個(gè)
層次,每層又由若干個(gè)模塊組成,各層之間只存在著單向的依賴關(guān)系,
即高層僅依賴于緊鄰它的底層。
層次結(jié)構(gòu)的優(yōu)點(diǎn):正確性有保證、便于系統(tǒng)維護(hù)、擴(kuò)充
層次結(jié)構(gòu)的缺點(diǎn):模塊間需要通信機(jī)制、系統(tǒng)開銷大、效率低
在OS結(jié)構(gòu)中,分層式結(jié)構(gòu)是最為成熟的一種OS結(jié)構(gòu),而20世紀(jì)90
年代興起的微內(nèi)核結(jié)構(gòu)是最具有發(fā)展前途的0S結(jié)構(gòu)。
補(bǔ)充:分層式結(jié)構(gòu)與模塊式結(jié)構(gòu)的主要區(qū)別在于:
分層結(jié)構(gòu)中各模塊之間有序的。分層式結(jié)構(gòu)將各個(gè)功能模塊按它們的
功能流圖的調(diào)用次序安排成若干層,各層之間的模塊不能像模塊式結(jié)
構(gòu)那樣通過接口毫無規(guī)則地相互依賴、相互調(diào)用,而只能是單向調(diào)用,
即每層中的模塊只能使用較低層模塊提供的功能和服務(wù)。因此在分層
結(jié)構(gòu)中,模塊間的組織結(jié)構(gòu)和依賴關(guān)系更加清晰,這不僅增加系統(tǒng)的
可讀性,同時(shí)還使每一層建立在可靠的基礎(chǔ)上,從而提高系統(tǒng)的可靠
性。
4、微內(nèi)核0S結(jié)構(gòu)
微內(nèi)核結(jié)構(gòu)是指將C/S技術(shù)、面向?qū)ο蠹夹g(shù)用于基于微內(nèi)核技術(shù)的
0S中所形成的結(jié)構(gòu)。
微內(nèi)核的主要思想是:在操作系統(tǒng)內(nèi)核中只留下一些最基本的功能,
而將其他服務(wù)盡可能地從內(nèi)核中分離出去。
內(nèi)核的基本組成:中斷處理、進(jìn)程調(diào)度、同步機(jī)制
用若干個(gè)運(yùn)行在用戶態(tài)下的進(jìn)程(即服務(wù)器進(jìn)程)來實(shí)現(xiàn),形成所謂
的“客戶/服務(wù)器”模式。普通用戶進(jìn)程(即客戶進(jìn)程)可通過內(nèi)核向
服務(wù)器進(jìn)程發(fā)送請(qǐng)求,以取得操作系統(tǒng)的服務(wù)。
C/S技術(shù)把OS分為兩個(gè)部分:
一部分是用于提供各種服務(wù)的服務(wù)器
另一部分是用于實(shí)現(xiàn)OS最基本功能的內(nèi)核,其全部工作是處理C與S
之間通信。
優(yōu)點(diǎn):
易于擴(kuò)充,易于移植、提高系統(tǒng)的可靠性、提供多種操作環(huán)境、適
宜于分布計(jì)算模式、有助于多處理器系統(tǒng)的實(shí)現(xiàn)、支持實(shí)時(shí)任務(wù)
缺點(diǎn):
消息傳遞方式增加開銷,使響應(yīng)變慢
幾個(gè)商品化系統(tǒng):WindowsNT,NextStepXINU,OSF/11.3,Workspace
OS,Chorus/MixV.4,acG3,QNX,CTOS
舉例:微內(nèi)核的開放式系統(tǒng)環(huán)境、一個(gè)分布:弋系統(tǒng)中的客戶服務(wù)器模
型
在現(xiàn)代OS的設(shè)計(jì)中,常常還融入面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)。面向?qū)ο?/p>
技術(shù),該技術(shù)是基于“抽象”和“隱蔽”原則來控制OS的復(fù)雜度。它
利用被封裝的數(shù)據(jù)結(jié)構(gòu)和一組對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的過程來表示系統(tǒng)
中的某個(gè)資源,這樣,可使資源的管理因一致而簡(jiǎn)化。當(dāng)前廣泛使用
的Windows2000操作系統(tǒng),就采用了微內(nèi)核的結(jié)構(gòu),同時(shí)還融入了面
向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)。
具有面向?qū)ο蟮奶攸c(diǎn):封裝性、繼承性、多態(tài)性
微內(nèi)核的基本功能:通常都是一些最基本的功能,如進(jìn)程管理、存儲(chǔ)
器管理、進(jìn)程間通信、低級(jí)I/O功能。
教課小結(jié):
預(yù)習(xí)要求:
作業(yè)布置:
第4講(第4周)
(注:線右側(cè)寫教學(xué)方法、實(shí)驗(yàn)演示、新增補(bǔ)內(nèi)容、重要標(biāo)注、時(shí)間
分配等)
教學(xué)章節(jié):
第2章進(jìn)程管理
2.1進(jìn)程的基本概念
2.1.1程序的順序執(zhí)行及其特征
2.1.2前趨圖
2.1.3程序的并發(fā)執(zhí)行及其特征
2.1.4進(jìn)程的特征與狀態(tài)
2.1.5進(jìn)程控制塊
教學(xué)目的及要求:
學(xué)習(xí)目的是使學(xué)生建立起進(jìn)程的概念。
進(jìn)程是OS中最重要的基本概念,本章是全書中最重要的一章。要求
掌握進(jìn)程的基本概念,
重點(diǎn)、難點(diǎn):(注:重點(diǎn)和難點(diǎn)如果一致,則寫在一起,若不同則應(yīng)分開寫)
進(jìn)程的引入、特征、基本狀態(tài)、進(jìn)程控制塊
教學(xué)內(nèi)容:板書設(shè)計(jì)見PPT。(注:內(nèi)容每節(jié)課1-2頁為宜)
復(fù)習(xí)引入:
通過第一章的學(xué)習(xí),對(duì)操作系統(tǒng)有了整體上的認(rèn)識(shí),以后的章節(jié)就是
對(duì)各個(gè)部分的功能加以詳細(xì)的論述。
新課講授:
第2章進(jìn)程管理
思考問題:
為什么要引入進(jìn)程
進(jìn)程具有哪些基本特征
進(jìn)程具有哪些基本狀態(tài)
進(jìn)程控制塊的作用和內(nèi)容
2.1進(jìn)程的基本概念
引入進(jìn)程的目的是為了使多個(gè)程序能并發(fā)執(zhí)行。
2.1.1程序的順序執(zhí)行及其特征
1.程序的順序執(zhí)行
程序的順序執(zhí)行是指若干個(gè)程序或程序段之間必須嚴(yán)格按照某種先后
次序來執(zhí)行,僅當(dāng)前一程序或程序段執(zhí)行完后,才能執(zhí)行后面的程序
或程序段。
例:每個(gè)程序有三個(gè)順序執(zhí)行的操作一一I:輸入操作、C:計(jì)算操
作、P:輸出操作
2.程序順序執(zhí)行時(shí)的特征
(1)順序性
處理機(jī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行。
(2)封閉性
程序一旦開始執(zhí)行,其計(jì)算結(jié)果不受外界因素的影響。即程序運(yùn)
行時(shí)獨(dú)占全機(jī)資源,資源的狀態(tài)(除初始)只有本程序才能改變它。
(3)可再現(xiàn)性
程序執(zhí)行的結(jié)果與它的執(zhí)行速度無關(guān)(即與時(shí)間無關(guān)),而只與
初始條件有關(guān)。
2.1.2前趨圖
為了描述一個(gè)程序的各部分(程序段、語句)間的依賴關(guān)系,或
是一個(gè)大的計(jì)算的各子任務(wù)間的因果關(guān)系,采用前驅(qū)圖方式。
前趨圖是一個(gè)有向無循環(huán)圖(DAG),用于描述程序段或進(jìn)程之
間執(zhí)行的先后次序關(guān)系。
結(jié)點(diǎn):描述一個(gè)程序段或進(jìn)程,或一條語句。
有向邊:結(jié)點(diǎn)之間的偏序或前趨關(guān)系
?={(P,Pj)^Pj開始前Pi必須完成},若(”)£?,可寫成Pi?
Pj
Pi?Pi:Pi必須在Pj開始之前完成
則R是Pj的直接前趨,Pj是Pi的直接后繼
初始結(jié)點(diǎn):沒有前趨的結(jié)點(diǎn)
終止結(jié)點(diǎn):沒有后繼的結(jié)點(diǎn)
例:具有九個(gè)結(jié)點(diǎn)的前驅(qū)圖:前趨關(guān)系:
P1?P2,P1?P3,P1?P4,P2?P5,P3?P5,P4?P6,P4?P7,P5?P8,
P6?P8,P7?P9,P8?P9
注意:前趨圖中絕對(duì)不能出現(xiàn)循環(huán)
2.1.3程序的并發(fā)執(zhí)行及其特征
1.程序的并發(fā)執(zhí)行
例:在系統(tǒng)中有n個(gè)作業(yè),每個(gè)作業(yè)都有三個(gè)處理步驟,輸入數(shù)據(jù)、
處理、輸出,即Pi...=1,2,3,...,n)o
這些作業(yè)在系統(tǒng)中執(zhí)行時(shí)是對(duì)時(shí)間的偏序,有些操作必須在其它操
作之前執(zhí)行,這是有序的,但有些操作是可以同時(shí)執(zhí)行的。
2.程序并發(fā)執(zhí)行時(shí)的特征
(1)間斷性
在多道程序設(shè)計(jì)的環(huán)境下,程序是并發(fā)執(zhí)行的,它們?yōu)橥瓿梢豁?xiàng)
任務(wù)而相互合作,這些程序之間要共享系統(tǒng)的資源,形成了相互制約
的關(guān)系。
相互制約導(dǎo)致并發(fā)程序具有“執(zhí)行一一暫停一一執(zhí)行”這種間
斷性的活動(dòng)規(guī)律。
(2)失去封閉性
程序在并發(fā)執(zhí)行時(shí),多道程序共享系統(tǒng)的資源,因而這些資源
的狀態(tài)由多道程序來改變,程序運(yùn)行失去封閉性。一程序的運(yùn)行受到
其他程序的影響。
(3)不可再現(xiàn)性
程序在并發(fā)執(zhí)行時(shí),失去封閉性導(dǎo)致其失去可再現(xiàn)性。重復(fù)執(zhí)行時(shí),
雖執(zhí)行環(huán)境和初始條件相同,但結(jié)果卻不同。
(加入實(shí)例)
2.1.4進(jìn)程的特征與狀態(tài)
在計(jì)算機(jī)中,程序的并發(fā)執(zhí)行具有不可再現(xiàn)性。那么,如何使程序既
能并發(fā)執(zhí)行,又具有可再現(xiàn)性呢?這就必須引入進(jìn)程的概念,也就是
說,引入進(jìn)程的目的是為了使程序能夠正確地并發(fā)執(zhí)行。
(為什么進(jìn)程實(shí)體卻能與其他進(jìn)程并發(fā)執(zhí)行?)
1進(jìn)程的特征與定義
(1)進(jìn)程的特征
結(jié)構(gòu)性、動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、異步性
①結(jié)構(gòu)性
進(jìn)程控制塊(PCB)+程序段+相關(guān)的數(shù)據(jù)段二進(jìn)程實(shí)體。
②動(dòng)態(tài)性一一進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過程。具有生命期,
它必須由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡。是進(jìn)程的一個(gè)
最基本的特征。
③并發(fā)性一一多個(gè)進(jìn)程實(shí)體同存于內(nèi)存中,在一段時(shí)間內(nèi)同時(shí)運(yùn)行。
以提高資源利用率。只有為程序創(chuàng)建進(jìn)程后,多個(gè)程序才能正確地并
發(fā)運(yùn)行。并發(fā)是引入進(jìn)程的目的,也是進(jìn)程的另一個(gè)最基本的特征。
④獨(dú)立性一一進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立接
受調(diào)度的基木單位,而程序則不是。
⑤異步性一一進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。
(2)進(jìn)程(Process)的定義
進(jìn)程是程序的一次執(zhí)行。
進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。
進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過程,它是系統(tǒng)進(jìn)行資源分配和
調(diào)度的一個(gè)獨(dú)立單位。
進(jìn)程的定義:進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配
和調(diào)度的一個(gè)獨(dú)立單位。
(3)進(jìn)程與程序的區(qū)別
進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的
進(jìn)程是暫時(shí)的,程序是永久的
進(jìn)程與程序的組成不同:
進(jìn)程包括程序、數(shù)據(jù)和進(jìn)程控制塊(即進(jìn)程狀態(tài)信息、)
進(jìn)程與程序的對(duì)應(yīng)關(guān)系:
不是一一對(duì)應(yīng)。通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過調(diào)用
關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。
2.進(jìn)程的三種基本狀態(tài)
①就緒狀態(tài)(Ready):進(jìn)程已獲得了除CPU之外的所有資源,處于就
緒態(tài)的進(jìn)程有多個(gè),它們存放在就緒隊(duì)列中。
②執(zhí)行狀態(tài)(Running):已獲得CPU的進(jìn)程進(jìn)入執(zhí)行狀態(tài)。
③阻塞狀態(tài)(Blocked):進(jìn)程因發(fā)生某個(gè)事件(如請(qǐng)求1/()、申請(qǐng)緩
沖空間)而暫停執(zhí)行的狀態(tài)。即進(jìn)程的執(zhí)行受到阻塞
進(jìn)程的三種基本狀態(tài)以及各狀態(tài)之間的轉(zhuǎn)換關(guān)系
對(duì)單個(gè)進(jìn)程而言,任何時(shí)刻,它只能處于三種基本狀態(tài)之一,
而隨著進(jìn)程自身的推進(jìn)和外界環(huán)境條件的變化,它的狀態(tài)可以動(dòng)態(tài)地
轉(zhuǎn)換:處于就緒狀態(tài)地進(jìn)程,通過進(jìn)程調(diào)度獲得CPU后,便從就緒狀
態(tài)轉(zhuǎn)換成執(zhí)行狀態(tài);分時(shí)系統(tǒng)中,正在執(zhí)行地進(jìn)程由于時(shí)間片用完而
暫停執(zhí)行時(shí),便從執(zhí)行狀態(tài)轉(zhuǎn)換成就緒狀態(tài);正在執(zhí)行地程序,由于
等待某種事件地完成而無法繼續(xù)執(zhí)行時(shí),便從執(zhí)行狀態(tài)轉(zhuǎn)換成阻塞狀
態(tài);阻塞地進(jìn)程所等待的事件完成后,便轉(zhuǎn)為就緒狀態(tài)。
對(duì)整個(gè)系統(tǒng)而言,每個(gè)時(shí)刻允許同時(shí)有多個(gè)處于就緒和阻塞的進(jìn)
程,但對(duì)執(zhí)行狀態(tài)的進(jìn)程,每個(gè)處理機(jī)最多只允許有一個(gè)。
3.掛起狀態(tài)
“掛起”的實(shí)質(zhì)是使進(jìn)程不能繼續(xù)執(zhí)行,即使掛起后的進(jìn)程處于就緒
狀態(tài),它也不能參與對(duì)CPU的競(jìng)爭(zhēng)。因此,被掛起的進(jìn)程處于靜止?fàn)?/p>
態(tài),相反,沒被掛起的進(jìn)程則處于活動(dòng)狀態(tài),而且,處于靜止?fàn)顟B(tài)的
進(jìn)程只有通過“激活”動(dòng)作,才能轉(zhuǎn)換成活切狀態(tài)。
引起掛起狀態(tài)的原因:終端用戶的請(qǐng)求、父進(jìn)程請(qǐng)求、負(fù)荷調(diào)節(jié)的需
耍、操作系統(tǒng)的需要
“掛起”常被用在進(jìn)程對(duì)換中,此時(shí),掛起(即換出)進(jìn)程可以騰出
內(nèi)存空間給就緒進(jìn)程使用;“掛起”還可用在其他場(chǎng)合,如用來調(diào)節(jié)系
統(tǒng)的負(fù)荷、方便用戶考查自己的運(yùn)行進(jìn)程或父進(jìn)程考查子進(jìn)程、方便
操作系統(tǒng)檢查運(yùn)行中的資源使用情況或進(jìn)行記帳等。
(2)進(jìn)程狀態(tài)的轉(zhuǎn)換
①活動(dòng)就用f靜止就緒(掛起、激活)
②活動(dòng)阻靠f靜止阻塞(掛起、激活)
③執(zhí)行?靜止就緒(掛起)
4.創(chuàng)建和終止?fàn)顟B(tài)
(1)創(chuàng)建狀態(tài)
①創(chuàng)建PCB,填寫必要的管理信息
②轉(zhuǎn)入就緒狀態(tài)并插入就緒隊(duì)列中
一般而言,此時(shí)的進(jìn)程已擁有了自己的PCB,但進(jìn)程自身還未進(jìn)入主
存,即創(chuàng)建工作尚未完成,進(jìn)程還不能被調(diào)度運(yùn)行,其所處的狀態(tài)就
是創(chuàng)建狀態(tài)。
(2)終止?fàn)顟B(tài)
①等待OS進(jìn)行善后處理
②將其PCB清零,并將PCB空間返還系統(tǒng)。
進(jìn)入終止態(tài)的進(jìn)程以后不能再執(zhí)行,但在OS中依然保留一個(gè)記錄供
其他進(jìn)程收集,一旦其他進(jìn)程完成了對(duì)終止?fàn)顟B(tài)進(jìn)程的信息的提取
后,OS將刪除該進(jìn)程。
思考問題:
問題:PCB的作用,為什么說是進(jìn)程存在的唯一標(biāo)志?
2.1.5進(jìn)程控制塊
為了描述和控制進(jìn)程的運(yùn)行,系統(tǒng)為每個(gè)進(jìn)程定義了一個(gè)數(shù)據(jù)結(jié)
構(gòu)進(jìn)程控制塊(PCB)o
進(jìn)程控制塊的作用
存放進(jìn)程的管理和控制信息的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程控制塊。它是
進(jìn)程管理和控制的最重要的數(shù)據(jù)結(jié)構(gòu)。PCB是進(jìn)程實(shí)體的一個(gè)組成部
分,在其中記錄了OS所需的、用于描述進(jìn)程的當(dāng)前狀態(tài)以及控制進(jìn)
程的全部信息。其作用是將程序變成可并發(fā)執(zhí)行的進(jìn)程。系統(tǒng)根據(jù)進(jìn)
程的PCB感知到一進(jìn)程的存在,并對(duì)它進(jìn)行控制,因此,進(jìn)程控制塊
是進(jìn)程存在的唯一標(biāo)志。由于PCB要被系統(tǒng)頻繁訪問,它必須常駐內(nèi)
存。
在創(chuàng)建時(shí),建立PCB,并伴隨進(jìn)程運(yùn)行的全過程,直到進(jìn)程撤消而撤消。
PCB就象我們的戶口。系統(tǒng)的所有PCB組織成鏈表或隊(duì)列,常駐內(nèi)存的
PCB區(qū)。
2.進(jìn)程控制塊中的信息
1)進(jìn)程標(biāo)識(shí)符信息
每個(gè)進(jìn)程都必須有一個(gè)唯一的標(biāo)識(shí)符。另外,還可以用父進(jìn)程的標(biāo)
識(shí)符、子進(jìn)程的標(biāo)識(shí)符來描述進(jìn)程的家族關(guān)系。
內(nèi)部標(biāo)識(shí)符:便于系統(tǒng)使用
外部標(biāo)識(shí)符:便于用戶使用
2)處理機(jī)狀態(tài)信息
處理機(jī)狀態(tài)信息主要由處理機(jī)的各種寄存器中的內(nèi)容組成。處理
機(jī)運(yùn)行時(shí)的信息存放在寄存器中,當(dāng)被中斷時(shí)這些信息要存放在PCB
中。
通用寄存器、指令計(jì)數(shù)器、程序狀態(tài)字PSW、用戶棧指針
3)進(jìn)程調(diào)度和控制信息一一用于進(jìn)程調(diào)度和控制。
主要包括進(jìn)程狀態(tài)、優(yōu)先級(jí)、等待和使用CPU的時(shí)間總和、程序和數(shù)
據(jù)的地址、進(jìn)程同步和通信信息、資源清單和進(jìn)程隊(duì)列指針等。
3.進(jìn)程控制塊的組織方式
在一個(gè)系統(tǒng)中通常有許多PCB,稱為PCB集合。為了便于管理,系統(tǒng)必
須用適當(dāng)?shù)姆绞綄CB組織起來,常用的方式有鏈接和索引方式。
1)鏈接方式
把具有同一狀態(tài)的PCB用其中的鏈接字鏈接成一個(gè)隊(duì)列。
就緒隊(duì)列;若干個(gè)阻塞隊(duì)列;空白隊(duì)列
2)索引方式
系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài)建立幾張索引表,把各表的內(nèi)存首地址
記錄在內(nèi)存的專用單元中。索引表的表目中記錄了相應(yīng)狀態(tài)的某個(gè)PCB
在PCB表中的地址。
其他方式:線性表或鏈表
教課小結(jié):
預(yù)習(xí)要求:
作業(yè)布置:
第5講(第4周)
(注:線右側(cè)寫教學(xué)方法、實(shí)驗(yàn)演示、新增補(bǔ)內(nèi)容、重要標(biāo)注、時(shí)間
分配等)
教學(xué)章節(jié):
2.2進(jìn)程控制
2.2.1進(jìn)程的創(chuàng)建
2.2.2進(jìn)程的終止
2.2.3進(jìn)程的阻塞與喚醒
2.2.4進(jìn)程的掛起與激活
2.3進(jìn)程同步
2.3.1進(jìn)程同步的基本概念
2.3.2信號(hào)量機(jī)制
教學(xué)目的及要求:
1.了解進(jìn)程控制的過程
2.掌握進(jìn)程間的相互關(guān)系,以及進(jìn)程同步的有效機(jī)制--信號(hào)量機(jī)制。
重點(diǎn)、難點(diǎn):
信號(hào)量的物理意義
教學(xué)內(nèi)容:板書設(shè)計(jì)見PPT。
復(fù)習(xí)引入:
上次課提及到進(jìn)程的幾種狀態(tài)以及之間如何轉(zhuǎn)換,本次課將詳細(xì)介紹
引起進(jìn)程各種狀態(tài)的原因,以及相應(yīng)原語的創(chuàng)建過程。
新課講授:
2.2進(jìn)程控制
進(jìn)程控制是進(jìn)程管理中最基本的功能,它用于創(chuàng)建和撤銷進(jìn)程,
并對(duì)進(jìn)程在整個(gè)生命周期中各種狀態(tài)之間的轉(zhuǎn)換進(jìn)行有效控制。進(jìn)程
控制是OS的內(nèi)核通過原語來實(shí)現(xiàn)的。
原語的作用是為了實(shí)現(xiàn)進(jìn)程通信和控制,是由若干條指令組成
的,用于完成一定功能的一個(gè)過程;原語的執(zhí)行具有原子性,即原語
在執(zhí)行過程中不可分割,在執(zhí)行過程中不允許被中斷。許多系統(tǒng)調(diào)用
就是原語。
處理機(jī)運(yùn)行時(shí)的兩種狀態(tài):核心態(tài)和用戶態(tài),
(1)系統(tǒng)狀態(tài):也叫管態(tài)或核心態(tài),它具有較高的特權(quán),能執(zhí)行一
切指令,訪問所有寄存器和存儲(chǔ)區(qū)。通常,OS內(nèi)核就運(yùn)行在系統(tǒng)態(tài)
下。
(2)用戶態(tài):也叫目態(tài),是一種具有較低特權(quán)的執(zhí)行狀態(tài)。它只能
執(zhí)行規(guī)定的指令、訪問規(guī)定的寄存器和存儲(chǔ)區(qū)。通常用戶程序都運(yùn)行
在用戶態(tài)。
用戶態(tài)時(shí)不可直接訪問受保護(hù)的OS代碼;
核心態(tài)時(shí)執(zhí)行OS代碼,可以訪問全部進(jìn)程空間
通過這兩個(gè)狀態(tài)的劃分,可防止用戶程序破壞OS內(nèi)核代碼和數(shù)據(jù)。
2.2.1進(jìn)程的創(chuàng)建
1.進(jìn)程圖
描述進(jìn)程的家族關(guān)系的有向樹(結(jié)點(diǎn):代表進(jìn)程,根結(jié)點(diǎn)為
該家族的祖先;有向邊:父子關(guān)系;樹:表示一個(gè)家族)
進(jìn)程P創(chuàng)建了進(jìn)程P,則R是巳的父進(jìn)程,P」是P的子進(jìn)程,
用一條由進(jìn)程R指向進(jìn)程P,的有向邊來描述。
創(chuàng)建父進(jìn)程的進(jìn)程為祖先進(jìn)程,由此形成進(jìn)程樹,樹根為進(jìn)程家
族的祖先。
提問:進(jìn)程圖與前趨圖比較
(1)前趨圖:描述的是任務(wù)之間的前趨關(guān)系,只有在前趨進(jìn)程完成
后,其后繼進(jìn)程才能運(yùn)行
(2)進(jìn)程圖:創(chuàng)建者和被創(chuàng)建者可以并發(fā)執(zhí)行,也可以父進(jìn)程等待其
所有子進(jìn)程結(jié)束后再執(zhí)行,這完全取決于創(chuàng)建原語和創(chuàng)建者的需要。
2.引起創(chuàng)建進(jìn)程的事件
在多道程序環(huán)境中,只有進(jìn)程才能在系統(tǒng)中運(yùn)行。導(dǎo)致創(chuàng)建進(jìn)程
的典型事件有:(分時(shí)系統(tǒng)的)用戶登錄、(批處理系統(tǒng)中的)作業(yè)調(diào)
度、提供服務(wù)這三種情況是由系統(tǒng)內(nèi)核為其創(chuàng)建一個(gè)新進(jìn)程。
應(yīng)用請(qǐng)求一一應(yīng)用程序本身也可以根據(jù)需要去創(chuàng)建新的進(jìn)程(自己創(chuàng)
建一個(gè)新進(jìn)程)
3.進(jìn)程的創(chuàng)建
操作系統(tǒng)發(fā)現(xiàn)要求創(chuàng)建新進(jìn)程的事件后,調(diào)用進(jìn)程創(chuàng)建原語
Croat()創(chuàng)建新進(jìn)程。
創(chuàng)建過程:
(1)申請(qǐng)空白PCB:申請(qǐng)進(jìn)程標(biāo)識(shí)符,并從PCB集合中索取一個(gè)空白
PCB
(2)為新進(jìn)程分配資源:為新進(jìn)程的程序和數(shù)據(jù)以及用戶棧分配必要
的內(nèi)存空間。
⑶初始化進(jìn)程控制塊:初始化標(biāo)識(shí)信息、處理機(jī)狀態(tài)信息、進(jìn)程調(diào)度
和控制信息。
(4)將新進(jìn)程插入就緒隊(duì)列
2.2.2進(jìn)程的終止
當(dāng)進(jìn)程完成任務(wù)或遇到異常情況和外界干預(yù)需要結(jié)束時(shí),應(yīng)通過
進(jìn)程終止原語來終止進(jìn)程。終止進(jìn)程的實(shí)質(zhì)是收回PCB。
1.引起進(jìn)程終止的事件
1)正常結(jié)束一一用于表示進(jìn)程已經(jīng)運(yùn)行完成的指示
2)異常結(jié)束一一運(yùn)行間,某些錯(cuò)誤和故障而迫使進(jìn)程終止
越界錯(cuò)誤、保護(hù)錯(cuò)、非法指令、特權(quán)指令錯(cuò)?、運(yùn)行超時(shí)等
3)外界干預(yù)一一并非異常事件,而應(yīng)外界的請(qǐng)求而終止運(yùn)行
操作員或操作系統(tǒng)干預(yù)、父進(jìn)程請(qǐng)求、父進(jìn)程中止
2.進(jìn)程的終止過程
(1)找到要終止進(jìn)程的PCB一—根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集
合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài)。
⑵若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,置調(diào)
度標(biāo)志為真,用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度。
(3)終止屬于該進(jìn)程的所有子孫進(jìn)程一一若該進(jìn)程有子孫進(jìn)程,應(yīng)將
其所有子孫進(jìn)程予以終止,以防他們成為不可控的進(jìn)程。
(4)釋放終止進(jìn)程所擁有的全部資源一一將被終止進(jìn)程所擁有的全
部資源,或歸還其父進(jìn)程,或歸還系統(tǒng)。
(5)將終止進(jìn)程移出它所在的隊(duì)列并收回PCB一一將被終止進(jìn)程的
PCB從所在隊(duì)列或鏈表中移出,等待其他程序搜索信息
2.2.3進(jìn)程的阻塞與喚醒
1.引起進(jìn)程阻塞和喚醒的事件
1)新數(shù)據(jù)尚未到達(dá)
2)無新工作可做
3)請(qǐng)求系統(tǒng)服務(wù)
4)啟動(dòng)某種操作
當(dāng)正在執(zhí)行的進(jìn)程需要等待某種事件的完成或本身無新工作可做時(shí),
應(yīng)調(diào)用阻塞原語將自己從執(zhí)行狀態(tài)轉(zhuǎn)換為阻塞狀態(tài)
2.進(jìn)程阻塞過程一一是進(jìn)程本身的一種主動(dòng)行為
調(diào)用阻塞原語阻塞自己,中止該進(jìn)程的執(zhí)行,將PCB中的狀態(tài)改
為阻塞,并加入到阻塞隊(duì)列中;然后轉(zhuǎn)進(jìn)程調(diào)度,將處理機(jī)分配給另
一進(jìn)程,并進(jìn)行進(jìn)程切換以及處理機(jī)狀態(tài)的保護(hù)與重新設(shè)置。
3.進(jìn)程喚醒過程
阻塞進(jìn)程等待的事件發(fā)生,有關(guān)進(jìn)程調(diào)用喚醒原語把等待該事件
的進(jìn)程喚醒。
喚醒原語的執(zhí)行:把阻塞進(jìn)程從等待該事件的阻塞隊(duì)列中移出,
將其PCB中的現(xiàn)行狀態(tài)改為就緒,將PCB插入到就緒隊(duì)列中。
阻塞原語與喚醒原語作用相反,成對(duì)使用。
注意:阻塞是進(jìn)程自己阻塞自己的,而進(jìn)程喚醒不是自己?jiǎn)拘炎约海?/p>
它需要另一進(jìn)程來實(shí)現(xiàn)。
2.2.4進(jìn)程的掛起與激活
1.進(jìn)程的掛起
當(dāng)出現(xiàn)引起進(jìn)程掛起的事件時(shí),系統(tǒng)利用掛起原語將指定進(jìn)程或
處于阻塞的進(jìn)程掛起。
掛起原語的執(zhí)行:檢查被掛起進(jìn)程的狀態(tài),若處于活動(dòng)就緒,則
改為靜止就緒,若處于活動(dòng)阻塞,則改為靜止阻塞,將該進(jìn)程PCB復(fù)
制到內(nèi)存指定區(qū)域,若掛起的進(jìn)程正在執(zhí)行,則重新進(jìn)行進(jìn)程調(diào)度。
如果掛起是為了對(duì)換,則在掛起進(jìn)程時(shí)還必須將它換出到外存中。
2.進(jìn)程的激活過程
當(dāng)發(fā)生激活進(jìn)程的事件時(shí),系統(tǒng)利用激活原語將指定進(jìn)程激活。
激活原語先將進(jìn)程從外存調(diào)入內(nèi)存,檢查該進(jìn)程的狀態(tài),若處于
靜止就緒,則改為活動(dòng)就緒,若處于靜止阻塞,則改為活動(dòng)阻塞。若
進(jìn)程轉(zhuǎn)換成活動(dòng)就緒狀態(tài),而系統(tǒng)又采用搶占調(diào)度策略,則應(yīng)檢杳該
進(jìn)程是否有權(quán)搶占CPU,若有則應(yīng)進(jìn)行進(jìn)程調(diào)度。同樣,若掛起是為
了對(duì)換,則在激活被掛起的進(jìn)程時(shí)還必須將它調(diào)入內(nèi)存。
2.3進(jìn)程同步
思考問題:
1)引入進(jìn)程同步的目的
2)臨界資源和臨界區(qū)
引入進(jìn)程同步:OS引入進(jìn)程提高了資源利用率和系統(tǒng)吞吐量,
但由于進(jìn)程的異步性導(dǎo)致了系統(tǒng)混亂,尤其爭(zhēng)用臨界資源時(shí),(引用
實(shí)例:當(dāng)多個(gè)進(jìn)程去爭(zhēng)用一臺(tái)打印機(jī)時(shí),有可能使多個(gè)進(jìn)程的輸出結(jié)
果交織在一起難于區(qū)分)。為此,OS必須引入某種機(jī)制,即進(jìn)程的同
步機(jī)制(進(jìn)程同步)。
進(jìn)程同步是指對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),它的目的
是使系統(tǒng)中諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的
執(zhí)行具有可再現(xiàn)性。用來實(shí)現(xiàn)同步的機(jī)制被稱作同步機(jī)制。
2.3.1進(jìn)程同步的基本概念
在多道程序的環(huán)境下:所有進(jìn)程都是相互獨(dú)立的、進(jìn)程以異步
方式并發(fā)執(zhí)行,致使進(jìn)程在活動(dòng)中會(huì)相互制約
1.兩種制約關(guān)系
直接:相互制約關(guān)系源于進(jìn)程合作,表現(xiàn)為:進(jìn)程--進(jìn)程(同步)
間接:相互制約關(guān)系源于資源共享,表現(xiàn)為:進(jìn)程-一資源--進(jìn)程(互
斥)
(1)同步
同步是進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí)直接發(fā)生相互作用的關(guān)系
同步舉例:輸入進(jìn)程和計(jì)算進(jìn)程通過單緩沖區(qū)來協(xié)調(diào)工作
同步進(jìn)程間具有合作關(guān)系
在執(zhí)行時(shí)間上必須按一定的順序協(xié)調(diào)進(jìn)行
(2)互斥
互斥是并發(fā)執(zhí)行的多個(gè)進(jìn)程由于競(jìng)爭(zhēng)同一資源而產(chǎn)生的相互排斥的關(guān)
系
互斥進(jìn)程彼此在邏輯上是完全無關(guān)的
它們的運(yùn)行不具有時(shí)間次序的特征
2.臨界資源
一次僅允許一個(gè)進(jìn)程使用的共享資源,如果多個(gè)進(jìn)程同時(shí)使用這
些資源,則有可能造成系統(tǒng)的混亂,如:打印機(jī),多個(gè)進(jìn)程同時(shí)使用
一臺(tái)打印機(jī),將使其輸出結(jié)果交織在一起,難于區(qū)分;又如共享變量,
多個(gè)進(jìn)程同時(shí)使用一個(gè)共享變量,會(huì)使結(jié)果具有不可再現(xiàn)性。
3.臨界區(qū)(如何保證諸進(jìn)程互斥地訪問臨界資源)
每個(gè)進(jìn)程中訪問臨界資源的那段代碼叫臨界區(qū)。
對(duì)欲訪問的臨界資源進(jìn)行檢查,進(jìn)入?yún)^(qū)
若此刻未被訪問,設(shè)正在訪問的標(biāo)志
訪問臨界資源臨界區(qū)
將正在訪問的標(biāo)志恢復(fù)為未被訪問的標(biāo)志……退出區(qū)
其余部分剩余
區(qū)
為了使多個(gè)進(jìn)程能有效地共享臨界資源,并使程序的執(zhí)行具有可再現(xiàn)
性,系統(tǒng)必須保證它們互斥地使用臨界資源,即保證它們互斥地進(jìn)入
自己地臨界區(qū)。如果一進(jìn)程已進(jìn)入臨界區(qū)使用臨界資源,另一企圖進(jìn)
入臨界區(qū)使用同一臨界資源的進(jìn)程便必須等待,直到前一進(jìn)程退出臨
界區(qū)為止。不難看出,互斥的實(shí)質(zhì)就是同步,互斥是同步的一種特殊
形式。
4.同步機(jī)制應(yīng)遵循的規(guī)則
為實(shí)現(xiàn)進(jìn)程互斥地進(jìn)入自己地臨界區(qū),采用同步機(jī)制來協(xié)調(diào)各進(jìn)程間
地運(yùn)行。
空閑讓進(jìn)一臨界資源空閑時(shí),應(yīng)允許一個(gè)請(qǐng)求進(jìn)入臨界區(qū)的進(jìn)程立
即進(jìn)入自己的臨界區(qū),以便有效地利用資源。
忙則等待一一當(dāng)臨界資源正被訪問時(shí),其他要求進(jìn)入臨界區(qū)地進(jìn)程必
須等待,以保證對(duì)臨界資源地互斥使用。
有限等待一一任何要求訪問臨界資源的進(jìn)程應(yīng)能在有限的時(shí)間內(nèi)進(jìn)入
自己的臨界區(qū),以免“死等”
讓權(quán)等待一一不能進(jìn)入臨界區(qū)的進(jìn)程應(yīng)立即糕放CPU,以免“忙等”
2.3.2信號(hào)量機(jī)制
思考問題:
信號(hào)量的含義(信號(hào)量的P、V操作如何實(shí)現(xiàn);各種信號(hào)量機(jī)制的特點(diǎn))
為了實(shí)現(xiàn)同步,OS引入多種管理機(jī)制,其中信號(hào)量機(jī)制是最有效
的。1965年荷蘭Dijkstra提出的進(jìn)程同步工具。(這個(gè)Dijkstra,就
是那個(gè)提出"goto有害論”的Dijkstra,就是那個(gè)提出信號(hào)量和PV
原語,解決了有趣的“哲學(xué)家聚餐”問題的Dijkstra,那個(gè)Dijkstra
最短路徑算法的創(chuàng)造者。曾在1972年獲得過素有計(jì)算機(jī)科學(xué)界的諾貝
爾獎(jiǎng)之稱的圖靈獎(jiǎng))
信號(hào)量代表可用資源實(shí)體的數(shù)量,信號(hào)量又叫信號(hào)燈
(semaphore),是表示資源的實(shí)體,是一個(gè)與隊(duì)列有關(guān)的整型變量,
除初值外其值僅能由P、V原語操作來改變。操作系統(tǒng)利用信號(hào)量對(duì)進(jìn)
程和資源進(jìn)行控制和管理。
公用(互斥)信號(hào)量:用于實(shí)現(xiàn)進(jìn)程之間的互斥,初值為1,它所聯(lián)系
的一組并發(fā)進(jìn)程均可對(duì)其實(shí)施P、V操作;
除初值外,信號(hào)量的值僅由P、V操作改變
P、V分別代表荷蘭語的“等待”/Wait,“發(fā)信號(hào)”Signal
P、V操作原語
一P操作(wait)原語申請(qǐng)一個(gè)單位資源
—V操作(signal)原語釋放一個(gè)單位資源
1.整型信號(hào)量
整型量,除初始化外,僅能通過兩個(gè)原子悚作來訪問。
Wait操作wait(S):WhileS<=0dono-op;
S:=S-1;
Signal操作signal(S):S:=S+1;
Wait、Signal操作是原子操作,不可中斷。
整型信號(hào)量的主要問題是,只要S<=0,wait操作就會(huì)不斷地測(cè)試,
因而,沒能做到“讓權(quán)等待”
2.記錄型信號(hào)量
整型信號(hào)量未遵循“讓權(quán)等待”原則,導(dǎo)致“忙等”。
記錄型信號(hào)量:一般是由兩個(gè)成員組成的數(shù)據(jù)結(jié)構(gòu),其中一個(gè)成員是
整型變量,表示該信號(hào)量的值,另一個(gè)是指向PCB的指針。引入整型
變量value(代表資源數(shù)目)、進(jìn)程鏈表L(鏈接所有等待進(jìn)程)
記錄型數(shù)據(jù)結(jié)構(gòu):
typesemaphore=record
value:integer;
L:listofPCB;
end;
信號(hào)量的值是與相應(yīng)資源的使用情況有關(guān)的。當(dāng)它的值大于0時(shí),表
示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時(shí),則其絕對(duì)值表示等待使
用該資源的進(jìn)程數(shù),即在該信號(hào)量隊(duì)列上排隊(duì)的PCB的個(gè)數(shù)。
wait(S):S.value:=S.value-1;
S.valueifS.value<0thenblock(S,L)
當(dāng)S.value<0時(shí)表示該類資源已分配完畢,進(jìn)程應(yīng)調(diào)用block原語自
我阻塞,放棄處理機(jī),插入到鏈表S.L中。
signal(S):S.value:=S.value+1;
S.valueifS.value<=0thenwakeup(S,L)
若加1后仍是S.valued,則表示在信號(hào)量鏈表中仍有等待該資源
的進(jìn)程被阻塞,應(yīng)調(diào)用wakeup原語,將S.L鏈表中的第一個(gè)等待進(jìn)
程喚醒。
前面介紹的進(jìn)程互斥問題,屬于多個(gè)進(jìn)程共享一個(gè)臨界資源。而AND
型信號(hào)量是為了解決多個(gè)進(jìn)程共享多個(gè)臨界資源。
3.AND型信號(hào)量
AND同步機(jī)制的基本思想:將進(jìn)程在整個(gè)運(yùn)行過程中需要的所有
資源,一次性全部分配給進(jìn)程,待進(jìn)程使用完后再一起釋放。只要尚
有一個(gè)資源未能分配給進(jìn)程,其他所有可能為之分配的資源,也不分
配給它,即對(duì)臨界資源的分配采取原子操作。
4.信號(hào)量集
一般信號(hào)量集的幾種特殊情況:
Swait(S,d,d),只有一個(gè)信號(hào)量S,允許每次申請(qǐng)d個(gè)資源,若
現(xiàn)有資源數(shù)少于d,不予分配。
Swait(S,1,1),蛻化為一般的記錄型信號(hào)量(S>1時(shí))或互斥信號(hào)
量(S=l時(shí))。
Swait(S,1,0),當(dāng)S>=1時(shí),允許多個(gè)進(jìn)程進(jìn)入某特定區(qū),當(dāng)S變
為0后,阻止任何進(jìn)程進(jìn)入特定區(qū),相當(dāng)于可控開關(guān)。
教課小結(jié):
預(yù)習(xí)要求:
作業(yè)布置:
實(shí)驗(yàn)二Linux進(jìn)程控制
第6講(第5周)
教學(xué)章節(jié):
2.3.3信號(hào)量的應(yīng)用
實(shí)例分析
教學(xué)目的及要求:
要求掌握信號(hào)量和管程機(jī)制的應(yīng)用
重點(diǎn)、難點(diǎn):
信號(hào)量機(jī)制及其應(yīng)用
教學(xué)內(nèi)容:板書設(shè)計(jì)見PPT。
復(fù)習(xí)引入:
總結(jié):信號(hào)量的物理意義
問題:信號(hào)量的物理含義以及每次wait和signal操作又分別意味什
么
一般說來,信號(hào)量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)S>0時(shí),其值
表示可用資源的數(shù)量,執(zhí)行一次Wait操作意味著請(qǐng)求分配一個(gè)單位
的資源;若SCO,表示已無資源,申請(qǐng)資源的進(jìn)程被阻塞,并排入
信號(hào)量S的等待隊(duì)列中,執(zhí)行一次Signal操作,意味著釋放一個(gè)單
位的資源。
新課講授:
2.3.3信號(hào)量的應(yīng)用
1.利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥
為使多個(gè)進(jìn)程能互斥地訪問某個(gè)臨界資源,只需為該資源設(shè)置
一互斥信號(hào)量mutex,初值為1,然后將訪問該資源的臨界區(qū)置于
wait(mutex)和signal(mutex)之間。
利用信號(hào)量實(shí)現(xiàn)互斥的說明
1)為臨界資源設(shè)置一個(gè)互斥信號(hào)量mutex,其初值為1
2)在每個(gè)進(jìn)程中將臨界區(qū)代碼置于Wait(mutex)和Signal(mutex)
原語之間
3)必須成對(duì)使用Wait和Signal原語:遺漏Wait原語則不能保證互
斥訪問,遺漏Signal原語則不能在使用臨界資源之后將其釋放
(給其他等待的進(jìn)程)
4)Wait、Signal原語不能次序錯(cuò)誤、重復(fù)或遺漏
2.把信號(hào)量作為進(jìn)程間的同步工具
(實(shí)現(xiàn)前驅(qū)關(guān)系)
若pi是pj的直接前趨,則可設(shè)置一個(gè)初值為0的公用信號(hào)量S,
并將signal(S)操作放在pi后,而在pj前插入wait(S)操作,以保
證pi在pj開始執(zhí)行之前完成。
舉例:設(shè)有兩個(gè)并發(fā)執(zhí)行的進(jìn)程P1和P2,P1中有語句SI,P2
中有語句S2,希望在S1執(zhí)行后再執(zhí)行S2。使進(jìn)程P1和P2共享一個(gè)
公用信號(hào)量S,并賦予其初值為0。
進(jìn)程Pl:SI;signal(S);
進(jìn)程P2:wait(S);S2;
例一:供者和用者對(duì)緩沖區(qū)的同步
設(shè)2個(gè)信號(hào)量:
empty一一緩沖區(qū)是否為空(初值為1)
full緩沖區(qū)是否為滿(初值為0)
供者進(jìn)程用者進(jìn)程
LI:Wait(empty)L2:Wait(full)
將信息送從緩沖區(qū)
入緩沖區(qū);取出信息;
Signal(ful1)Signal(empty)
gotoLIgotoL2
在現(xiàn)實(shí)生活中,同步的例子也比比皆是。
例二:在一輛公交車上,司機(jī)和售票員各行其職,獨(dú)立工作。司機(jī)負(fù)
責(zé)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年裝箱單在應(yīng)對(duì)外貿(mào)出口貿(mào)易救濟(jì)措施中的策略合同3篇
- 二零二五版國際貿(mào)易特許經(jīng)營合同主體欺詐風(fēng)險(xiǎn)管理與合同解除合同3篇
- 二零二五年電子顯示屏廣告租賃合同樣本3篇
- 二零二五版代辦房地產(chǎn)前期開發(fā)手續(xù)與建筑工程質(zhì)量檢測(cè)服務(wù)合同3篇
- 二零二五年采棉機(jī)駕駛員職業(yè)素養(yǎng)提升與勞動(dòng)合同3篇
- 二零二五版能源行業(yè)凍庫租賃合同含能源物資儲(chǔ)備協(xié)議3篇
- 二零二五年酒店客房部服務(wù)員勞動(dòng)合同書3篇
- 天津事業(yè)單位2025年度合同制聘用人員管理規(guī)范3篇
- 二零二五年度裝修合同范本:環(huán)保裝修保障您的生活品質(zhì)6篇
- 二零二五版地產(chǎn)經(jīng)紀(jì)居間合同糾紛處理指南3篇
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項(xiàng))備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 健康教育工作考核記錄表
- 裝飾工程施工技術(shù)ppt課件(完整版)
- SJG 05-2020 基坑支護(hù)技術(shù)標(biāo)準(zhǔn)-高清現(xiàn)行
- 汽車維修價(jià)格表
- 10KV供配電工程施工組織設(shè)計(jì)
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護(hù)士安全警示教育培訓(xùn)課件】--ppt課件
評(píng)論
0/150
提交評(píng)論