版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城鎮(zhèn)土地使用權(quán)轉(zhuǎn)讓及配套設(shè)施建設(shè)合同協(xié)議3篇
- 二零二五年度小額貸款個人信用借款合同范本2篇
- 二零二五年度電子商務(wù)銷售結(jié)算合同3篇
- 二零二五年度建筑施工安全環(huán)保事故處理協(xié)議3篇
- 二零二五年度個人住宅買賣合同示范范本
- 酒店管理工作中的風(fēng)險管控
- 醫(yī)院行業(yè)美工的醫(yī)療廣告
- 培訓(xùn)行業(yè)課程安全操作指南
- 電子工程師的領(lǐng)域探索
- 二零二五年度農(nóng)產(chǎn)品直銷銷售合同范本
- 《帶一本書去讀研:研究生關(guān)鍵學(xué)術(shù)技能快速入門》筆記
- 知識圖譜智慧樹知到答案2024年浙江大學(xué)
- 2024年度-美團新騎手入門培訓(xùn)
- 高一數(shù)學(xué)寒假講義(新人教A專用)【復(fù)習(xí)】第05講 三角函數(shù)(學(xué)生卷)
- 農(nóng)村高中思想政治課時政教育研究的中期報告
- 醫(yī)院定崗定編方案文檔
- 4-熔化焊與熱切割作業(yè)基礎(chǔ)知識(一)
- 2023年200MW儲能電站儲能系統(tǒng)設(shè)計方案
- 個人安全與社會責(zé)任的基本知識概述
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
評論
0/150
提交評論