操作系統(tǒng)期末復(fù)習(xí)題_第1頁
操作系統(tǒng)期末復(fù)習(xí)題_第2頁
操作系統(tǒng)期末復(fù)習(xí)題_第3頁
操作系統(tǒng)期末復(fù)習(xí)題_第4頁
操作系統(tǒng)期末復(fù)習(xí)題_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3學(xué)時(自學(xué)學(xué)時:6學(xué)時)

1.1操作系統(tǒng)概況

v操作系統(tǒng)的虛擬機觀點

操作系統(tǒng)是添加在硬件上的第一層軟件,是對硬件功能的首次擴充和延伸.

軟件:系統(tǒng)軟件和應(yīng)用軟件.系統(tǒng)軟件用來管理計算機本身及應(yīng)用軟件;應(yīng)用軟件

用來完成用戶所要求的實際任務(wù).

硬件:指未配置任何軟件的計算機.裸機乂分為物理器件,微程序與機器語言三個

層次.

v操作系統(tǒng)的資源管理觀點

資源分硬件資源和軟件資源.

硬件資源是計算機硬件系統(tǒng)的總和,包括中央處理機,主/輔助存儲器,輸入/輸出

設(shè)備等.

軟件資源是系統(tǒng)中各種程序和數(shù)據(jù)的總和,這些程序和數(shù)據(jù)均以文件的形式保存

在計算機系統(tǒng)中.

V操作系統(tǒng)的用戶服務(wù)觀點

操作系統(tǒng)是用戶與計算機之間的一個接口.它為用戶提供了兩種使用操作系統(tǒng)的

方式:命令方式,系統(tǒng)調(diào)用方式.

命令方式:是指操作系統(tǒng)提供了一組聯(lián)機,用戶通過鍵盤或鼠標(biāo)使用這些命令,并

直接操縱計算機系統(tǒng).

系統(tǒng)調(diào)用方式:是指操作系統(tǒng)提供了一組系統(tǒng)調(diào)用,用戶可在自己的程序中通過

調(diào)用來相應(yīng)的系統(tǒng)操縱計算機.

V定義

操作系統(tǒng):是計算機系統(tǒng)中的?個系統(tǒng)軟件,用來管理和控制計算機系統(tǒng)中的軟

硬件資源,合理地組織計算機工作流程,提供用戶和計算機之間的軟件接口,方便

用戶使用計算機.

V操作系統(tǒng)目標(biāo)

目前存在著多種類型的操作系統(tǒng),不同類型的操作系統(tǒng)其目標(biāo)各有側(cè)重.但般

來說都包括:方便性,有效性,可擴充性和開放性.

V操作系統(tǒng)的特征

并發(fā):指兩個或兩個以上事件在同一時間間隔內(nèi)發(fā)生.

共享:指系統(tǒng)中硬件和軟件資源可為多個用戶同時使用(互斥共享,同時訪問)

虛擬:指物理上的一個實體變成邏輯上的多個對應(yīng)物.

異步性:指內(nèi)存中的多個進程均按照各自獨立的,不可預(yù)知的速度向前推進.

1.2操作系統(tǒng)的形成和發(fā)展

v操作系統(tǒng)的歷史

操作系統(tǒng)的發(fā)展經(jīng)歷了以下幾個階段:手工存在階段(無操作系統(tǒng)),脫機輸入輸

出技術(shù)階段,批處理技術(shù)階段,多道程序設(shè)計技術(shù)階段.

1.3操作系統(tǒng)的基本類型

v分類

最常用分類方法(按照操作系統(tǒng)的用戶服務(wù)方式分)主要有:多道批處理系統(tǒng);分

時系統(tǒng);實時系統(tǒng).其它操作系統(tǒng)還包括:通用操作系統(tǒng),網(wǎng)絡(luò)操作系統(tǒng),并發(fā)操作

系統(tǒng),面向?qū)ο蟛僮飨到y(tǒng).

v多道批處理系統(tǒng)

運行方式(了解)

特征:多道性,無序性,調(diào)度性

優(yōu)缺點:優(yōu)點:資源利用率高,系統(tǒng)吞吐量大.缺點:平均周轉(zhuǎn)時間長,無交互能力.

在設(shè)計批處理系統(tǒng)時,首先要考慮的是周轉(zhuǎn)時間和系統(tǒng)的吞吐量.

V分時系統(tǒng)

實現(xiàn)基本方法;設(shè)立時間片

特性:多路性,獨立性,及時性,交互性.

響應(yīng)時間:指從終端用戶發(fā)出--條命令開始,到系統(tǒng)處理完這條命令并做出回答

為止所需的最大時間間隔.

影響響應(yīng)時間的因素:系統(tǒng)開銷,用戶數(shù)目,時間片,信息對換量.

改善響應(yīng)時間的辦法:一種可行的辦法是減少信息對換量.而減少信息對換量可

采用重入碼技術(shù)和虛擬存儲技術(shù).

設(shè)計分時操作系統(tǒng)時,首先要考慮的是交互性和響應(yīng)時間.

V實時系統(tǒng)

定義:是指系統(tǒng)對特定輸入做出反應(yīng)速度足以控制發(fā)出實時信號的對象的一種操

作系統(tǒng).

實時系統(tǒng)的類型:1實時控制系統(tǒng);2實時信息處理系統(tǒng)

特征:多路性,獨立性,及時性,交互性,高可靠性.

設(shè)計實時操作系統(tǒng)時,首先要考慮的是實時性和可靠性.

v微機操作系統(tǒng)

單用戶單任務(wù)OS:只允許一個用戶上機,且只允許用戶程序作為一個任務(wù)運行.

最具代表性的是CP/M和MS-DOS.

單用戶多任務(wù)OS:只允許一個用戶上機,但允許將一個用戶程序分為若干個任務(wù),

使它們并發(fā)執(zhí)行.最具代表性的是OS/2和MS-WINDOWS.

多用戶多任務(wù)OS:允許多個用戶通過各自的終端使用同一臺主機,共享主機的各

類資源,同時用戶程序又可進?步分成兒個任務(wù),使它們并發(fā)執(zhí)行.最具代表性的

是UNIXOS.

1.4操作系統(tǒng)的服務(wù)與功能

v操作系統(tǒng)的服務(wù)

操作系統(tǒng)公共服務(wù)類型:程序執(zhí)行,I/O操作,文件系統(tǒng)管理,通信,資源分配,差錯

處理

操作系統(tǒng)的服務(wù)方式:系統(tǒng)調(diào)用,系統(tǒng)程序.

系統(tǒng)調(diào)用的類型:進程管理,設(shè)備管理,文件管理,信息維護和通訊五大類.

v操作系統(tǒng)功能

從資源管理和用戶接口的觀點看,操作系統(tǒng)的基本功能為:①處理機管理;②存儲

管理;③設(shè)備管理;④信息管理(文件系統(tǒng)管理);⑤用戶接口.其中硬件資源為處

理機,存儲器和設(shè)備三類,軟件資源為信息或文件(程序和數(shù)據(jù)的通稱).

V用戶接口

命令接口:又分聯(lián)機命令接口:為聯(lián)機用戶提供的,由一組鍵盤命令和命令解釋程

序組成;脫機命令接口:為批處理作業(yè)的用戶提供,由一組作業(yè)控制語言JCL(job

controllanguage)組成.

程序接口:是為用戶程序在運行過程中訪問系統(tǒng)資源而設(shè)定的,也是用戶取得操

作系統(tǒng)服務(wù)的唯一途徑,由一組系統(tǒng)調(diào)用組成.

圖形接口

v處理機管理

處理機管理功能可歸結(jié)為進程管理,主要功能:進程控制;進程同步;進程通訊;進

程調(diào)度.

V存儲管理

存儲管理應(yīng)具備的功能,為:內(nèi)存分配;內(nèi)存保護;地址映射;內(nèi)存擴充.

V設(shè)備管理

設(shè)備管理應(yīng)具備的功能,為:緩沖管理;設(shè)備分配;設(shè)備處理;虛擬設(shè)備管理.

V文件管理

文件管理的主要功能包括:文件存儲空間管理;目錄管理;文件讀寫管理;文件保

護;文件系統(tǒng)的安全性;文件接口.

1.5操作系統(tǒng)結(jié)構(gòu)

v分類

從操作系統(tǒng)的內(nèi)部結(jié)構(gòu)來看,操作系統(tǒng)可分為三種主要類型:整體式系統(tǒng)(無結(jié)

構(gòu));層次式系統(tǒng);客戶/服務(wù)器系統(tǒng).

V整體式結(jié)構(gòu)

整個系統(tǒng)是一堆過程的集合,每過程都有一個定義好的接口,包括入口參數(shù)和

返回值,過程間可以相互調(diào)用而不受約束,UNIX的系統(tǒng)核心層是典型的沒有層次

的無結(jié)構(gòu)型.

v層次式系統(tǒng)

