操作系統(tǒng)第二章 課件._第1頁
操作系統(tǒng)第二章 課件._第2頁
操作系統(tǒng)第二章 課件._第3頁
操作系統(tǒng)第二章 課件._第4頁
操作系統(tǒng)第二章 課件._第5頁
已閱讀5頁,還剩137頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 進程管理進程管理n進程的基本概念進程的基本概念n進程與程序的區(qū)別進程與程序的區(qū)別n進程控制進程控制n進程同步進程同步n進程通信進程通信n線程線程臨沂師范學(xué)院信息學(xué)院2.1進程的基本概念進程的基本概念n程序在并發(fā)環(huán)境中的執(zhí)行過程程序在并發(fā)環(huán)境中的執(zhí)行過程n資源分配和獨立運行的基本單位資源分配和獨立運行的基本單位臨沂師范學(xué)院信息學(xué)院程序的順序執(zhí)行程序的順序執(zhí)行n一個有四條語句的程序段:一個有四條語句的程序段:S1:a:=x+2;S2:b:=y+4;S3:c:=a+b;S4:d:=c+b;臨沂師范學(xué)院信息學(xué)院程序的順序執(zhí)行程序的順序執(zhí)行臨沂師范學(xué)院信息學(xué)院S1S2S3S4程序順序執(zhí)行的

2、特征程序順序執(zhí)行的特征n順序性順序性n封閉性封閉性n可再現(xiàn)性可再現(xiàn)性臨沂師范學(xué)院信息學(xué)院n順序性:順序性:處理機處理機的操作嚴(yán)格按照程序所規(guī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每一個操作必須在下一定的順序執(zhí)行,即每一個操作必須在下一操作之前結(jié)束。操作之前結(jié)束。n封閉性:程序在封閉環(huán)境下執(zhí)行,結(jié)果不封閉性:程序在封閉環(huán)境下執(zhí)行,結(jié)果不受外界因素影響。受外界因素影響。n可再現(xiàn)性:只要環(huán)境和初始條件相同,程可再現(xiàn)性:只要環(huán)境和初始條件相同,程序重復(fù)執(zhí)行時總得到相同結(jié)果。序重復(fù)執(zhí)行時總得到相同結(jié)果。臨沂師范學(xué)院信息學(xué)院程序并發(fā)執(zhí)行程序并發(fā)執(zhí)行n一個有四條語句的程序段:一個有四條語句的程序段:S1:a

3、:=x+2;S2:b:=y+4;S3:c:=a+b;S4:d:=c+b;臨沂師范學(xué)院信息學(xué)院程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行臨沂師范學(xué)院信息學(xué)院S1S2S3S4程序并發(fā)執(zhí)行的特征程序并發(fā)執(zhí)行的特征n間斷性間斷性 共享、合作、制約導(dǎo)致:共享、合作、制約導(dǎo)致: 執(zhí)行執(zhí)行-暫停暫停-執(zhí)行執(zhí)行n失去封閉性失去封閉性 資源狀態(tài)由多程序改變資源狀態(tài)由多程序改變n不可再現(xiàn)性不可再現(xiàn)性 相同環(huán)境和初始條件,重復(fù)執(zhí)相同環(huán)境和初始條件,重復(fù)執(zhí)行結(jié)果不同行結(jié)果不同臨沂師范學(xué)院信息學(xué)院程序程序A 程序程序BL1: L2: N:=N+1 PRINT (N);goto L1 N:=0; goto L2設(shè)共享變量設(shè)共享變量N初

4、值為初值為5,則會產(chǎn)生,則會產(chǎn)生3種執(zhí)行結(jié)果:種執(zhí)行結(jié)果:6,6,05,0,15,6,0臨沂師范學(xué)院信息學(xué)院進程的特征進程的特征n結(jié)構(gòu)特征結(jié)構(gòu)特征n動態(tài)性動態(tài)性n并發(fā)性并發(fā)性n獨立性獨立性n異步性異步性臨沂師范學(xué)院信息學(xué)院進程的結(jié)構(gòu)特征進程的結(jié)構(gòu)特征n進程結(jié)構(gòu)進程結(jié)構(gòu)臨沂師范學(xué)院信息學(xué)院PCB進程控制塊程序段數(shù)據(jù)段動態(tài)特征的集中反映描述要完成的功能操作對象及工作區(qū)進程的動態(tài)性進程的動態(tài)性n進程最基本的特征是動態(tài)性進程最基本的特征是動態(tài)性n進程的生命周期:進程由創(chuàng)建而產(chǎn)生,由進程的生命周期:進程由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤消而消亡的過程。調(diào)度而執(zhí)行,由撤消而消亡的過程。臨沂師范學(xué)院信息學(xué)院n

5、并發(fā)性:多個進程同在內(nèi)存中,且能在一并發(fā)性:多個進程同在內(nèi)存中,且能在一段時間內(nèi)同時運行。段時間內(nèi)同時運行。n獨立性:進程是一個能獨立運行、獨立分獨立性:進程是一個能獨立運行、獨立分配資源、獨立接受調(diào)度的基本單位。配資源、獨立接受調(diào)度的基本單位。n異步性:進程按各自獨立的、不可預(yù)知的異步性:進程按各自獨立的、不可預(yù)知的速度向前推進。速度向前推進。臨沂師范學(xué)院信息學(xué)院進程定義進程定義n進程是進程實體的運行過程,是系統(tǒng)進行進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的基本單位。資源分配和調(diào)度的基本單位。臨沂師范學(xué)院信息學(xué)院進程和程序的關(guān)系進程和程序的關(guān)系n進程是一個動態(tài)概念,程序是一個靜態(tài)概

6、進程是一個動態(tài)概念,程序是一個靜態(tài)概念念n進程具有并行特征,程序沒有進程具有并行特征,程序沒有n進程是競爭資源的基本單位進程是競爭資源的基本單位n一個程序?qū)?yīng)多個進程,一個進程為多個一個程序?qū)?yīng)多個進程,一個進程為多個程序服務(wù)程序服務(wù)臨沂師范學(xué)院信息學(xué)院進程的三種基本狀態(tài)進程的三種基本狀態(tài)n就緒狀態(tài)就緒狀態(tài)n執(zhí)行狀態(tài)執(zhí)行狀態(tài)n阻塞狀態(tài)阻塞狀態(tài)臨沂師范學(xué)院信息學(xué)院就緒態(tài)就緒態(tài)n進程已經(jīng)分配了除處理機以外的所有必要進程已經(jīng)分配了除處理機以外的所有必要資源,只要再獲得處理機就能夠執(zhí)行的狀資源,只要再獲得處理機就能夠執(zhí)行的狀態(tài)。態(tài)。n這樣的進程可能有多個,通常排成一個隊這樣的進程可能有多個,通常排成一

