進程與進程管理PPT課件_第1頁
進程與進程管理PPT課件_第2頁
進程與進程管理PPT課件_第3頁
進程與進程管理PPT課件_第4頁
進程與進程管理PPT課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、互斥與同步 資源共享 在操作系統(tǒng)中,當多個并發(fā)進程使用同一個資在操作系統(tǒng)中,當多個并發(fā)進程使用同一個資源。而這個資源又不能同時使用,進程間的這種相源。而這個資源又不能同時使用,進程間的這種相互制約關(guān)系稱為互制約關(guān)系稱為互斥互斥 合作合作 并發(fā)進程在一些關(guān)鍵點上可能需要互相等待與互并發(fā)進程在一些關(guān)鍵點上可能需要互相等待與互通消息,通消息, 這種關(guān)系稱為這種關(guān)系稱為進程進程同步同步 第1頁/共29頁例1:兩個進程A、B共享一臺打印機 例2:兩個進程共享一個變量x 設(shè):x代表某航班機座號,p1和p2兩個售票進程,售票 工作是對變量x加1。這兩個進程在一個處理機C上并發(fā)執(zhí)行 r1 := x;r1:=

2、r1+1; x := r1 ;第2頁/共29頁P1與P2并發(fā)執(zhí)行,兩種可能的執(zhí)行次序:A情形(希望這樣) p1: r1 := x;r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ;設(shè)x的初值為10,兩種情況下的執(zhí)行結(jié)果: 情況A: x = 10+2 情況B: x = 10+1 B情形 p1: r1 := x; r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ;與時間有關(guān)的錯誤:不同的時間執(zhí)行結(jié)果不同互斥第3頁/共29頁臨界區(qū)是進程中對臨界資源使用的程序段,稱為相對于該臨界資源的臨界區(qū)

3、。臨界資源一次僅允許一個進程使用的資源稱為臨界資源。 硬件:如輸入機、打印機、磁帶機等 軟件:如公用變量、數(shù)據(jù)、表格、隊列等 x := x+1; csa 進程P1進程P2 x := x+1; csb 只要p1和p2不同時進入各自的臨界區(qū),就可以互斥使用同一臨界資源第4頁/共29頁例題 在下面的敘述中,正確的是( )。A.臨界資源是非共享資源 B.臨界資源是任意共享資源C.臨界資源是互斥共享資源 D.臨界資源是同時共享資源 對進程間互斥地使用臨界資源,進程可以( )A.互斥地進入臨界區(qū) B.互斥地進入各自的臨界區(qū)C.互斥地進入同一臨界區(qū) D.互斥地進入各自的同類資源的臨界區(qū)第5頁/共29頁互斥使

4、用資源辦法 鎖 信號量第6頁/共29頁用變量w代表某種資源的狀態(tài)(0表示可用,1表示不可用),w稱為“鎖” 。 鎖第7頁/共29頁42上鎖原語算法 lock 輸入:鎖變量w 輸出:無 test: if (w為1) goto test; else w=1; *上鎖* 開鎖原語算法 unlock 輸入:鎖變量w 輸出:無 w=0;*開鎖* 第8頁/共29頁50 x代表某航班機座號,pa和pb兩個售票進程,售票工作是對變量x加1。 設(shè):mutex為鎖p ( ) p ( ) lock(mutex); lock(mutex); x:=x+1 ; x:=x+1 ; unlock(mutex); unloc

5、k(mutex); 第9頁/共29頁 程序 task1 main( ) p1( ) p2( ) int w=0; * 互斥鎖 * cobegin lock(w); lock(w); p1( ); csa ; csb ; p2( ); unlock(w); unlock(w); coend 代表并發(fā)執(zhí)行上鎖開鎖臨界區(qū)臨界區(qū)第10頁/共29頁46上鎖原語進入臨界區(qū)csa 進程 pa開鎖原語上鎖原語進入臨界區(qū)csb 進程 pb開鎖原語一個臨界資源可以對應多個臨界區(qū)。一個臨界資源可以對應多個臨界區(qū)。互斥地使用臨界資源是通過互斥地進入臨界區(qū)實現(xiàn)的。互斥地使用臨界資源是通過互斥地進入臨界區(qū)實現(xiàn)的。對不?進

6、程進程A、B共享變量共享變量x,需要互斥執(zhí)行;進程,需要互斥執(zhí)行;進程B、C共享變量共享變量y,B、C也需要互斥執(zhí)行,因此,進程也需要互斥執(zhí)行,因此,進程A、C必須互斥執(zhí)行必須互斥執(zhí)行。第11頁/共29頁 1W 進入臨界區(qū)csa 0W進程AW=1?= 0 1W 進入臨界區(qū)csb 0W進程BW=1 ?= 0進程得不到鎖,應該由運行狀態(tài)轉(zhuǎn)為等待狀態(tài)第12頁/共29頁進程進入臨界區(qū)的準則 空閑讓進 忙則等待 有限等待 讓權(quán)等待第13頁/共29頁43信號燈的整型變量s。 變量值 0 時,表示綠燈,代表有資源可用; 變量值 0當一進程因在記當一進程因在記錄型信號量錄型信號量S上執(zhí)上執(zhí)行行V(S)操作而導