按照操作系統(tǒng)中模塊的功能和相互依存關(guān)系把它們劃分為若干個層次:

最底層:OS對象;

中間層:對對象進行管理和控制的軟件集合;

最高層:os提供給用戶使用的用戶接口.

v客戶/服務(wù)器系統(tǒng)

在客戶/服務(wù)器結(jié)構(gòu)中,需要把操作系統(tǒng)的服務(wù)功能分為若干個服務(wù)器,而用戶進

程則稱為客戶進程.操作系統(tǒng)由微內(nèi)核和核外服務(wù)器進程組成.微內(nèi)核提供最基

本的,最必要的服務(wù),而OS的其他功能由運行在核外的服務(wù)器完成.

主要優(yōu)點:提高了系統(tǒng)的可靠性;適合于分布式系統(tǒng)中的應(yīng)用.

練習(xí)題:

1:下面8個系統(tǒng)中,必須是實時操作系統(tǒng)的有一一個.

1計算機輔助設(shè)計系統(tǒng);2航空定票系統(tǒng);3過程捽制系統(tǒng);4機器翻譯系統(tǒng);

5辦公自動化系統(tǒng);6計算機激光照排系統(tǒng);7情報檢索系統(tǒng);8導(dǎo)彈的制導(dǎo)系統(tǒng)

2:在分時系統(tǒng)中為使多個用戶能夠同時與系統(tǒng)交互,最關(guān)鍵的問題是―⑴—,當(dāng)

用戶數(shù)目為100時,為保證響應(yīng)時間不超過2秒,此時時間片最大應(yīng)為—⑵

⑴:A.計算機具有足夠高的運行速度B.內(nèi)存容量應(yīng)足夠大C.系統(tǒng)能及時地接收

多個用戶輸入D,能在一最短的時間內(nèi),使所有的用戶都能運行E.能快速地進行

內(nèi)外存交換⑵:A存。msB.20msC.50msD.100msE.200ms

3:OS/2操作系統(tǒng)是由—⑴—開發(fā)的,它屬于—⑵一類操作系統(tǒng);UNIX操作系

統(tǒng)是由—⑶—推出的,它屬于_(4)_類操作系統(tǒng).

(1),(3):A.IBM公司B.Microsoft公司C.Microsoft和IBM聯(lián)合D.Bell實驗

⑵,⑷:A.單用戶單任務(wù)B.單用戶多任務(wù)C.多處理機D.多用戶多任務(wù)

4:分時系統(tǒng)形成和發(fā)展的主要動力是什么

5:操作系統(tǒng)中實現(xiàn)虛擬的關(guān)鍵技術(shù)是什么并加以說明.

6:設(shè)計實時環(huán)境的操作系統(tǒng)的主要困難是什么