7、個隊列,稱就緒隊列。列,稱就緒隊列。臨沂師范學(xué)院信息學(xué)院執(zhí)行態(tài)執(zhí)行態(tài)n已經(jīng)獲得已經(jīng)獲得CPU,正在運行。,正在運行。n在單處理機系統(tǒng)只有一個進程處于執(zhí)行狀在單處理機系統(tǒng)只有一個進程處于執(zhí)行狀態(tài)。多處理機系統(tǒng)則有多個進程處于執(zhí)行態(tài)。多處理機系統(tǒng)則有多個進程處于執(zhí)行狀態(tài)。狀態(tài)。臨沂師范學(xué)院信息學(xué)院阻塞態(tài)阻塞態(tài)n正在執(zhí)行的進程由于發(fā)生某事件而暫時無正在執(zhí)行的進程由于發(fā)生某事件而暫時無法繼續(xù)執(zhí)行時,放棄處理機而進入的狀態(tài),法繼續(xù)執(zhí)行時,放棄處理機而進入的狀態(tài),又稱等待狀態(tài)。又稱等待狀態(tài)。n引起阻塞的事件:請求引起阻塞的事件:請求I/O,申請緩存。,申請緩存。臨沂師范學(xué)院信息學(xué)院進程的基本狀態(tài)轉(zhuǎn)換進程的

8、基本狀態(tài)轉(zhuǎn)換臨沂師范學(xué)院信息學(xué)院就緒堵塞執(zhí)行進程調(diào)度進程調(diào)度進程調(diào)度I/O完成I/O請求時間片完掛起狀態(tài)掛起狀態(tài)n引入原因:引入原因:(1)終端用戶請求終端用戶請求(2)父進程請求父進程請求(3)負荷調(diào)節(jié)需要負荷調(diào)節(jié)需要(4)操作系統(tǒng)的需要操作系統(tǒng)的需要臨沂師范學(xué)院信息學(xué)院掛起引起的狀態(tài)轉(zhuǎn)換掛起引起的狀態(tài)轉(zhuǎn)換靜止?fàn)顟B(tài)靜止?fàn)顟B(tài) 掛起狀態(tài)掛起狀態(tài) 非掛起狀態(tài)非掛起狀態(tài)臨沂師范學(xué)院信息學(xué)院活動狀態(tài)活動狀態(tài)有掛起狀態(tài)的進程狀態(tài)圖有掛起狀態(tài)的進程狀態(tài)圖臨沂師范學(xué)院信息學(xué)院執(zhí)行執(zhí)行活動就緒活動就緒靜止堵塞靜止堵塞活動堵塞活動堵塞靜止就緒靜止就緒掛起掛起激活激活調(diào)度調(diào)度掛起掛起I/OI/O請求請求激活激活掛

9、起掛起釋放釋放釋放釋放進程控制塊進程控制塊n進程結(jié)構(gòu)進程結(jié)構(gòu)臨沂師范學(xué)院信息學(xué)院PCB進程控制塊程序段數(shù)據(jù)段進程控制塊進程控制塊nPCB是是OS中最重要的記錄型結(jié)構(gòu)。中最重要的記錄型結(jié)構(gòu)。nOS用用PCB對并發(fā)進程進行管理和控制。對并發(fā)進程進行管理和控制。nPCB是進程存在的唯一標(biāo)志。是進程存在的唯一標(biāo)志。nPCB常駐內(nèi)存。常駐內(nèi)存。nOS專門開辟專門開辟PCB區(qū)將所有的區(qū)將所有的PCB組織成若組織成若干個鏈表或隊列。干個鏈表或隊列。臨沂師范學(xué)院信息學(xué)院PCB的結(jié)構(gòu):結(jié)構(gòu)體的結(jié)構(gòu):結(jié)構(gòu)體nFor example:定義一個學(xué)生的自然信息:定義一個學(xué)生的自然信息:臨沂師范學(xué)院信息學(xué)院姓名 性別班級

10、專業(yè)出生年 月 日結(jié)構(gòu)體結(jié)構(gòu)體(structure)定義一個結(jié)構(gòu):定義一個結(jié)構(gòu):struct Student char name20; char sex12; DATE birthday; char speciality20; char class10; ; typedef struct Student STUDENT;臨沂師范學(xué)院信息學(xué)院PCB中的信息中的信息(1)進程標(biāo)識符進程標(biāo)識符(2)處理機狀態(tài)處理機狀態(tài)(3)進程調(diào)度信息進程調(diào)度信息(4)進程控制信息進程控制信息臨沂師范學(xué)院信息學(xué)院PCB中的信息之一中的信息之一n進程標(biāo)識符進程標(biāo)識符(1)內(nèi)部標(biāo)識符內(nèi)部標(biāo)識符 進程唯一的數(shù)字編號,給進

11、程唯一的數(shù)字編號,給OS使用。使用。(2)外部標(biāo)識符外部標(biāo)識符 由字母、數(shù)字組成,給用戶使用。由字母、數(shù)字組成,給用戶使用。臨沂師范學(xué)院信息學(xué)院PCB中的信息之二中的信息之二n處理機狀態(tài)處理機狀態(tài)處理機中主要的寄存器:處理機中主要的寄存器:(1)通用寄存器通用寄存器 8-32個,暫存信息用個,暫存信息用(2)指令計數(shù)器指令計數(shù)器 要訪問的下一條指令地址要訪問的下一條指令地址(3)程序狀態(tài)字程序狀態(tài)字PSW 條件碼、執(zhí)行方式、中斷屏蔽條件碼、執(zhí)行方式、中斷屏蔽標(biāo)志標(biāo)志(4)用戶棧指針用戶棧指針 用戶進程擁有的系統(tǒng)棧,存放過程和用戶進程擁有的系統(tǒng)棧,存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址系統(tǒng)調(diào)用參數(shù)及調(diào)