7、致操作而導致喚醒另一進程后,喚醒另一進程后,S的值為(的值為( )。)。 A.0 B.0 C.0 D.0第16頁/共29頁main( ) int mutex=1; * 互斥信號燈 * cobegin pa( ); pb( ); coend pa( ) pb( ) p(mutex); p(mutex); csa ; csb ; v(mutex); v(mutex); 兩個并發(fā)進程,互斥信號燈的值僅取1、0和1三個值。 mutex=1 表示沒有進程進入臨界區(qū); mutex=0 表示有一個進程進入臨界區(qū); mutex=1 表示一個進程進入臨界區(qū), 另一個進程等待進入。 第17頁/共29頁x代表某航班

8、機座號,pa和pb兩個售票進程,售票工作是對變量x加1。 設(shè):mutex為互斥信號燈,初值為1。p ( ) p ( ) p(mutex); p(mutex); x:=x+1 ; x:=x+1 ; v(mutex); v(mutex); 第18頁/共29頁同步 生產(chǎn)者消費者問題 合作進程第19頁/共29頁54 計算進程 cp和打印進程 iop公用一個單緩沖,為了完成正確的計算與打印,試用信號燈的p、v操作實現(xiàn)這兩個進程的同步。 iop cp兩個進程的任務 計算進程cp經(jīng)過計算,將計算結(jié)果送入buf; 打印進程iop把buf中的數(shù)據(jù)取出打印。 第20頁/共29頁57main( ) int sa=0

9、; *表示buf中有無信息 * int sb=1; *表示buf中有無空位置* cobegin cp( );iop( ); coendcp( ) iop( ) while(計算未完成) while(打印工作未完成) 得到一個計算結(jié)果; p(sa); p(sb); 從緩沖區(qū)中取一數(shù); 將數(shù)送到緩沖區(qū)中; v(sb); v(sa); 從打印機上輸出; iop cp第21頁/共29頁59 生產(chǎn)者與消費者的同步關(guān)系 生產(chǎn)者:當有界緩沖區(qū)中無空位置時,要等待; 向有界緩沖區(qū)放入物品后,要發(fā)消息。 消費者:當有界緩沖區(qū)中無物品時,要等待; 從有界緩沖區(qū)取出物品后,要發(fā)消息。c1p1 c2c3ckp2p3p

10、m第22頁/共29頁62程序描述main( ) int sa=0; *滿緩沖區(qū)的數(shù)目* int sb=n; *空緩沖區(qū)的數(shù)目* int mutex=1; *對有界緩沖區(qū)進行操作的互斥信號燈* cobegin p1 ( ); p2 ( ); pm ( ); c1 ( ); c2 ( ); ck ( ); coend第23頁/共29頁pi( ) cj( ) while(生產(chǎn)未完成) while(還要繼續(xù)消費) p(sa); 生產(chǎn)一個產(chǎn)品; p(mutex); p(sb); 從有界緩沖區(qū)中取產(chǎn)品; p(mutex); v(empty); 送一個產(chǎn)品到有界緩沖 v(sb); v(mutex); 消費一

11、個產(chǎn)品; v(sa); 生產(chǎn)者消費者問題是一個既有同步又有互斥的問題。生產(chǎn)者消費者問題是一個既有同步又有互斥的問題。第24頁/共29頁例子 若信號量S初值為2,當前值為1,則表示有 ( )個進程在與S相關(guān)的隊列上等待。A0 B1C2D3 一種資源的數(shù)量是8,這個資源對應的信號量的當前值是2,說明:( )A. 有2個進程等待這個資源B. 有2個資源可以使用C. 有6個進程等待這個資源D. 有6個資源可以使用信號量的物理意義是當信號量值大于零時表示信號量的物理意義是當信號量值大于零時表示 可分配資源的個數(shù)可分配資源的個數(shù) ;當信;當信號量值小于零時,其絕對值為號量值小于零時,其絕對值為 等待使用該資源的進程的個數(shù)等待使用該資源的進程的個數(shù) 。第25頁/共29頁51進程流圖 p3 s fp5p1p2p4p6p9p10p8 f sp5p6p7 s f第26頁/共29頁53pbpcpa f smain( ) int sb=0; *表示pb進程能否開始執(zhí)行* int sc=0; *

溫馨提示

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

評論

0/150

提交評論