7:?個分層結(jié)構(gòu)操作系統(tǒng)有:i裸機;(用戶;(CPU調(diào)度和P,V操作;(文件管理;

(作業(yè)管理;(內(nèi)存管理;(設(shè)備管理;(命令管理等組成,請按層次結(jié)構(gòu)的原則從內(nèi)

到外將各部分重新排列.

8:操作系統(tǒng)是一種—⑴根據(jù)其服務(wù)對象,常用的單處理機操作系統(tǒng)可分為三

種類型:允許多個用戶在其終端上同時交互方式使用計算機的操作系統(tǒng),稱為—

⑵_;允許多用戶將若干個作業(yè)提交給計算機系統(tǒng)集中處理的操作系統(tǒng)稱為—

⑶一;在一⑷一的控制下,計算機系統(tǒng)能及時處理由過程控制反饋的數(shù)據(jù),并做

出響應(yīng);設(shè)計⑷時,首先應(yīng)考慮系統(tǒng)的—⑸

⑴:A.通用軟件B.應(yīng)用軟件C.系統(tǒng)軟件D.操作的軟件

(2)-(4):A.批處理操作系統(tǒng)B.分時操作系統(tǒng)C.實時操作系統(tǒng)D.微機操作系統(tǒng)

E.多處理機操作系統(tǒng)F.分布式操作系統(tǒng)G.網(wǎng)絡(luò)操作系統(tǒng)

⑸:A,可靠性和靈活性B.實時性和可靠性C.優(yōu)先權(quán)分配D.時間片輪轉(zhuǎn)

E.短作業(yè)優(yōu)先F.時間片加分配

9:操作系統(tǒng)的基本特征有哪些

10:什么是操作系統(tǒng)

11:操作系統(tǒng)有哪幾種基本類型它們的主要特征有那些

12:分時系統(tǒng)的響應(yīng)時間是什么它與哪些因素有關(guān)

13:實時系統(tǒng)可分哪幾類

14:多道程序和多重處理有何區(qū)別

參考答案:

1解:1,2,3,7,8

2解:1D;2B

3解:1c;2b;3d;4d

4答:主要動力是為了更好地滿足用戶的需要.主要表現(xiàn)在:1)縮短了作業(yè)的周轉(zhuǎn)

時間;2)提供人機交互能力;3)多個用戶共享?臺計算機.

(批處理系統(tǒng)的主要推動力是不斷提高系統(tǒng)的資源利用率和提高系統(tǒng)的吞吐量.)

5答:是分時技術(shù).例如,將?臺物理處理機虛擬為多臺邏輯上的處理機,是靠多道

程序分時地使用同一臺物理處理機來實現(xiàn)的.微觀上,該處理機在每一時刻只運

行一道程序,它們分時地運行;然而在宏觀上,系統(tǒng)中確有兒道程序在同時運行,從

而給用戶的感覺是系統(tǒng)中同時同時有多臺處理機在為其中的每一道程序服務(wù),顯

然用戶所感覺到的處理機并不實際存在.

6答:是在實時環(huán)境規(guī)定的時間限額內(nèi)對用戶作出相應(yīng)的反應(yīng),否則就有可能導(dǎo)致

系統(tǒng)的崩潰.因此,在設(shè)計時必須保證所采用的調(diào)度策略及相關(guān)技術(shù)不會使響應(yīng)

時間超過實時環(huán)境所規(guī)定的時間限額.

7答:重新排列后順序為:(裸機;(CPU調(diào)度和P,V操作;(內(nèi)存管理;(作業(yè)管理;

(設(shè)備管理;(文件管理;(命令管理.

8解:⑴C(2)B(3)A(4)C(5)B

9答:1并發(fā):指兩個或兩個以上事件在同一時間間隔內(nèi)發(fā)生;2共享:指系統(tǒng)中

硬件和軟件資源可為多個用戶同時使用(互斥共享,同時訪問);3虛擬:指物理上

的一個實體變成邏輯上的多個對應(yīng)物;4異步性:指內(nèi)存中的多個進程均按照各

自獨立的,不可預(yù)知的速度向前推進.10答:操作系統(tǒng)是計算機系統(tǒng)中的?個系

統(tǒng)軟件,用來管理和控制計算機系統(tǒng)中的軟硬件資源,合理地組織計算機工作流

程,提供用戶和計算機之間的軟件接口,方便用戶使用計算機.

11答;操作系統(tǒng)的基本類型

有:1多道批處理系統(tǒng);2分時系統(tǒng);3實時系統(tǒng).其中多道批處理系統(tǒng)的特征:多

道性,無序性,調(diào)度性;分時系統(tǒng)的特征:多路性,獨立性,及時性,交互性.實時系統(tǒng)

的特征:多路性,獨立性,及時性,交互性,高可靠性.

12答:分時系統(tǒng)的響應(yīng)時間指從終端用戶發(fā)出一條命令開始,到系統(tǒng)處理完這條

命令并做出回答為止所需的最大時間間隔.它與下列因素有:系統(tǒng)開銷,用戶數(shù)目,

時間片,信息對換量.

13答:實時系統(tǒng)的類型實時控制系統(tǒng);2實時信息處理系統(tǒng)

14答:多道程序multiprogramming是作業(yè)之間自動調(diào)度執(zhí)行,共享系統(tǒng)資源,

并不是真正地同時執(zhí)行多個作業(yè);而多重處理multiprocessing系統(tǒng)配置多個

CPU,能真正同時執(zhí)行多道程序.要有效使用多重處理,必須采用多道程序設(shè)計技

術(shù),而多道程序設(shè)計原則上不一定要求多重處理系統(tǒng)的支持.

第二章用戶接口

教學(xué)內(nèi)容

1.作業(yè)的基本概念

2.用戶接口概述

3.命令接口

4.程序接口

5.圖形接口

教學(xué)要求

了解作業(yè)的基本概念;了解操作系統(tǒng)提供給用戶的接口類型及各種接口的實現(xiàn)方

法;熟悉命令接口在不同工作方式下的主要功能,作業(yè)和作業(yè)管理的基本概念;掌

握系統(tǒng)調(diào)用的定義及其執(zhí)行過程.

自學(xué)要點

重點是嘉業(yè)的基本概念和建立;用戶接口的概念和類型;系統(tǒng)調(diào)用的概念和過程

學(xué)時分配

3學(xué)時(自學(xué)學(xué)時:6學(xué)時)

2.1作業(yè)的基本概念

v作業(yè)

作業(yè)。ob)是用戶提交給計算機進行加工的個任務(wù),由三部分組成,即程序,數(shù)

據(jù)及作業(yè)說明書.通常一個作業(yè)又可分為若干個順序處理的作業(yè)步,其中每個作

業(yè)步又可細(xì)分為若干個作業(yè)步任務(wù).

v作業(yè)的類型

根據(jù)調(diào)度和控制的需要,可對作業(yè)進行分類.

從調(diào)度的角度,可把作業(yè)分成:①計算型作業(yè),指任務(wù)中包含大量的計算,而其I/O

較少的作業(yè),如通常的科學(xué)計算;②I/O型作業(yè),要求少量的計算而需大量I/O的

作業(yè),如通常的事務(wù)處理.

從控制的角度,可把作業(yè)分成:①脫機作業(yè),在整個作業(yè)的運行過程中,只需根據(jù)作

業(yè)說明書中的說明對作業(yè)進行控制,脫機作業(yè)通常是在批處理操作環(huán)境下運行,

故也稱為批量型作業(yè);②聯(lián)機作業(yè),通常是用鍵盤命令直接控制作業(yè)的運行,聯(lián)機

作業(yè)通常在分時操作環(huán)境下運行,故也稱為終端型作業(yè).

v作業(yè)的建立過程

一個作業(yè)的建立過程包括兩個子過程,即作業(yè)的輸入方式和JCB的建立.

作業(yè)的輸入指將作業(yè)的程序,數(shù)據(jù)和作業(yè)說明書從輸入設(shè)備(如鍵盤)輸入到外存,

并形成有關(guān)的初始信息.其輸入方式主要有:①聯(lián)機輸入方式②脫機輸入方式③

直接耦合方式④SPOOLing系統(tǒng)⑤網(wǎng)絡(luò)輸入方式.

v作業(yè)的組織

程序,數(shù)據(jù)和作業(yè)說明書.程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作的具體內(nèi)

容,作業(yè)處理的說明是用戶要求計算機所作的步驟.

v作業(yè)的狀態(tài)及其轉(zhuǎn)換

作業(yè)從提交給系統(tǒng)直到它完成后離開系統(tǒng)前的整個活動過程,可分為:提交狀態(tài);

后備狀態(tài);運行狀態(tài);完成狀態(tài).

2.2用戶接口概述

操作系統(tǒng)是用戶和計算機之間的接口,用戶通過操作系統(tǒng)的幫助可以快速,有效

和安全可靠地使用計算機各類資源.通常操作系統(tǒng)為用戶控制其作業(yè)提供命令接

口,程序接口和圖形接口.

2.3命令接口

v命令接口

命令接口是操作系統(tǒng)為用戶提供的各種操作命令,用戶利用它來組織作業(yè)的工作

流程和控制作業(yè)的運行.類型有:脫機命令接口;聯(lián)機命令接口.

V脫機命令接口

脫機命令接口是操作系統(tǒng)為脫機工作方式下的用戶提供的一種接口.利用JCL語

言將用戶對作業(yè)的控制耍求寫成作業(yè)控制卡或作業(yè)說明書的形式.

JCL:作業(yè)控制語言,是一種用來表達申請作業(yè)控制意圖和步驟的語言.JCL的語

句就是作業(yè)控制命令.不同批處理提供不同的JCL.

v聯(lián)機命令接口

聯(lián)機命令接口指用戶通過控制臺或終端,采用人一機會話的方式,直接控制作業(yè)

的運行.又分為:1鍵盤命令方式;2命令文件方式.

鍵盤命令方式:是通過逐條輸入鍵盤命令語句,經(jīng)解釋后執(zhí)行,以控制作業(yè)運行的

?種方式,通常包括:1系統(tǒng)管理;2環(huán)境設(shè)置;3編輯修改,編譯,連接和運行命

令;4文件管理命令;5操作員專用命令(執(zhí)行權(quán)限管理);6通信;7資源要求.

命令文件方式:是用鍵盤命令語言編寫的一個鍵盤命令語言程序一一命令文件.

一旦建立命令文件后,系統(tǒng)可連續(xù)執(zhí)行若干條命令并且可以多次重復(fù)執(zhí)行.命令

文件中可以進行參數(shù)傳遞,也可以嵌套的方式調(diào)用其他的命令文件.

2.4程序接口(系統(tǒng)調(diào)用)

v程序接口

程序接口是OS專門為用戶程序設(shè)置的,也是用戶程序取得OS服務(wù)的唯一途徑,

程序接口通常由各種各樣的系統(tǒng)調(diào)用所組成.

v系統(tǒng)調(diào)用

系統(tǒng)調(diào)用的基本概念:是OS提供給編程人員的唯一接口,是由操作系統(tǒng)中的?段

程序來完成特定功能的,屬于一種特殊的過程調(diào)用.有的計算機系統(tǒng)中,把它稱為

廣義指令.

調(diào)用的方式:采用訪管方式來實現(xiàn).通過產(chǎn)生一個訪管中斷,使處理機由目態(tài)(用

戶態(tài))轉(zhuǎn)為管態(tài)(系統(tǒng)態(tài)).(當(dāng)中央處理器處于目態(tài)時不允許執(zhí)行特權(quán)指令;而處

于管態(tài)時可這些包括特權(quán)指令在內(nèi)的一切機器指令)

常用的訪管指令的形式:SVCN

v系統(tǒng)調(diào)用與一般過程調(diào)用的主要區(qū)別

系統(tǒng)調(diào)用本質(zhì)上一種過程調(diào)用,但它是一種特殊的過程調(diào)用,主要區(qū)別有:

①運行狀態(tài)不同:一般的過程調(diào)用,其調(diào)用和被調(diào)用過程或者都是子程序,或者

都是系統(tǒng)程序,故運行在同?系統(tǒng)狀態(tài)下:系統(tǒng)態(tài)或用戶態(tài).系統(tǒng)調(diào)用的調(diào)用過程

是用戶程序,它運行在用戶態(tài);其被調(diào)用過程是系統(tǒng)過程,運行在系統(tǒng)態(tài)下.

②進入的方式不同:般過程調(diào)用可以直接通過過程調(diào)用語句將控制轉(zhuǎn)移到被

調(diào)用的過程;而執(zhí)行系統(tǒng)調(diào)用時,由于調(diào)用和被調(diào)用過程處于不同的系統(tǒng)狀態(tài),必

須通過訪管中斷進入.

③代碼層次不同:一般的過程調(diào)用中的被調(diào)用程序是用戶級程序,而系統(tǒng)調(diào)用是

操作系統(tǒng)中的代碼程序,是系統(tǒng)級程序.

V系統(tǒng)調(diào)用的實現(xiàn)過程

用戶在源程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)調(diào)用名和函數(shù)后,即產(chǎn)生一條相應(yīng)的陷

入指令,通過陷入處理機制調(diào)用服務(wù),引起處理機中斷,然后保護處理機現(xiàn)場,取系

統(tǒng)調(diào)用功能號并尋找子程序入口,通過入口地址表來調(diào)用系統(tǒng)子程序.執(zhí)行完畢

后,退出中斷,返回到用戶程序的斷點,恢復(fù)現(xiàn)場,繼續(xù)執(zhí)行用戶程序.

2.5圖形接口

v圖形用戶接口

圖形用戶接口的引入:主要是在使用命令接口時,要求用戶熟悉并記住系統(tǒng)所提

供各種命令的名稱,功能和格式;此外還要求用戶按照規(guī)定的格式準(zhǔn)確的鍵入,這

不僅不方便,而且需花費較多的時間;同時利用命令接口來進行文字處理,圖形的

繪制和編輯也是極為不便的.

圖形用戶接口元素:窗口;圖標(biāo);菜單;對話框

圖形用戶接口元素的基本操作:菜單操作;窗口操作;對話框操作.

練習(xí)題:

1:在分時系統(tǒng)中是否應(yīng)設(shè)置作業(yè)調(diào)度為什么實時系統(tǒng)呢

2:為什么說SPOOLING對批處理(多道程序)是必需的對分時系統(tǒng)也是需要的

3:作業(yè)控制方式可分為兩種,它們是—⑴⑵

(1)-(2):A.命令方式B.程序方式C.聯(lián)機方式D.脫機方式E.后備方式F.執(zhí)行

方式G.批量方式H.調(diào)用方式

4:用戶作業(yè)被SPOOLing系統(tǒng)輸入到外存時,稱此作業(yè)處于—⑴在外存后備

隊列上的作業(yè)處于—⑵—,作業(yè)在內(nèi)存處于—⑶

(1)-(3):A.進入狀態(tài)B.運行狀態(tài)C.完成狀態(tài)D.后備狀態(tài)E.就緒狀態(tài)

5:什么是作業(yè)

6:操作系統(tǒng)為用戶提供哪些接口

7:什么是系統(tǒng)調(diào)用系統(tǒng)調(diào)用與?般過程的區(qū)別

8:作業(yè)由哪幾部分組成各有什么功能

9:簡述系統(tǒng)調(diào)用的實現(xiàn)過程

10:什么是作業(yè)作業(yè)步

11:試述SPOOLING系統(tǒng)的工作原理

參考答案:

1答:分時系統(tǒng)最重要的目標(biāo)是實現(xiàn)人機交互,因此系統(tǒng)中所有的作業(yè)都是由用戶

從鍵盤終端直接輸入到內(nèi)存,從而保證在一較短的時間內(nèi),各終端作業(yè)都能被處

理.如果將終端作業(yè)先送到外存輸入井上再等待作業(yè)調(diào)度后,才將作業(yè)調(diào)入內(nèi)存,

則既不能保證人機交互的及時性,又顯然是多此一舉,故在分時系統(tǒng)中沒有作業(yè)

控制表,不需設(shè)置作業(yè)調(diào)度.

在實時系統(tǒng)中,由于實時任務(wù)往往是其實時性更高的任務(wù),它們一般常住內(nèi)存,因

而也不需要作業(yè)調(diào)度.

2答:是.理由是它允許事先從輸入設(shè)備上讀入信息并將輸出文件暫存于輸出設(shè)備

中,直到輸出設(shè)備準(zhǔn)備接收它們?yōu)橹?由于許多作業(yè)可能同時到達,所以,CPU將

一個作業(yè)的計算與其他作業(yè)的I/O操作并發(fā)執(zhí)行.分時系統(tǒng)則不需要.理由是每

個事務(wù)通常較短,而且輸出信息一般直接輸出到打印設(shè)備上.

3解:⑴C,(2)D

4解:⑴A,⑵D,(3)B

5答:作業(yè)(Job)是用戶提交給計算機進行加工的一個任務(wù),由三部分組成,即程

序,數(shù)據(jù)及作業(yè)說明書.

6答:命令接口(又分脫機命令接口;聯(lián)機命令接口);程序接口(即系統(tǒng)調(diào)用),圖

形接口.

7答:系統(tǒng)調(diào)用的基本概念:是OS提供給編程人員的唯一接口,是由操作系統(tǒng)中

的一段程序來完成特定功能的,屬于?種特殊的過程調(diào)用.主要區(qū)別:①運行狀態(tài)

不同:一般的過程調(diào)用,其調(diào)用和被調(diào)用過程或者都是子程序,或者都是系統(tǒng)程序,

故運行在同一系統(tǒng)狀態(tài)下:系統(tǒng)態(tài)或用戶態(tài).系統(tǒng)調(diào)用的調(diào)用過程是用戶程序,它

運行在用戶態(tài);其被調(diào)用過程是系統(tǒng)過程,運行在系統(tǒng)態(tài)下.②進入的方式不同:

?般過程調(diào)用可以直接通過過程調(diào)用語句將控制轉(zhuǎn)移到被調(diào)用的過程;而執(zhí)行系

統(tǒng)調(diào)用時,由于調(diào)用和被調(diào)用過程處于不同的系統(tǒng)狀態(tài),必須通過訪管中斷進入.

③代碼層次不同:?般的過程調(diào)用中的被調(diào)用程序是用戶級程序,而系統(tǒng)調(diào)用是

操作系統(tǒng)中的代碼程序,是系統(tǒng)級程序.

8答:程序,數(shù)據(jù)和作業(yè)說明書.程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作的具

體內(nèi)容,作業(yè)處理的說明是用戶要求計算機所作的步驟.

9答:用戶在源程序中使用系統(tǒng)調(diào)用,給出系統(tǒng)調(diào)用名和函數(shù)后,即產(chǎn)生?條相應(yīng)

的陷入指令,通過陷入處理機制調(diào)用服務(wù),引起處理機中斷,然后保護處理機現(xiàn)場,

取系統(tǒng)調(diào)用功能號并尋找子程序入口,通過入口地址表來調(diào)用系統(tǒng)子程序.執(zhí)行

完畢后,退出中斷,返回到用戶程序的斷點,恢復(fù)現(xiàn)場,繼續(xù)執(zhí)行用戶程序.

10答:作業(yè)是用戶提交給計算機進行加工的一個任務(wù),由三部分組成,即程序,數(shù)

據(jù)及作業(yè)說明書.作業(yè)由不同順序相連的作業(yè)步組成.作業(yè)步是在一個作業(yè)的處

理過程中,計算機所做的相對獨立的工作.

11答:當(dāng)用戶提交一批作業(yè)后,操作員鍵入"預(yù)輸入命令"啟動預(yù)輸入程序工作,預(yù)

輸入程序啟動輸入機讀出作業(yè)信息,并把它們存放到輸入井中.當(dāng)主存儲器可以

裝入作業(yè)時就從輸入井中選擇若干作業(yè)裝入主存儲器.被裝入主存儲器中的作業(yè)

在執(zhí)行中可請求井管理程序從輸出井讀需處理的信息或把處理結(jié)果寫到輸出井

中.緩輸出程序利用處理器空閑時間把作業(yè)執(zhí)行結(jié)果在打印機上輸出.

第三章進程管理

教學(xué)內(nèi)容

1.進程的基本概念

2,進程的實現(xiàn)

3.進程控制

4.進程的同步與互斥

5.利用信號量機制解決經(jīng)典進程同步問題

6.進程通信

7.線程的概念

教學(xué)要求

了解引入進程的原因,進程控制的方法;熟悉進程的基本狀態(tài)及變遷,進程控制塊

和組織,信號量和P,V原語,進程通信的類型和方法;掌握用信號量機制解決各種

互斥同步問題的方法.

自學(xué)要點

進程的基本概念,描述,基本狀態(tài)及其轉(zhuǎn)換;原語及其執(zhí)行特點,進程控制原語的工

作流程;臨界區(qū),信號量并發(fā)進程間的制約方式及原因.重點為信號量和P,v原語,

并能解決-些各種同步互斥以及前趨圖等實際問題.

學(xué)時分配

9學(xué)時(自學(xué)學(xué)時:18學(xué)時)

3.1進程的基本概念

v進程的引入

①程序的順序執(zhí)行

程序的順序執(zhí)行指?個具有獨立功能的程序獨占處理機直到得到最終結(jié)果的過

程.具有:順序性,封閉性和可再現(xiàn)性.

②程序的并發(fā)執(zhí)行

程序的并發(fā)執(zhí)行指一組在邏輯上相互獨立的程序或程序段在執(zhí)行過程中其執(zhí)行

時間在客觀上互相重疊.程序的并發(fā)執(zhí)行增強了計算機系統(tǒng)的處理能力和提高了

資源的利用率.具有:間斷性,失去了封閉性及不可再現(xiàn)性.

例1:

Intn=0

程序A

條件為真

1n=n+l;

程序A的其余部分

程序B

條件為真

1print(n);

2n=0;

程序B的其余部分

討論可能出現(xiàn)的結(jié)果(三種情況:

A1,B1,B2;B1ZA1,B2;B1ZB2,A1)

v程序并發(fā)執(zhí)行的Bernstein條件

定義有關(guān)程序的讀集和寫集

R(Pi)={al,a2,...,am},用來表示程序Pi在執(zhí)行期間所需引用的變量集合,稱為

Pi的讀集.

W(Pi)={al,a2,...,am},用來表示程序Pi在執(zhí)行期間所需改變的變量集合,稱

為Pi的寫集.

Bernstein條件:若兩個程序P1和P2能滿足下述條件,R(Pl)nW(P2)UR(P2)

CW(P1)UW(P1)CW(P2)={}它們便能并發(fā)執(zhí)行,否則不能.

例2:

有四條語句:

SI:a=x+y

S2:b=z+l

S3:c=a-b

S4:w=c+l

R(sl)={x,y},W(Sl)={a}

R(s2)={z},W(S2)=

R(s3)={a,b},W(S3)={c}

R(s4)={c},W(S4)={w}

SI和S2能滿足Bernstein條件,所以能并發(fā)執(zhí)行;而對于S1和S3不能滿足

Bernstein條件,因為R(S3)nW(Sl)={a},所以不能并發(fā)執(zhí)行.同理,S2和

S3,S3和S4也不能并發(fā)執(zhí)行.

前趨圖為:

S1

0

S3-S4

0

S2

v前趨圖

前趨圖是一個有向無循環(huán)圖,圖中每個結(jié)點可表示一個語句廠?個程序段或一個

進程,結(jié)點間的有向邊表示結(jié)點之間的前趨關(guān)系.

兒個概念:1直接前趨;2直接后繼;3初始結(jié)點;4終止結(jié)點

v進程的定義和特征

v進程的定義

進程的概念是60年代初期,首先在MIT的Multics系統(tǒng)中引入的,進程的定義有

很多種.其中一種為進程是可并發(fā)執(zhí)行的程序在?個數(shù)據(jù)集合上的運行過程.

v進程的特征

進程具有五個基本特征,而程序則沒有.具體為:

①動態(tài)性.進程的實質(zhì)是程序的一次執(zhí)行過程,因此動態(tài)性是進程的最基本特

征.它還表現(xiàn)為有生命周期的,即由創(chuàng)建而產(chǎn)生,有調(diào)度而執(zhí)行,由撤消而消亡.而

程序只是一組有序指令的集合,是靜態(tài)的.

②并發(fā)性.指多個進程能在一段時間內(nèi)同時運行,并發(fā)性是進程的重要特性.引入

進程的目的也正是為了使其程序能和其它進程的程序并發(fā)執(zhí)行.

③獨立性.指進程是一個能獨立運行,獨立分配資源和獨立調(diào)度的基本單位,凡未

建立進程的程序,都不能作為一個獨立的單位參加運行.

④異步性.指進程按各自獨立的,不可預(yù)知的速度向前推進,即按異步的方式運

行.

(結(jié)構(gòu)特征.從結(jié)構(gòu)上看,進程是由程序段,數(shù)據(jù)段及進程控制塊(PCB)三部分組

成,這也是進程的靜態(tài)描述.PCB是操作系統(tǒng)中最重要的數(shù)據(jù)結(jié)構(gòu),它存放了操

作系統(tǒng)所需的,用于描述進程情況和控制進程運行所需的全部信息,是進程存在

的唯一標(biāo)志.

v作業(yè)和進程的關(guān)系

①作業(yè)是用戶向計算機提交任務(wù)的任務(wù)實體.在用戶向計算機提交作業(yè)之后,系

統(tǒng)將它放入外存中的作業(yè)等待隊列中等待執(zhí)行;而進程則是完成用戶任務(wù)的執(zhí)行

實體,是向系統(tǒng)申請分配資源的基本單位.

②?個作業(yè)可由多個進程組成,且必須至少由一個進程組成,反之不然.

③作業(yè)的概念主要用在批處理系統(tǒng)中,而進程的概念則用在幾乎所有的多道系

統(tǒng)中.

V進程的基本狀態(tài)及其轉(zhuǎn)換

由進程運行的間斷性,決定了進程至少具有下述三種狀態(tài):

①就緒狀態(tài).當(dāng)進程已分配到除CPU以外的所有必要資源后,只耍能再獲得處理

機,便能立即執(zhí)行所處的狀態(tài).?個系統(tǒng)中,可以有多個進程同時處于就緒狀態(tài),通

常將它們排成一個隊列,稱為就緒隊列.

②執(zhí)行狀態(tài).指進程已獲得處理機,其程序正在執(zhí)行.在單處理機系統(tǒng)中,只能有

一個進程處于執(zhí)行狀態(tài).

③等待(阻塞)狀態(tài).進程因等待某事件而暫停執(zhí)行時的所處的狀態(tài).通常將處于

等待狀態(tài)的進程排成一個隊列,稱為等待隊列.

進程狀態(tài)的轉(zhuǎn)換及原因

①就緒f執(zhí)行:調(diào)度;

②執(zhí)行f等待:等待某個事件發(fā)生而睡眠;

③等待f就緒:因等待的時間發(fā)生而喚醒;

④執(zhí)行f就緒:時間片用完.

v新狀態(tài)和終止?fàn)顟B(tài)

新(New)狀態(tài):是個進程剛剛建立,但還未將它送入就緒隊列時的狀態(tài)).

終止(Terminated)狀態(tài):當(dāng)一個進程已經(jīng)正常結(jié)束或異常結(jié)束,OS已將它從就

緒隊列中移出,但尚未將它撤消時的狀態(tài).

新~就緒狀態(tài):當(dāng)就緒進程能夠接納新進程時,OS就把處于新狀態(tài)的進程移入就

緒隊列.

執(zhí)行一終止?fàn)顟B(tài):當(dāng)一個進程已經(jīng)完成或發(fā)生某事件(地址越界等)而異常終止時,

進程將由執(zhí)行轉(zhuǎn)為終止?fàn)顟B(tài).

3.2進程的實現(xiàn)

v進程的結(jié)構(gòu)描述

進程由三部分組成,即PCB,有關(guān)程序段和該程序段對其進行操作的數(shù)據(jù)結(jié)構(gòu)集.

各部分的作用:

①進程控制塊:用于描述進程情況及控制進程運行所需的全部信息.

②程序段:是進程中能被進程調(diào)度程序在CPU上執(zhí)行的程序代碼段.

③數(shù)據(jù)段:一個進程的數(shù)據(jù)段,可以是進程對應(yīng)的程序加工處理的原始數(shù)據(jù),也

可以是程序執(zhí)行后產(chǎn)生的中間或最終數(shù)據(jù).

v進程控制塊

進程控制塊PCB:是OS中最重要的數(shù)據(jù)結(jié)構(gòu),用于描述進程情況及控制進程運

行所需的全部信息.系統(tǒng)根據(jù)PCB感知進程的存在和通過PCB中包含的各項變

量的變化,掌握進程所處的狀態(tài)以達到控制進程活動的目的,是進程存在的唯-

標(biāo)志.其基本內(nèi)容是:有關(guān)進程的描述信息;控制信息;資源管理信息;CPU現(xiàn)場保

護結(jié)構(gòu).

PCB是有一定的生命期的.在創(chuàng)建一個進程時,應(yīng)先創(chuàng)建PCB;然后才能根據(jù)PCB

的信息對進程管理和控制;進程結(jié)束時,回收PCB,進程也隨之消亡.在個系統(tǒng)

中,系統(tǒng)進程加上用戶進程,進程數(shù)可達數(shù)十百個,為了有效的管理,應(yīng)將它們組織

起來.常用的組織方式有:鏈接方式;索引方式.

3.3進程控制

v進程控制機構(gòu)

進程控制主要任務(wù):對進程生命期控制及實現(xiàn)進程狀態(tài)的轉(zhuǎn)換,是由操作系統(tǒng)內(nèi)

核中相應(yīng)程序?qū)崿F(xiàn)的.

處理機的執(zhí)行狀態(tài):系統(tǒng)態(tài),用戶態(tài).系統(tǒng)態(tài)(核心態(tài)或管態(tài)),具有較高的特權(quán),能

執(zhí)行?切硬件指令,訪問所有寄存器和內(nèi)存儲器.用戶態(tài)(目態(tài)),具有較低特權(quán)的

執(zhí)行狀態(tài),只能執(zhí)行規(guī)定的指令,訪問指定的寄存器和內(nèi)存儲器.

操作系統(tǒng)內(nèi)核:os的內(nèi)核通常運行在系統(tǒng)態(tài),是計算機硬件擴充的第層軟件,

主要是一些與硬件密切相關(guān)的模塊,常駐內(nèi)存.內(nèi)核的功能:1支撐功能;中斷處理,

時鐘管理,原語操作.2資源管理功能:進程管理,存儲器管理,設(shè)備管理.

原語:是OS系統(tǒng)內(nèi)核中由若干條指令構(gòu)成,用于完成特定功能的一個過程.

與一般過程的區(qū)別:它們是"原子操作".原子操作:一個操作中的所有動作,要么全

做,要么全不做.即是一個不可分割的操作,是不可中斷的.

v進程控制原語

是對進程生命期控制和進程狀態(tài)轉(zhuǎn)換的原語,目的是達到多進程高效率并發(fā)執(zhí)行

和協(xié)調(diào),實現(xiàn)資源共享.主要有:創(chuàng)建原語;撤消原語;阻塞原語;喚醒原語.

v進程創(chuàng)建原語

創(chuàng)建方式:由系統(tǒng)程序模塊統(tǒng)創(chuàng)建;由父進程創(chuàng)建.

進程圖:用于描述進程家族關(guān)系的有向樹.(了解父進程,子進程,祖父進程,祖先等

概念)

引起創(chuàng)建進程的典型事件:1用戶登錄;2作業(yè)調(diào)度;3提供服務(wù);4應(yīng)用請求;

進程創(chuàng)建的步驟:

1申請空白PCB;

2為新進程分配資源;

3初始化PCB;

4將新進程插入就緒隊列;

5將新進程插入進程家族或進程鏈.

v進程撤消原語

引起進程撤消的事件:1正常結(jié)束;2異常結(jié)束;(指在進程運行期間,由于出現(xiàn)某

些錯誤和故障迫使進程終止,如越界錯誤,1/0故障等)3外界干預(yù);(指進程應(yīng)外

界的請求而終止運行,這些干預(yù)有:操作員或0S干預(yù);父進程請求;父進程終止)

進程撤消過程:

1根據(jù)被撤消進程的標(biāo)識符,從PCB集合中檢索出該進程的PCB,讀出其狀態(tài);

2若為執(zhí)行狀態(tài),應(yīng)立即終止其執(zhí)行,并在其撤消后應(yīng)重新調(diào)度,選擇一新進程,把

處理機分配給它;

3若該進程有子孫進程,還應(yīng)將其所有的子孫進程預(yù)以撤消,以防成為不可控;

4將該進程全部資源,歸還父進程或系統(tǒng);

5釋放撤消進程的PCB結(jié)構(gòu)本身.

v進程阻塞和喚醒原語

引起進程阻塞和喚醒的事件:1請求系統(tǒng)服務(wù);2啟動某種操作;3新數(shù)據(jù)尚未到

達;4無新工作可做;

Block原語和Wakeup原語是一對作用剛好相反的原語.?般來說,如果某進程

調(diào)用了阻塞原語,則必須在與之合作的另一進程或相關(guān)進程中,調(diào)用喚醒原語;否

則被阻塞進程將會因不能被喚醒而長久處于阻塞狀態(tài),從而再無機會運行.

進程阻塞過程:(這是進程自身的一種主動行為)

1因進程處于執(zhí)行狀態(tài),故應(yīng)先中斷處理機和保存該進程的CPU現(xiàn)場;

2將進程的狀態(tài)有"執(zhí)行"改為"阻塞";

3將阻塞進程插入到阻塞(等待)隊列;(若系統(tǒng)中設(shè)置了因不同事件而阻塞的多個

阻塞隊列,則應(yīng)將進程插到具有相同事件的阻塞隊列)

4轉(zhuǎn)進程調(diào)度;(防止處理機空轉(zhuǎn),而出現(xiàn)資源浪費)

進程喚醒過程:

1從阻塞(等待)隊列中摘下需被喚醒的進程;

2將其PCB的現(xiàn)行狀態(tài),由阻塞改為就緒;

3并將該進程插入到就緒隊列;

4轉(zhuǎn)進程調(diào)度或返回;

3.4進程的同步與互斥

v主要任務(wù)

進程的同步和互斥機制的主要任務(wù):控制并發(fā)執(zhí)行的諸進程之間能有效地共享和

相互協(xié)作,同時使并發(fā)執(zhí)行的程序仍具有可再現(xiàn)性.

v進程互斥

并發(fā)系統(tǒng)中諸進程由于資源共享,進程合作,而產(chǎn)生進程之間的相互制約;又因共

享資源的方式不同,而導(dǎo)致兩種不同的制約關(guān)系:

間接相互制約.這種制約主要源于資源共享(進程互斥);

直接相互制約.這種制約主要源于進程合作(進程同步).

臨界資源:一次僅允許一個進程訪問的資源.

臨界區(qū):每個進程中訪問臨界資源的那段代碼.(不允許多個并發(fā)進程交叉執(zhí)行的

一段程序)

進程互斥:不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū).

同步機制的準(zhǔn)則:空閑讓進;忙則等待;讓權(quán)等待;有限等待;

例3:

(與時間有關(guān)的錯誤)二個進程P1,P2共享變量count(Rl,R2是處理機中的寄

存器):

P1:①Rl=count;

②R1=R1+1;

③count=Rl;

P2::①R2=count;

②R2=R2+1;

③count=R2;

結(jié)果應(yīng)該count增加了2,正確.

但若執(zhí)行順序按P1①,P2①,P1②,P1③,P2②尸2③,雖然P1,P2各自對count

進行了加1操作,但最后結(jié)果count僅增加了1.

v進程同步

定義:指多個合作進程為了完成同一個任務(wù),它們在執(zhí)行速度上必須相互協(xié)調(diào),即

一個進程的執(zhí)行依賴于另一個進程的消息,當(dāng)沒有消息時要等待,直到消息到達

被喚醒.

合作進程指具有同步關(guān)系的一組并發(fā)進程,合作進程間互相發(fā)送的信號稱為消息

或事件.

進程同步和互斥間的關(guān)系

同步互斥相似處:進程的互斥實際上是進程同步的一種特殊情況;進程的互斥和

同步統(tǒng)稱為進程同步.

差別:進程互斥是進程間共享資源的使用權(quán),這種競爭沒有固定的必然聯(lián)系,哪個

進程競爭到使用權(quán)就歸那個進程使用,直到不需要使用時在歸還;而進程同步則

涉及共享資源的并發(fā)進程間有種必然的聯(lián)系,當(dāng)進程必須同步時,即使無進程

在使用共享資源時,那么尚未得到同步消息的進程也不能去使用這個資源.

V利用信號量機制解決問題

信號量機制:由Diskstra提出的--種解決進程的同步與互斥的工具.

建立一個信號量必須經(jīng)過說明所代表的意義,賦初值以及建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu)以

便指向那些等待使用該臨界區(qū)的進程.

信號量的值只能通過P,V原語操作來改變.

記錄型的信號量機制:是一個記錄型的數(shù)據(jù)結(jié)構(gòu),包含兩個數(shù)據(jù)項,-是記數(shù)值域,

另一是等待該信號量的進程隊列首指針域.描述如下:

typedefstructsemaphore

{

intvalue;

PCB*p;

)

vP(s)和V(s)操作原語

voidv(s)

structsemaphores;

{

s.value=s.value+l;

if(s.value<=0)wakeup(s.p);

)

voidP(s)

structsemaphores;

{

s.value=s.value-1;

if(s.valueO數(shù)值時,表示某類可用資源的數(shù)量.而當(dāng)s.value<0數(shù)值時,表示該

類資源已分配完.若有進程請求該類資源,則被阻塞,其絕對值等于等待該類資源

的進程數(shù).

每次的P(s)操作,意味著進程請求分配該類資源的一個單位資源.相反,執(zhí)行一次

V(s)操作意味著進程釋放相應(yīng)資源的一個單位資源.當(dāng)值小于等于。時,表明有

進程被阻塞,需要喚醒.

V用信號量解題的關(guān)鍵

]信號量的設(shè)置

2套信號量賦初值(常用的互斥和同步信號量值的大小)

3PN操作安排的位置(其中尸的順序不能顛倒,V的順序任意)

v用信號量機制解決前趨圖問題

方法:若圖中存在結(jié)點S1指向結(jié)點S2的有向邊,表示進程P1中的程序段S1應(yīng)

該先執(zhí)行,而進程P2中的程序段S2后執(zhí)行.設(shè)置?個信號量S,初值為0,將V(s)

放在S1后面,而在S2前面先執(zhí)行P(s).

進程P1的語句序列為:Sl;V(s)

進程P2的語句序列為:P(s);S2

例4:(利用信號量機制解決前趨圖問題)

具有8個結(jié)點的前趨圖.例子中的前趨圖中共有有向邊10條,可設(shè)10個信號量,

初值均為0;有8個結(jié)點,可設(shè)計成8個并發(fā)進程,具體描述如下:

structsemaphorea/b/c,d,ezf,g,h,I,j=0,0/0/0,0z0,0/0,0,0

cobegin

{al;V(a);V(b);V(c);}

{P(a);S2;V(d);}

{P(b);S3;V(e);V(f);)

{P(c);S4;V(g);}

{P(d);P(e);S5;V(h);)

{P(f);P(g);S6;V(i)}

(P(h);P(i);S7;V(j);}

{P(j);S8;}

coend

v利用互斥信號量實現(xiàn)二個進程互斥

structsemaphoremutex=l

cobeginvoidprocessA(void)

{

while(TRUE){

P(mutex);

criticalsectionA;

V(mutex);

Remaindersection;}

)

voidprocessA(void)

{

while(TRUE){

P(mutex);

criticalsectionA;

V(mutex);

Remaindersection;}

)

coend

v利用信號量實現(xiàn)二個進程同步問題

(計算進程和打印進程)

structsemaphoresc,sp=l

numberx,y,buffer;

cobeginvoidCP(void)

{

while(TRUE){

computernextnumbeintox;

P(sc);

Buffer=x;

V(sp);)

)

voidpp(void)

{

while(TRUE){

P(sp);

y=buffer;

V(sc);

Printynumber;}

)

coend

v經(jīng)典的進程同步問題

例5:生產(chǎn)者一消費者問題

(?個最著名的進程同步問題)

問題描述:一組生產(chǎn)者向一組消費者提供消息,它們共享一個有界緩沖池,生產(chǎn)者

存入消息,消費者從中取得消息.

structsemaphoresi,s2,empty,full=l,l,n,0;

messagebuffer[n];

intin,out=0,0;

cobegin

voidproduceri(void)(i=l/2,,k)

{messagex;

while(TRUE){

produceanewmessageintox;

P(empty);

P(sl);

buffer[in]=x;

in=(in+l)modn;

V(sl);

V(full);)

}

voidconsumerj(void)(j=l,2,/m)

{messagey;

while(TRUE){

P(full);

P(s2);

y=buffer[in];

out=(out+l)modn;

V(s2);

V(empty);

consumemessagey;}

}

coend

例6:讀者一寫者問題

問題描述:多個進程共享?個文件,其中只讀文件的稱為讀者,其余只寫文件的稱

為寫者.讀者可以同時讀,但寫者只能獨立地寫.(即是互斥的,一個進程在寫的時

候,其它進程即不能讀,也不能寫)

structsemaphoremutex,wrt=l,l;

intreadcount=0;

cobegin

voidreaderi(void)(i=l,2,...,k)

{

while(TRUE){

P(mutex);

if(readcount=0)thenP(wrt);

readcount:=readcount+l;

V(mutex);

performreadoperation;

P(mutex);

Readcount:=readcount-l;

if(readcount=0)thenV(wrt);

V(mutex);)

}

voidwriterj(void)(j=l,2,...,m)

{

while(TRUE){

P(wrt);

performwriteoperation;

V(wrt);)

}

coend

例7:圖書館閱覽室問題

問題描述:假定閱覽室最多可同時容納100個人閱讀,讀者進入時,必須在閱覽室

門口的一個登記表上登記,內(nèi)容包括姓名,座號等,離開時要撤掉登記內(nèi)容.用P,V

操作描述讀者進程的同步算法.

(解題分析:讀者有任意多個,但進入閱覽室閱讀最多為100人,為此可設(shè)一個信

號量s,代表空座位的數(shù)目;另登記表為臨界資源,需設(shè)一個用于互斥的信號量

mutex,防止2個及以上的讀者進程同時對此表訪問.對于每個讀者的動作包括

進入,閱讀,離開.)

structsemaphores,mutex=100,l;

cobegin

voidreaderi(void)(i=l,2,...,k)

{

while(TRUE){

P(s);

P(mutex);

查登記表,置某座位為占用;

V(mutex);

reading;

P(mutex);

查登記表,置某座位為空;

V(mutex);

V(s);}

)

coend

例8:吃水果問題

問題描述:桌上有一只盤子,每次只能放一個水果,爸爸專向盤中放蘋果,媽媽專向

盤中放桔子,兒子專等吃盤里的桔子,女兒專等吃盤里的蘋果.只要盤子空,則爸爸

或媽媽可向盤中放水果,僅當(dāng)盤中有自己需要的水果時,兒子或女兒可從中取出,

請給出四人之間的同步關(guān)系,并用PV操作實現(xiàn)四人正確活動的程序.

解:四人之間的關(guān)系:1爸爸,媽媽要互斥使用盤子,所以兩者之間是互斥關(guān)系;2

爸爸放的蘋果,女兒吃,所以兩者是同步關(guān)系;3媽媽放的桔子,兒子吃,所以兩者

也是同步關(guān)系.

structsemaphores,sp,so=l,0,0;

cobegin

voidfather(void)

{

while(TRUE){

haveanapple;

P(s);

putanapple;

V(sp);)

)

voidmother(void)

{

while(TRUE){

haveanorange;

P(s);

putanorange;

V(so);)

}

voidson(void)

{

while(TRUE){

P(sp);

getanorange;

V(s);

eatanorange;}

)

voiddaught(void)

{

while(TRUE){

P(sp);

getanapple;

V(s);

eatanapple;}

)

coend

例9:司機一售票員問題

問題描述:設(shè)公共汽車上,司機和售票員的活動分別是:

司機:售票員:

啟動車輛上下乘客

正常行車關(guān)車門

到站停車售票

開車門

上下乘客

在汽車不斷到站,停車,行駛過程中,這兩個活動的同步關(guān)系

解法一:

structsemaphoresl,s2=0,0;

cobegin

voiddriver(void)

{

while(TRUE){

P(s2);

啟動車輛;

正常行車;

到站停車;

V(sl);)

)

voidconductor(void)

{

while(TRUE){

上,下乘客;關(guān)車門;

V(s2);

售票;

P(sl);

開車門;上,下乘客;}

)

coend

解法二:

structsemaphoresl,s2=l,0;

cobegin

voiddriver(void)

(

while(TRUE){

P(s2);

啟動車輛;

正常行車;

到站停車;

V(sl);}

)

voidconductor(void)

<

while(TRUE){

P(sl);

開車門;

上,下乘客;

關(guān)車門;

V(s2);售票;}

)

coend

3.6進程通信(communication)

v進程通信:指進程間的信息交換.

v低級通信(進程的同步和互斥)

信號量機制作為同步工具是卓有成效的,但作為通訊工具則不夠理想,主要表現(xiàn)

在:1效率低.如生產(chǎn)者每次只能向緩沖區(qū)中投放一個消息;2通訊對用戶不透明.

v高級通信:是用戶直接利用操作系統(tǒng)所提供的一組通訊原語,實現(xiàn)高效地傳送

大量數(shù)據(jù)的一種通訊方式.

V高級通訊機制類型

1共享存儲器系統(tǒng)(Shared-MemorySystem)

2消息傳遞系統(tǒng)(MessagepassingSystem)

3管道(pipe)通彳言系統(tǒng)

n共享存儲器系統(tǒng):相互通訊的進程通過共享數(shù)據(jù)結(jié)構(gòu)和存儲區(qū)進行通訊,因而

可進一步分為:1基于共享數(shù)據(jù)結(jié)構(gòu)的通訊方式;(低效,只適于傳遞少量數(shù)據(jù));2

基于共享存儲區(qū)的通訊方式.為了傳送大量數(shù)據(jù),在存儲區(qū)中劃出一塊共享存儲

區(qū),諸進程可通過對共享存儲區(qū)進行讀或?qū)憯?shù)據(jù)實現(xiàn)通訊.