12、用地址臨沂師范學(xué)院信息學(xué)院PCB中的信息之三中的信息之三n進程調(diào)度信息進程調(diào)度信息(1)進程狀態(tài))進程狀態(tài)(2)進程優(yōu)先級)進程優(yōu)先級(3)與調(diào)度算法有關(guān)信息)與調(diào)度算法有關(guān)信息(4)事件)事件 如:阻塞原因如:阻塞原因臨沂師范學(xué)院信息學(xué)院PCB中的信息之四中的信息之四n進程控制信息進程控制信息(1)程序和數(shù)據(jù)地址)程序和數(shù)據(jù)地址(2)進程同步和通信機制)進程同步和通信機制(3)資源清單:除)資源清單:除CPU之外的所需資源與已之外的所需資源與已經(jīng)分配資源清單經(jīng)分配資源清單(4)鏈接指針:本進程)鏈接指針:本進程PCB所在隊列的下一所在隊列的下一個地址。個地址。臨沂師范學(xué)院信息學(xué)院知道了知道了

13、PCB中的信息之后要思考中的信息之后要思考n為什么程序并發(fā)執(zhí)行有不可再現(xiàn)性的缺點?而進為什么程序并發(fā)執(zhí)行有不可再現(xiàn)性的缺點?而進程有可再現(xiàn)性?程有可再現(xiàn)性?程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,因而這些因而這些資源的狀態(tài)將由多個程序改變資源的狀態(tài)將由多個程序改變,致使程序的,致使程序的運行已失去了封閉性,某個程序的運行必然受到其他運行已失去了封閉性,某個程序的運行必然受到其他程序的影響。由于失去了封閉性,也將導(dǎo)致不再現(xiàn)性。程序的影響。由于失去了封閉性,也將導(dǎo)致不再現(xiàn)性。進程在并發(fā)執(zhí)行方式下,它的運行呈現(xiàn)進程在并發(fā)執(zhí)行方式下,它的運行呈現(xiàn)“走

14、走停停走走停停”的規(guī)律,當(dāng)它停下來時,要求有一個數(shù)據(jù)結(jié)構(gòu)的規(guī)律,當(dāng)它停下來時,要求有一個數(shù)據(jù)結(jié)構(gòu)PCB來來記錄進程的當(dāng)前狀態(tài)記錄進程的當(dāng)前狀態(tài)(及時保護它的運行現(xiàn)場,以保(及時保護它的運行現(xiàn)場,以保證在其恢復(fù)運行時可以證在其恢復(fù)運行時可以正確的正確的接著向下執(zhí)行)接著向下執(zhí)行)臨沂師范學(xué)院信息學(xué)院CPU Switch From Process to ProcessPCB的組織方式的組織方式(1)鏈接方式)鏈接方式把統(tǒng)一狀態(tài)的把統(tǒng)一狀態(tài)的PCB,用其中的鏈接字鏈接成,用其中的鏈接字鏈接成一個隊列。如:就緒隊列、阻塞隊列(根一個隊列。如:就緒隊列、阻塞隊列(根據(jù)不同阻塞原因)、空白隊列。據(jù)不同阻塞

15、原因)、空白隊列。(2)索引方式)索引方式建立就緒索引表、阻塞索引表等。把索引表建立就緒索引表、阻塞索引表等。把索引表在內(nèi)存的首地址放在內(nèi)存的專用單元中。在內(nèi)存的首地址放在內(nèi)存的專用單元中。臨沂師范學(xué)院信息學(xué)院鏈接方式鏈接方式臨沂師范學(xué)院信息學(xué)院空閑隊列指針阻塞隊列指針就緒隊列指針執(zhí)行指針PCB1 4PCB2 3PCB3 0PCB4 8PCB5PCB6 7PCB7 9PCB8 0PCB9 11索引方式索引方式臨沂師范學(xué)院信息學(xué)院執(zhí)行指針就緒表指針阻塞表指針PCB1PCB2PCB3PCB4PCB5PCB6PCB72.2進程控制進程控制n進程管理最基本功能是進程管理最基本功能是進程控制進程控制n進

16、程控制任務(wù):進程控制任務(wù):進程的創(chuàng)建、終止、進程狀態(tài)的轉(zhuǎn)變等進程的創(chuàng)建、終止、進程狀態(tài)的轉(zhuǎn)變等n進程控制一般由進程控制一般由OS內(nèi)核內(nèi)核來實現(xiàn)。來實現(xiàn)。臨沂師范學(xué)院信息學(xué)院進程圖進程圖臨沂師范學(xué)院信息學(xué)院ACBEFHGD進程的創(chuàng)建進程的創(chuàng)建n原語原語CREAT()按下述步驟創(chuàng)建一個新進程:()按下述步驟創(chuàng)建一個新進程:原語:是由若干條指令構(gòu)成,完成一個特定功能的一原語:是由若干條指令構(gòu)成,完成一個特定功能的一個過程。個過程。原語:原語是一種規(guī)模相當(dāng)小的程序,被定義在原語:原語是一種規(guī)模相當(dāng)小的程序,被定義在OS的的底層,它的運行過程不可分隔。底層,它的運行過程不可分隔。(1)申請空白)申請空白

17、PCB(2)為新進程分配資源)為新進程分配資源(3)初始化進程控制塊)初始化進程控制塊(4)將新進程插入就緒隊列)將新進程插入就緒隊列臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院引起進程終止的事件引起進程終止的事件n正常結(jié)束正常結(jié)束n異常結(jié)束異常結(jié)束越界錯誤、保護錯、非法指令越界錯誤、保護錯、非法指令n外界干預(yù)外界干預(yù)操作員或操作員或OS干預(yù)、被父進程終止、父進程終干預(yù)、被父進程終止、父進程終止止臨沂師范學(xué)院信息學(xué)院進程的終止過程進程的終止過程n從從PCB集合中檢索出該進程的集合中檢索出該進程的PCB,從中,從中讀出該進程的狀態(tài)。讀出該進程的狀態(tài)。n若處于執(zhí)行狀態(tài),終止該進程的執(zhí)行,并若處于執(zhí)行狀

18、態(tài),終止該進程的執(zhí)行,并置調(diào)度標(biāo)志為真,重新調(diào)度。置調(diào)度標(biāo)志為真,重新調(diào)度。n若有子孫進程,將所有子孫進程終止。若有子孫進程,將所有子孫進程終止。n將進程全部資源歸還其父進程或系統(tǒng)。將進程全部資源歸還其父進程或系統(tǒng)。n將其將其PCB從所在隊列(或鏈表)中移出從所在隊列(或鏈表)中移出臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院進程阻塞過程進程阻塞過程n由阻塞原語由阻塞原語BLOCK完成完成臨沂師范學(xué)院信息學(xué)院入口保存當(dāng)前進程的CPU現(xiàn)場置該進程狀態(tài)進入等待隊列轉(zhuǎn)進程調(diào)度臨沂師范學(xué)院信息學(xué)院進程喚醒過程進程喚醒過程n由喚醒原語由喚醒原語WAKEUP來完成來完成臨沂師范學(xué)院信息學(xué)院入口從等待隊列中摘下

