計(jì)算機(jī)操作系統(tǒng)教案課程_第1頁
計(jì)算機(jī)操作系統(tǒng)教案課程_第2頁
計(jì)算機(jī)操作系統(tǒng)教案課程_第3頁
計(jì)算機(jī)操作系統(tǒng)教案課程_第4頁
計(jì)算機(jī)操作系統(tǒng)教案課程_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論