n消息傳遞系統(tǒng):在消息傳遞系統(tǒng)中,進程間的數(shù)據(jù)交換是以消息(message),

在計算機網(wǎng)絡(luò)中又稱報文)為單位.程序員直接利用系統(tǒng)提供的一組通訊命令(原

語)來實現(xiàn)通訊.

特點:由于系統(tǒng)中隱藏了通訊的實現(xiàn)細(xì)節(jié),大大簡化了通訊程序編制的復(fù)雜性.

因其實現(xiàn)方法的不同,又可分為:1直接通信方式(消息緩沖);2間接通信方式

(信箱).

直接通信方式:發(fā)送進程直接將消息發(fā)送給接收進程,并將它掛在接收進程的消

息緩沖隊列上.接收進程從消息緩沖隊列中取得消息.故稱為消息緩沖機制.

間接通信方式:發(fā)送進程將消息發(fā)送到某個中間實體(?般稱為信箱)中,接收進

程從中取得消息,所以稱為信箱通訊方式,相應(yīng)地系統(tǒng)稱為電子郵件系統(tǒng).信箱可

由OS創(chuàng)建,也可由用戶進程創(chuàng)建,創(chuàng)建者是信箱的擁有者,據(jù)此可把信箱分為:私

用信箱,公用信箱,共享信箱.