19、被喚醒進程置該進程為就緒態(tài)進入就緒隊列轉(zhuǎn)進程調(diào)度或返回臨沂師范學(xué)院信息學(xué)院注意注意nBLOCK和和WAKEUP是一對作用相反的原是一對作用相反的原語。語。n如果在某進程中調(diào)用了如果在某進程中調(diào)用了阻塞原語阻塞原語,則必須,則必須在與之相合作的另一進程中或其他相關(guān)的在與之相合作的另一進程中或其他相關(guān)的進程中,安排進程中,安排喚醒原語喚醒原語,以能喚醒阻塞進,以能喚醒阻塞進程;否則,被阻塞進程將會因不能被喚醒程;否則,被阻塞進程將會因不能被喚醒而長久地處于阻塞狀態(tài),從而再無機會繼而長久地處于阻塞狀態(tài),從而再無機會繼續(xù)運行。續(xù)運行。臨沂師范學(xué)院信息學(xué)院進程的掛起與激活進程的掛起與激活n掛起原語:掛起

20、原語:SUSPEND()n激活原話:激活原話:ACTIVE()臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院2.3進程同步進程同步n進程的兩種制約關(guān)系進程的兩種制約關(guān)系間接制約:進程間由于共享某種系統(tǒng)資源,而間接制約:進程間由于共享某種系統(tǒng)資源,而形成的相互制約。形成的相互制約。直接制約:進程間由于合作而形成的相互制約直接制約:進程間由于合作而形成的相互制約關(guān)系。關(guān)系。臨沂師范學(xué)院信息學(xué)院進程A進程B進程A進程B資源資源進程的兩大關(guān)系進程的兩大關(guān)系n互斥互斥n同步同步臨沂師范學(xué)院信息學(xué)院互斥(間接作用):互斥(間接作用):mutual exclusionn由于各進程要求共享資源,而有些資源需由于各進

21、程要求共享資源,而有些資源需要互斥使用,因此各進程間競爭使用這些要互斥使用,因此各進程間競爭使用這些資源,進程的這種關(guān)系為進程的互斥。資源,進程的這種關(guān)系為進程的互斥。臨沂師范學(xué)院信息學(xué)院臨界資源:臨界資源:critical resourcen系統(tǒng)中某些資源一次只允許一個進程使用,系統(tǒng)中某些資源一次只允許一個進程使用,稱這樣的資源為臨界資源或互斥資源。稱這樣的資源為臨界資源或互斥資源。臨沂師范學(xué)院信息學(xué)院同步(直接作用)同步(直接作用):synchronismn指系統(tǒng)中多個進程中發(fā)生的事件存在某種指系統(tǒng)中多個進程中發(fā)生的事件存在某種時序關(guān)系,需要相互合作,共同完成一項時序關(guān)系,需要相互合作,共

22、同完成一項任務(wù)。任務(wù)。具體說,一個進程運行到某一點時具體說,一個進程運行到某一點時要求另一伙伴進程為它提供消息,在未獲要求另一伙伴進程為它提供消息,在未獲得消息之前,該進程處于等待狀態(tài)。得消息之前,該進程處于等待狀態(tài)。臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院與時間有關(guān)的錯誤與時間有關(guān)的錯誤n例例1:民航售票:民航售票票數(shù):票數(shù):XA進程進程: B進程:進程:if x0 thenif x0 thenx:=x-1 x:=x-1臨沂師范學(xué)院信息學(xué)院與時間有關(guān)的錯誤與時間有關(guān)的錯誤n例例2:交通流量統(tǒng)計:交通流量統(tǒng)計車輛數(shù):車輛數(shù):SL1 中斷處理程序:中斷處理程序:s:=0;s:=s+1Delay(

23、600);Write(s);Goto L1臨沂師范學(xué)院信息學(xué)院臨界區(qū)(臨界段)臨界區(qū)(臨界段)n在每個進程中訪問臨界資源的那段程序在每個進程中訪問臨界資源的那段程序總結(jié)總結(jié):只要進程當(dāng)中有訪問臨界資源的語句,:只要進程當(dāng)中有訪問臨界資源的語句,那么這些語句就是臨界區(qū)那么這些語句就是臨界區(qū)n進程必須互斥進入臨界區(qū)進程必須互斥進入臨界區(qū)臨沂師范學(xué)院信息學(xué)院訪問臨界區(qū)的循環(huán)進程描述訪問臨界區(qū)的循環(huán)進程描述repeatuntil false;臨沂師范學(xué)院信息學(xué)院進入?yún)^(qū)臨界區(qū)退出區(qū)剩余區(qū)檢查臨界資源是否能訪問將臨界區(qū)標(biāo)志設(shè)為未訪問同步機制遵循的原則同步機制遵循的原則n空閑讓進空閑讓進n忙則等待忙則等待n

24、有限等待有限等待n讓權(quán)等待讓權(quán)等待如何在如何在OS內(nèi)實現(xiàn)這些同步原則?內(nèi)實現(xiàn)這些同步原則?臨沂師范學(xué)院信息學(xué)院信號量機制信號量機制n信號量(信號量(Semaphore:旗語):旗語)n是一種數(shù)據(jù)結(jié)構(gòu)是一種數(shù)據(jù)結(jié)構(gòu)n信號量的值與相應(yīng)資源的使用情況有關(guān)信號量的值與相應(yīng)資源的使用情況有關(guān)n信號量的值僅由信號量的值僅由P、V操作改變操作改變是荷蘭文字中是荷蘭文字中“使用資源使用資源” 和和“歸還資源歸還資源”的的首字母首字母臨沂師范學(xué)院信息學(xué)院整型信號量整型信號量n整型數(shù)整型數(shù)P操作(操作(wait)原語)原語V操作(操作(signal)原語)原語臨沂師范學(xué)院信息學(xué)院SnP(s): while s=0

25、 do no-op s:=s-1;nV(s): s:=s+1;臨沂師范學(xué)院信息學(xué)院整型信號量機制執(zhí)行過程整型信號量機制執(zhí)行過程臨沂師范學(xué)院信息學(xué)院臨界區(qū)臨界區(qū)P1P(S)V(S)整型信號量的特點整型信號量的特點nwait(S)和和signal(s)是原子操作是原子操作n只要信號量只要信號量S=0,就不斷測試,不滿足,就不斷測試,不滿足“同步機制規(guī)則同步機制規(guī)則”中的讓權(quán)等待中的讓權(quán)等待臨沂師范學(xué)院信息學(xué)院記錄型信號量記錄型信號量n記錄型結(jié)構(gòu),包含兩個數(shù)據(jù)項:記錄型結(jié)構(gòu),包含兩個數(shù)據(jù)項:type semaphore=record value:integer; L:list of process;

26、 end臨沂師范學(xué)院信息學(xué)院Value S L ns.value為資源信號量其初值:某類資源的數(shù)目為資源信號量其初值:某類資源的數(shù)目nwait操作:申請一個單位資源操作:申請一個單位資源Procedure wait(S)Var S:semaphore;beginS.value:=S.value-1;If S.value0 then block(s,L)end臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院臨界區(qū)臨界區(qū)P4wait(S)臨界區(qū)臨界區(qū)P3wait(S)臨界區(qū)臨界區(qū)P2wait(S)臨界區(qū)臨界區(qū)P1wait(S)假設(shè):系統(tǒng)中有三臺打印機,那么假設(shè):系統(tǒng)中有三臺打印機,那么S.value=3,

27、有,有四個并發(fā)的打印進程四個并發(fā)的打印進程.s.value:=3-1If s.value0Then block(s,L)end.s.value:=2-1If s.value0Then block(s,L)end.s.value:=1-1If s.value0Then block(s,L)end.s.value:=0-1If s.value0Then block(s,L)endnSignal操作:釋放一個單位資源操作:釋放一個單位資源Procedure signal(S)Var S:semaphore;beginS.value:=S.value+1;If S.value=0:表示系統(tǒng)中可用的資源

28、數(shù)量表示系統(tǒng)中可用的資源數(shù)量nS.value=1 and sn=1 then for i:=1 to n do si:=si-1; endfor else當(dāng)發(fā)現(xiàn)第一個當(dāng)發(fā)現(xiàn)第一個si1就把該進程放入等待隊列并將其就把該進程放入等待隊列并將其程序計數(shù)器置于程序計數(shù)器置于Swait操作的開始位置操作的開始位置 endif臨沂師范學(xué)院信息學(xué)院Ssignal(s1,s2,sn) for i:=1 to n do si:=si+1;將所有等待將所有等待Si的進程由等待隊列取出放入到的進程由等待隊列取出放入到就緒隊列就緒隊列endfor;臨沂師范學(xué)院信息學(xué)院一般信號量集一般信號量集n一般信號量集是指同時需

29、要多種資源、每一般信號量集是指同時需要多種資源、每種占用的數(shù)目不同、且可分配的資源還存種占用的數(shù)目不同、且可分配的資源還存在一個臨界值時的信號量處理。在一個臨界值時的信號量處理。n一般信號量集的基本思路就是在一般信號量集的基本思路就是在AND型信型信號量集的基礎(chǔ)上進行擴充,在一次原語操號量集的基礎(chǔ)上進行擴充,在一次原語操作中完成所有的資源申請。作中完成所有的資源申請。臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院用信號量實現(xiàn)互斥用信號量實現(xiàn)互斥Var mutex:semaphore:=1Begin Parbegin Process1:begin repeat wait(mutex

30、); critical section signal(mutex); remainder section until false; end;臨沂師范學(xué)院信息學(xué)院Process2:begin repeat wait(mutex); critical section signal(mutex); remainder section until false; end;parend臨沂師范學(xué)院信息學(xué)院n在實現(xiàn)互斥時應(yīng)注意在實現(xiàn)互斥時應(yīng)注意nwait(mutex)和和signal(mutex)必須成對地必須成對地出現(xiàn)出現(xiàn)n缺缺wait(mutex)將會引起系統(tǒng)混亂,不能保將會引起系統(tǒng)混亂,不能保證對臨界

31、資源的互斥訪問證對臨界資源的互斥訪問n缺缺signal(mutex)將會使該臨界資源永久不將會使該臨界資源永久不被釋放被釋放臨沂師范學(xué)院信息學(xué)院圖例:初始狀態(tài)圖例:初始狀態(tài)臨沂師范學(xué)院信息學(xué)院初始狀態(tài)初始狀態(tài)mutex:=1沒有并發(fā)進程使用臨界區(qū)沒有并發(fā)進程使用臨界區(qū)臨界資源臨界資源互斥的進程互斥的進程一個進程申請臨界資源一個進程申請臨界資源臨沂師范學(xué)院信息學(xué)院mutex:=1沒有并發(fā)進程使用臨界區(qū)沒有并發(fā)進程使用臨界區(qū)申請成功,進程使用臨界資源申請成功,進程使用臨界資源臨沂師范學(xué)院信息學(xué)院mutex:=0另一個進程也使用臨界區(qū)另一個進程也使用臨界區(qū)臨沂師范學(xué)院信息學(xué)院mutex:=0申請失敗

32、申請失敗臨沂師范學(xué)院信息學(xué)院mutex:=阻塞隊列阻塞隊列-1釋放資源釋放資源臨沂師范學(xué)院信息學(xué)院mutex:=阻塞隊列阻塞隊列02.4經(jīng)典進程的同步問題經(jīng)典進程的同步問題n生產(chǎn)者消費者問題生產(chǎn)者消費者問題n哲學(xué)家進餐問題哲學(xué)家進餐問題n讀者寫者問題讀者寫者問題臨沂師范學(xué)院信息學(xué)院經(jīng)典的生產(chǎn)者消費者問題經(jīng)典的生產(chǎn)者消費者問題臨沂師范學(xué)院信息學(xué)院生產(chǎn)者生產(chǎn)者消費者消費者放產(chǎn)品放產(chǎn)品取產(chǎn)品取產(chǎn)品一次只可放一個產(chǎn)品一次只可放一個產(chǎn)品生產(chǎn)者消費者問題生產(chǎn)者消費者問題n同步問題:同步問題:P進程不能往進程不能往“滿滿”的緩沖區(qū)中放產(chǎn)品,設(shè)置的緩沖區(qū)中放產(chǎn)品,設(shè)置信號量為信號量為emptyC進程不能從進程