n1道笳信城統(tǒng):UNIX系統(tǒng)中,開創(chuàng)的一種借助文件和文件系統(tǒng)形成的一種

通信方式.所謂管道是指用于連接一個讀進程和一個寫進程,以實現(xiàn)它們之間通

信的共享方式,又稱pipe文件.

向管道(共享文件)提供輸入的發(fā)送進程(即寫進程),以字符流形式將大量的數(shù)據(jù)

送入管道;而接收管道輸出的接收進程(即讀進程),可從管道接收數(shù)據(jù),由于發(fā)送

和接收都是利用管道進行通信的,故稱為管道通信.

為了協(xié)調(diào)雙方的通信,管道通信機制必須提供以下三方面的協(xié)調(diào)能力:①互斥.

一個進程正在對pipe進行讀/寫操作時,另一進程必須等待.②同步.當(dāng)寫(輸入)

進程把一定數(shù)量的數(shù)據(jù)寫入pipe后,便去睡眠等待,直到讀(輸出)進程取走數(shù)據(jù)

將其喚醒;當(dāng)讀進程讀一空pipe,也應(yīng)睡眠等待,直至寫進程將數(shù)據(jù)寫入管道,才

將其喚醒.③對方是否存在.只有確定對方已存在時,才能進行管道通信,否則會