33、不能從“空空”的緩沖區(qū)中取產(chǎn)品,設(shè)置的緩沖區(qū)中取產(chǎn)品,設(shè)置信息號為信息號為full臨沂師范學(xué)院信息學(xué)院消費者:消費者:Repeat P(full); 從緩沖區(qū)取產(chǎn)品從緩沖區(qū)取產(chǎn)品; V(empty); 消費產(chǎn)品消費產(chǎn)品;Until false臨沂師范學(xué)院信息學(xué)院生產(chǎn)者:生產(chǎn)者:Repeat 生產(chǎn)一個產(chǎn)品生產(chǎn)一個產(chǎn)品; P(empty); 送產(chǎn)品到緩沖區(qū);送產(chǎn)品到緩沖區(qū); V(full);Until falseempty初值為初值為1,full初值為初值為0臨沂師范學(xué)院信息學(xué)院多個緩沖區(qū)的生產(chǎn)者和消費者多個緩沖區(qū)的生產(chǎn)者和消費者臨沂師范學(xué)院信息學(xué)院生產(chǎn)者:生產(chǎn)者:Repeat 生產(chǎn)一個產(chǎn)品生產(chǎn)一

34、個產(chǎn)品; P(empty); 往往Buffer(in)里面放產(chǎn)品里面放產(chǎn)品; in:=(in+1) mod n; V(full);Until false多個緩沖區(qū)的生產(chǎn)者和消費者多個緩沖區(qū)的生產(chǎn)者和消費者臨沂師范學(xué)院信息學(xué)院消費者:消費者:Repeat P(full); 從從buffer(out)里面取產(chǎn)品里面取產(chǎn)品; out:=(out+1) mod n; V(empty); 消費產(chǎn)品消費產(chǎn)品;Until false思考:要不要對緩沖池(臨界資源)進行互思考:要不要對緩沖池(臨界資源)進行互斥操作?斥操作?臨沂師范學(xué)院信息學(xué)院Producer:begin repeat生產(chǎn)產(chǎn)品生產(chǎn)產(chǎn)品;P(e

35、mpty); P(mutex); Buffer(in):=nextp; in:=(in+1) mod n; V(mutex); V(full); until false; end;臨沂師范學(xué)院信息學(xué)院Consumer:begin repeat P(full); P(mutex); nextc:=Buffer(out); out:=(out+1) mod n; P(mutex); P(empty); 消費產(chǎn)品消費產(chǎn)品; until false; end;臨沂師范學(xué)院信息學(xué)院注意注意n每個程序中的每個程序中的P操作順序不能顛倒。應(yīng)先執(zhí)操作順序不能顛倒。應(yīng)先執(zhí)行對資源信號量的行對資源信號量的P操作,

36、然后再執(zhí)行對互操作,然后再執(zhí)行對互斥信號量的斥信號量的P操作,否則可能引起進程死鎖。操作,否則可能引起進程死鎖。臨沂師范學(xué)院信息學(xué)院經(jīng)典的哲學(xué)家進餐問題經(jīng)典的哲學(xué)家進餐問題n有五個哲學(xué)家,他們的生活方式是交替地有五個哲學(xué)家,他們的生活方式是交替地進行思考和進餐。哲學(xué)家們共用一張圓桌,進行思考和進餐。哲學(xué)家們共用一張圓桌,分別坐在周圍的五張椅子上。在圓桌上有分別坐在周圍的五張椅子上。在圓桌上有五個碗和五支筷子,平時一個哲學(xué)家進行五個碗和五支筷子,平時一個哲學(xué)家進行思考,饑餓時便試圖取用其左、右最靠近思考,饑餓時便試圖取用其左、右最靠近他的筷子,只有在他拿到兩支筷子時才能他的筷子,只有在他拿到兩支

37、筷子時才能進餐。進餐完畢,放下筷子又繼續(xù)思考。進餐。進餐完畢,放下筷子又繼續(xù)思考。臨沂師范學(xué)院信息學(xué)院臨沂師范學(xué)院信息學(xué)院分析分析n筷子是臨界資源,在一段時間內(nèi)只允許一筷子是臨界資源,在一段時間內(nèi)只允許一個哲學(xué)家使用個哲學(xué)家使用n用一個信號量表示一支筷子,由這五個信用一個信號量表示一支筷子,由這五個信號量構(gòu)成信號量組號量構(gòu)成信號量組 Var chopstick:array04 of semaphoren所有信號量被初始化為所有信號量被初始化為1臨沂師范學(xué)院信息學(xué)院用記錄型信號量解決哲學(xué)家進餐問題用記錄型信號量解決哲學(xué)家進餐問題第第i個哲學(xué)家的活動可描述為個哲學(xué)家的活動可描述為Repeat wa

38、it(chopsticki); wait(chopstick(i+1)mod 5); eat signal(chopsticki); signal(chopstick(i+1)mod 5); think;Until false臨沂師范學(xué)院信息學(xué)院問題問題n假如五個哲學(xué)家同時饑餓而各自拿起左邊假如五個哲學(xué)家同時饑餓而各自拿起左邊的筷子,會使五個信號量均為的筷子,會使五個信號量均為0,當(dāng)他們再,當(dāng)他們再試圖拿起右邊筷子時,都將無限期地等待。試圖拿起右邊筷子時,都將無限期地等待。臨沂師范學(xué)院信息學(xué)院解決方法解決方法n至多四個人同時拿左的筷子,保證至少有至多四個人同時拿左的筷子,保證至少有一個人可以進