造成因?qū)Ψ讲淮嬖诙鵁o限期等待.

3.7線程(Thread)的概念

v引入的線程目的

提高系統(tǒng)的執(zhí)行效率,減少處理機空轉(zhuǎn)時間和調(diào)度切換(保護現(xiàn)場信息)的時間,

便于系統(tǒng)管理.(減少程序并發(fā)執(zhí)行時所付出的時空開銷,使OS具有更好的并發(fā)

性.)

分析說明:進程的兩個基本屬性.1,進程是一個可擁有資源的獨立單位;2,進程又

是?個可獨立調(diào)度和分配的基本單位.合起來,進程便成為一個能獨立運行的基

本單位,從而構(gòu)成了程序并發(fā)執(zhí)行的基礎(chǔ),當(dāng)然為此系統(tǒng)還需進行創(chuàng)建進程,撤消

進程,進程切換等??系列的操作.簡言之,由于進程是?個資源的擁有者,在執(zhí)行這

些操作時會付出較大的時空開銷.因此在系統(tǒng)中所設(shè)的進程數(shù)目不宜過多,切換

不宜過于頻繁,這就限制了系統(tǒng)的并發(fā)程度.因而想到將進程的兩個屬性分開,由

OS分開處理,即對作為調(diào)度和分配的基本單位,使之輕裝運行;而對擁有資源的

基本單位,又不頻繁地對之進行切換,這樣就出現(xiàn)了線程的概念.

v定義

線程是進程中的?個實體,是被系統(tǒng)獨立調(diào)度和分配的基本單位,故乂稱為輕權(quán)

(輕型)進程(LightWeightProcess),它由線程控制表,存儲線程上下文的用戶

棧以及核心棧組成.{傳統(tǒng)的進程稱為重型進程(HeavyWeightProcess).}

v線程與進程的主要區(qū)別

1,進程是資源管理的基本單位,它擁有自己的地址空間和各種資源;線程只是處

理機調(diào)度的基本單位,它只和其他線程一起共享進程資源,它自己沒有任何資源.

2,以進程為單位進行處理機切換和調(diào)度時,由于涉及到資源轉(zhuǎn)移以及現(xiàn)場保護等

問題,將導(dǎo)致處理機切換時間變長,資源利用率降低.以線程為單位進行進行處理

機切換和調(diào)度時,由于不發(fā)生資源變化,特別是地址空間的變化,處理機切換時間

較短,從而處理機效率較高.

3,對M戶來說,多線程系統(tǒng)比無線程系統(tǒng)可減少用戶的等待時間,提高系統(tǒng)的響

應(yīng)速度.

4,線程和進程?樣,都有自己的狀態(tài),也有相應(yīng)的同步機制,不過由于線程沒有單