39、餐,最終釋放筷子使更多的一個人可以進餐,最終釋放筷子使更多的人進餐人進餐n僅當(dāng)哲學(xué)家的左右兩支筷子均可用時,才僅當(dāng)哲學(xué)家的左右兩支筷子均可用時,才允許他拿起筷子進餐允許他拿起筷子進餐n給所有哲學(xué)家編號,奇數(shù)號的哲學(xué)家先拿給所有哲學(xué)家編號,奇數(shù)號的哲學(xué)家先拿左邊的筷子,偶數(shù)號的哲學(xué)家則反之左邊的筷子,偶數(shù)號的哲學(xué)家則反之臨沂師范學(xué)院信息學(xué)院用用AND型信號量解決哲學(xué)家進餐問題型信號量解決哲學(xué)家進餐問題Var chopstick:Array04 of semaphore:=(1,1,1,1,1)臨沂師范學(xué)院信息學(xué)院第第i個哲學(xué)家的活動個哲學(xué)家的活動Repeat think; Swait(chops

40、tick(i+1)mod 5,chopsticki); eat Ssignal(chopstick(i+1) mod 5,chopsticki); think;Until false;臨沂師范學(xué)院信息學(xué)院讀者寫者問題讀者寫者問題n有兩組并發(fā)進程:有兩組并發(fā)進程:讀者和寫者,共享一組數(shù)據(jù)區(qū)讀者和寫者,共享一組數(shù)據(jù)區(qū)n要求:要求:允許多個讀者同時執(zhí)行讀操作允許多個讀者同時執(zhí)行讀操作不允許讀者、寫者同時操作不允許讀者、寫者同時操作不允許多個寫者同時操作不允許多個寫者同時操作臨沂師范學(xué)院信息學(xué)院n如果讀者來:如果讀者來:無讀者、寫者,新讀者可以讀無讀者、寫者,新讀者可以讀有寫者等,但有其它讀者正在讀,

41、則新讀者也有寫者等,但有其它讀者正在讀,則新讀者也可以讀可以讀有寫者寫,新讀者等有寫者寫,新讀者等n如果寫者來:如果寫者來:無讀者,新寫者可以寫無讀者,新寫者可以寫有讀者,新寫者等待有讀者,新寫者等待有其它寫者,新寫者等待有其它寫者,新寫者等待臨沂師范學(xué)院信息學(xué)院Var rmutex,wmutex:semaphore:=1,1; readcount:integer:=0; begin parbegin 讀者:讀者:begin repeat P(rmutex); if readcount=0 then P(wmutex); readcount:=readcount+1; V(rmutex); 執(zhí)

42、行讀操作執(zhí)行讀操作; P(rmutex); readcount:=readcount-1; if readcount=0 then V(wmutex); V(rmutex); until false; end臨沂師范學(xué)院信息學(xué)院寫者:寫者:begin repeatP(wmutex); 執(zhí)行寫操作執(zhí)行寫操作;V(wmutex); until false; end臨沂師范學(xué)院信息學(xué)院2.6進程通信進程通信n進程通信是指進程之間的信息交換進程通信是指進程之間的信息交換n交換的信息量:交換的信息量:一個狀態(tài)或數(shù)值一個狀態(tài)或數(shù)值上千個字節(jié)上千個字節(jié)臨沂師范學(xué)院信息學(xué)院進程通信分類進程通信分類1.低級通信

43、:進程的互斥和同步低級通信:進程的互斥和同步2.高級通信:指用戶可直接利用高級通信:指用戶可直接利用OS提供的提供的一組一組通信命令通信命令,高效地傳送大量數(shù)據(jù)的一,高效地傳送大量數(shù)據(jù)的一種通信方式。對用戶透明。種通信方式。對用戶透明。臨沂師范學(xué)院信息學(xué)院高級通信分類高級通信分類n共享存儲器系統(tǒng)共享存儲器系統(tǒng)n消息傳遞系統(tǒng)消息傳遞系統(tǒng)n管道通信管道通信臨沂師范學(xué)院信息學(xué)院共享存儲器系統(tǒng)共享存儲器系統(tǒng)1.共享數(shù)據(jù)結(jié)構(gòu)的通信方式,進程之間通過共享數(shù)據(jù)結(jié)構(gòu)的通信方式,進程之間通過某種數(shù)據(jù)結(jié)構(gòu),如緩沖池進行通信屬于低某種數(shù)據(jù)結(jié)構(gòu),如緩沖池進行通信屬于低級通信方式;級通信方式;2.共享存儲區(qū)通信方式,為

44、了傳送大量信息,共享存儲區(qū)通信方式,為了傳送大量信息,在存儲器中劃出一塊共享存儲區(qū),進程可在存儲器中劃出一塊共享存儲區(qū),進程可通過對共享存儲區(qū)進行讀或?qū)憗韺崿F(xiàn)通信,通過對共享存儲區(qū)進行讀或?qū)憗韺崿F(xiàn)通信,屬于高級通信方式。屬于高級通信方式。臨沂師范學(xué)院信息學(xué)院消息傳遞系統(tǒng)消息傳遞系統(tǒng)信息交換的單位是消息或報文,分成兩種:信息交換的單位是消息或報文,分成兩種:1.直接通信方式直接通信方式2.間接通信方式間接通信方式計算機網(wǎng)絡(luò)中將消息稱為計算機網(wǎng)絡(luò)中將消息稱為報文報文臨沂師范學(xué)院信息學(xué)院直接通信方式直接通信方式n發(fā)送進程直接把消息發(fā)送給目標(biāo)進程發(fā)送進程直接把消息發(fā)送給目標(biāo)進程n發(fā)送進程和接收進程都以

45、顯式方式分別提發(fā)送進程和接收進程都以顯式方式分別提供對方的標(biāo)識符供對方的標(biāo)識符n系統(tǒng)提供兩條通信原語系統(tǒng)提供兩條通信原語Send(Receiver,message); Receive(Sender,message);臨沂師范學(xué)院信息學(xué)院例如:例如:Send(P2,m1); Receive(P1,m1);臨沂師范學(xué)院信息學(xué)院解決生產(chǎn)者消費者問題解決生產(chǎn)者消費者問題repeat . produce an item in nextp; . Send(consumer,nextp);Until false;Repeat Receive(producer,nextp); . Consumer the i

46、tem in nextc;Until false;臨沂師范學(xué)院信息學(xué)院間接通信方式間接通信方式n進程之間的通信需要通過某種中間實體,進程之間的通信需要通過某種中間實體,該實體用來暫存發(fā)送進程發(fā)送給目標(biāo)進程該實體用來暫存發(fā)送進程發(fā)送給目標(biāo)進程的消息;接收進程則從該實體中取出對方的消息;接收進程則從該實體中取出對方發(fā)送給自己的消息。發(fā)送給自己的消息。n這種中間實體稱為信箱。這種中間實體稱為信箱。n消息在信箱中可以安全地保存,只允許核消息在信箱中可以安全地保存,只允許核準(zhǔn)的目標(biāo)用戶隨時讀取,故可實現(xiàn)非實時準(zhǔn)的目標(biāo)用戶隨時讀取,故可實現(xiàn)非實時通信。通信。臨沂師范學(xué)院信息學(xué)院信箱的創(chuàng)建和撤消信箱的創(chuàng)建和