獨的數(shù)據(jù)和程序空間,因此線程不能像進程的數(shù)據(jù)與程序那樣,交換到外存存儲

空間,從而線程沒有掛起狀態(tài).

5,進程的調(diào)度,同步等大多由OS內(nèi)核完成,而線程的控制既可以由OS內(nèi)核進行,

也可以由用戶控制.

v線程的適用范圍

使用線程的最大好處是在有多個任務(wù)需要處理時,減少處理機的切換時間,同時

線程的創(chuàng)建和結(jié)束所需要的系統(tǒng)開銷比進程要小得多,因此最適合于使用線程的

系統(tǒng)是多處理機系統(tǒng).(在多處理機系統(tǒng)中,同一用戶程序可以根據(jù)不同的功能劃

分為不同的線程,放在不同的處理機上執(zhí)行.)如果用戶程序可以按功能劃分為不

同的小段時,單處理機也可因使用線程而簡化程序的結(jié)構(gòu)和提高執(zhí)行的效率.但

在那些很少做進程調(diào)度和切換的實時系統(tǒng),個人數(shù)字助理系統(tǒng),一般不設(shè)置.

V兒種典型的應(yīng)用

1,服務(wù)器中的文件管理和進程通信控制;2,前后臺處理;3,異步處理;4,數(shù)據(jù)的批

處理;5,網(wǎng)絡(luò)系統(tǒng)中信息發(fā)送和接受;6,其他相關(guān)的處理.

v線程的分類

可分為用戶級線程,核心級線程以及用戶/核心混合型線程等.

用戶級線程userlevelthreads:其管理過程全部由用戶程序完成,CPU調(diào)度算

法和各線程的優(yōu)先級都由用戶設(shè)置,與OS內(nèi)核無關(guān).

核心級線程Kernellevelthreads:*OS內(nèi)核進行管理,其調(diào)度算法及線程的優(yōu)

先級的控制權(quán)在OS內(nèi)核.

混合型線程:其控制權(quán)在用戶和OS內(nèi)核之間.

練習(xí)題:

1.有人說,一個進程是由偽處理機執(zhí)行的一個程序,這話對嗎為什么

2.試比較作業(yè)和進程的區(qū)別

3.比較進程和程序的區(qū)別:

4.在操作系統(tǒng)中為什么要引進進程這個概念它會產(chǎn)生什么影響

5.以進程為單位進行交換時,每次是否需耍將整個進程換出,為什么

6.設(shè)某計算機系統(tǒng)有一臺輸入機,?臺打印機.現(xiàn)有兩道程序同時投入運行,且程

序A先開始運行,程序B后運行.程序A的運行軌跡為:計算50ms,打印信息

100ms,再計算50ms,打印信息100ms,結(jié)束.程序B的運行軌跡為:計算50ms,

輸入數(shù)據(jù)80ms,再計算100ms,結(jié)束.試說明:

⑴兩道程序運行時,CPU有無空閑若有,在那段時間內(nèi)等待為什么會空閑等待

⑵程序A,B運行時有無等待現(xiàn)象若有,在什么時候會發(fā)生等待現(xiàn)象

7.程序在并發(fā)執(zhí)行具有哪些特征

8.進程的五大特征是什么

9.進程的基本狀態(tài)是什么以及它們是如何轉(zhuǎn)換

10.進程同步機制的基本原則有哪些

11.什么是進程通信進程的高級通信方式有哪三種

12.某小型超級市場,N■容納50個人同時購物.入口處備有籃子,每個購物者可拿

一只籃子入內(nèi)購物.出口處結(jié)帳,并歸還籃子(出,入口禁止多人同時通過).試用

P|,V操作寫出購物者的同步算法.

參考答案:

1答:對.因為偽處理機的概念只有在執(zhí)行時才存在,它表示多個進程在單處理機

上并發(fā)執(zhí)行的?個調(diào)度單位.因此,盡管進程是動態(tài)的概念,是程序的執(zhí)行過程,但

是在多個進程并發(fā)執(zhí)行時,仍然只有一個進程占據(jù)處理機執(zhí)行,而其他并發(fā)進程

則處于就緒或等待狀態(tài),這些并發(fā)進程就相當(dāng)于由偽處理機執(zhí)行的程序.

2答:一個進程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位.

作業(yè)是用戶需要計算機完成某項任務(wù),而要求計算機所做工作的集合.個作業(yè)

的完成要經(jīng)過提交,收容,執(zhí)行和完成四個階段,而進程是已提交完畢的程序所執(zhí)

行過程的描述,是資源分配的基本單位,區(qū)別如下:

①作業(yè)是用戶向計算機提交任務(wù)的任務(wù)實體.在用戶向計算機提交作業(yè)之后,系

統(tǒng)將它放入外存中的作業(yè)等待隊列中等待執(zhí)行;而進程則是完成用戶任務(wù)的執(zhí)行

實體,是向系統(tǒng)申請分配資源的基本單位.

②?個作業(yè)可由多個進程組成,且必須至少由?個進程組成,反之不然.

③作業(yè)的概念主要用在批處理系統(tǒng)中,而進程的概念則用在幾乎所有的多道系

統(tǒng)中.

3.答:1進程是一個動態(tài)的概念,進程的實質(zhì)是程序的一次執(zhí)行過程,動態(tài)性是進

程的基本特征,同時進程是有一定的生命期的;而程序只是組有序指令的集合,

本身并無運動的含義,是靜態(tài)的.2并發(fā)性,并發(fā)性是進程的重要特征,引入進程的

目的正是為了使其程序和其它程序并發(fā)執(zhí)行;而程序(沒有建立進程)是不能并發(fā)

執(zhí)行的.3獨立性,是指進程一個能獨立運行,獨立分配資源和獨立調(diào)度的基本單

位;凡未建立進程的程序,都不能作為一個獨立的單位參加運行.4不同的進程可

以包含同一個程序,同一個程序在執(zhí)行中也可以產(chǎn)生多個進程.

4.答:目的是為了實現(xiàn)多個程序的并發(fā)執(zhí)行.建立進程的好處是系統(tǒng)資源得以充

分利用,并提高系統(tǒng)的吞吐量,但為創(chuàng)建進程得付出一定代價,主要是增加了時間

和空間的開銷.

5.答.并非如此.因為:1)從結(jié)構(gòu)上看,可把進程看作是程序段,數(shù)據(jù)段和PCB所

組成,其中PCB通常常住內(nèi)存而不被換出;2)程序段或數(shù)據(jù)段可能正被若干進

程所共享,故也不能換出.

6.解:⑴兩道程序運行期間,CPU存在空閑等待時間.空閑等待的時間段為程序A

開始運行后100ms至150ms之間.在此期間,程序A正在打印信息,而程序B

正在輸入數(shù)據(jù).

⑵程序A啟動運行后無等待現(xiàn)象,而在程序B啟動運行后存在等待現(xiàn)象.程序B

的等待時間段為程序A開始運行后180ms至200ms之間(或程序B開始運行

后130ms至150ms之間).

7.答:間斷性,失去了封閉性及不可再現(xiàn)性.

8.答:進程具有五個基本特

溫馨提示

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

評論

0/150

提交評論