47、撤消n進程用信箱創(chuàng)建原語來建立一個新信箱。進程用信箱創(chuàng)建原語來建立一個新信箱。創(chuàng)建者進程應(yīng)給出信箱名字、信箱屬性創(chuàng)建者進程應(yīng)給出信箱名字、信箱屬性(公用、私用或共享);對于共享信箱,(公用、私用或共享);對于共享信箱,還應(yīng)給出共享者的名字。還應(yīng)給出共享者的名字。n用信箱撤消原語來撤消用信箱撤消原語來撤消臨沂師范學(xué)院信息學(xué)院消息的發(fā)送與接收消息的發(fā)送與接收nSend(mailbox,message)將一個消息發(fā)送到指定信箱將一個消息發(fā)送到指定信箱nReceive(mailbox,message) 從指定信箱中接收一個消息從指定信箱中接收一個消息臨沂師范學(xué)院信息學(xué)院信箱分類信箱分類n私用信箱私用信

48、箱n公用信箱公用信箱n共享信箱共享信箱臨沂師范學(xué)院信息學(xué)院私用信箱私用信箱n用戶進程建立,作為該進程的一部分。用戶進程建立,作為該進程的一部分。n擁有者有權(quán)讀消息,其他用戶只能發(fā)送。擁有者有權(quán)讀消息,其他用戶只能發(fā)送。n采用單向通信鏈路。采用單向通信鏈路。n進程結(jié)束時信箱也消失。進程結(jié)束時信箱也消失。臨沂師范學(xué)院信息學(xué)院公用信箱公用信箱n它由它由OS創(chuàng)建創(chuàng)建n提供給系統(tǒng)中的所有核準(zhǔn)進程使用。提供給系統(tǒng)中的所有核準(zhǔn)進程使用。n進程既可發(fā)送也可取出進程既可發(fā)送也可取出n采用雙向通信鏈路的信箱來實現(xiàn)采用雙向通信鏈路的信箱來實現(xiàn)n系統(tǒng)運行期間始終存在系統(tǒng)運行期間始終存在臨沂師范學(xué)院信息學(xué)院共享信箱共享

49、信箱n由某進程創(chuàng)建,創(chuàng)建時提供共享進程(用由某進程創(chuàng)建,創(chuàng)建時提供共享進程(用戶)的名字戶)的名字n信箱的擁有者和共享者,都有權(quán)從信箱中信箱的擁有者和共享者,都有權(quán)從信箱中取走發(fā)送給自己的消息取走發(fā)送給自己的消息臨沂師范學(xué)院信息學(xué)院信箱通信時發(fā)送和接收進程的關(guān)系信箱通信時發(fā)送和接收進程的關(guān)系n一對一關(guān)系一對一關(guān)系。建立一條專用的通信鏈路。建立一條專用的通信鏈路。n多對一關(guān)系多對一關(guān)系。多個用戶進程與服務(wù)進程之間進行。多個用戶進程與服務(wù)進程之間進行交互,又稱客戶交互,又稱客戶/服務(wù)器交互。服務(wù)器交互。n一對多關(guān)系一對多關(guān)系。一個發(fā)送進程與多個接收進程進行。一個發(fā)送進程與多個接收進程進行交互,使發(fā)

50、送進程可用廣播形式,向接收者發(fā)送交互,使發(fā)送進程可用廣播形式,向接收者發(fā)送消息。消息。n多對多關(guān)系多對多關(guān)系。建立一個公用信箱,多個進程投遞。建立一個公用信箱,多個進程投遞并取走自己的消息。并取走自己的消息。臨沂師范學(xué)院信息學(xué)院管道通信管道通信n管道通信方式建立在文件系統(tǒng)的基礎(chǔ)上,管道通信方式建立在文件系統(tǒng)的基礎(chǔ)上,利用共享文件來連接兩個相互通信的進程,利用共享文件來連接兩個相互通信的進程,此共享文件稱為管道此共享文件稱為管道(Pipe)。n管道管道是指用于連接一個讀進程和一個寫進是指用于連接一個讀進程和一個寫進程,以實現(xiàn)它們之間通信的共享文件。程,以實現(xiàn)它們之間通信的共享文件。臨沂師范學(xué)院信

51、息學(xué)院臨沂師范學(xué)院信息學(xué)院寫進程寫進程管道管道讀進程讀進程管道通信必需的協(xié)調(diào)能力管道通信必需的協(xié)調(diào)能力1.互斥當(dāng)一個進程正在對管道進行讀互斥當(dāng)一個進程正在對管道進行讀/寫操作時,寫操作時,另一進程必須等待。另一進程必須等待。2.同步當(dāng)寫(輸入)進程把一定量的數(shù)據(jù)(如同步當(dāng)寫(輸入)進程把一定量的數(shù)據(jù)(如4K)寫入管道后,便去睡眠等待,直到讀(輸)寫入管道后,便去睡眠等待,直到讀(輸出)進程取走數(shù)據(jù)后再把它喚醒。當(dāng)讀進程發(fā)現(xiàn)出)進程取走數(shù)據(jù)后再把它喚醒。當(dāng)讀進程發(fā)現(xiàn)管道空時也應(yīng)睡眠等待,直至寫進程將消息寫入管道空時也應(yīng)睡眠等待,直至寫進程將消息寫入管道后,才將它喚醒。管道后,才將它喚醒。3.判別對方是否存在,只有確定了對方存在時方能判別對方是否存在,只有確定了對方存在時方能進行通信。進行通信。臨沂師范學(xué)院信息學(xué)院2.7線程線程n線程的引入線程的引入n線程與進程的對比線程與進程的對比臨沂師范學(xué)院信息學(xué)院線程的引入線程的引入n進程的兩個基本屬性進程的兩個基本屬性1.資源的擁有者資源的擁有者:給每個進程分配一虛擬地址空間,保存進程給每個進程分配一虛擬地址空間,保存進程映像,控制一些資源(文件、映像,控制一些資源(文件、I/O設(shè)備),有設(shè)備),有狀態(tài)、優(yōu)先級、調(diào)度狀態(tài)、優(yōu)先級、調(diào)度2.調(diào)度單位:調(diào)度單位:進程是一個執(zhí)行軌跡進程是一個執(zhí)行軌跡n以上兩個屬性構(gòu)成了進程并發(fā)執(zhí)行的基礎(chǔ)以上

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論