




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、互斥與同步 資源共享 在操作系統(tǒng)中,當(dāng)多個(gè)并發(fā)進(jìn)程使用同一個(gè)資在操作系統(tǒng)中,當(dāng)多個(gè)并發(fā)進(jìn)程使用同一個(gè)資源。而這個(gè)資源又不能同時(shí)使用,進(jìn)程間的這種相源。而這個(gè)資源又不能同時(shí)使用,進(jìn)程間的這種相互制約關(guān)系稱為互制約關(guān)系稱為互斥互斥 合作合作 并發(fā)進(jìn)程在一些關(guān)鍵點(diǎn)上可能需要互相等待與互并發(fā)進(jìn)程在一些關(guān)鍵點(diǎn)上可能需要互相等待與互通消息,通消息, 這種關(guān)系稱為這種關(guān)系稱為進(jìn)程進(jìn)程同步同步 第1頁/共29頁例1:兩個(gè)進(jìn)程A、B共享一臺(tái)打印機(jī) 例2:兩個(gè)進(jìn)程共享一個(gè)變量x 設(shè):x代表某航班機(jī)座號(hào),p1和p2兩個(gè)售票進(jìn)程,售票 工作是對(duì)變量x加1。這兩個(gè)進(jìn)程在一個(gè)處理機(jī)C上并發(fā)執(zhí)行 r1 := x;r1:=
2、r1+1; x := r1 ;第2頁/共29頁P(yáng)1與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 ;與時(shí)間有關(guān)的錯(cuò)誤:不同的時(shí)間執(zhí)行結(jié)果不同互斥第3頁/共29頁臨界區(qū)是進(jìn)程中對(duì)臨界資源使用的程序段,稱為相對(duì)于該臨界資源的臨界區(qū)
3、。臨界資源一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源。 硬件:如輸入機(jī)、打印機(jī)、磁帶機(jī)等 軟件:如公用變量、數(shù)據(jù)、表格、隊(duì)列等 x := x+1; csa 進(jìn)程P1進(jìn)程P2 x := x+1; csb 只要p1和p2不同時(shí)進(jìn)入各自的臨界區(qū),就可以互斥使用同一臨界資源第4頁/共29頁例題 在下面的敘述中,正確的是( )。A.臨界資源是非共享資源 B.臨界資源是任意共享資源C.臨界資源是互斥共享資源 D.臨界資源是同時(shí)共享資源 對(duì)進(jìn)程間互斥地使用臨界資源,進(jìn)程可以( )A.互斥地進(jìn)入臨界區(qū) B.互斥地進(jìn)入各自的臨界區(qū)C.互斥地進(jìn)入同一臨界區(qū) D.互斥地進(jìn)入各自的同類資源的臨界區(qū)第5頁/共29頁互斥使
4、用資源辦法 鎖 信號(hào)量第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代表某航班機(jī)座號(hào),pa和pb兩個(gè)售票進(jìn)程,售票工作是對(duì)變量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上鎖原語進(jìn)入臨界區(qū)csa 進(jìn)程 pa開鎖原語上鎖原語進(jìn)入臨界區(qū)csb 進(jìn)程 pb開鎖原語一個(gè)臨界資源可以對(duì)應(yīng)多個(gè)臨界區(qū)。一個(gè)臨界資源可以對(duì)應(yīng)多個(gè)臨界區(qū)?;コ獾厥褂门R界資源是通過互斥地進(jìn)入臨界區(qū)實(shí)現(xiàn)的?;コ獾厥褂门R界資源是通過互斥地進(jìn)入臨界區(qū)實(shí)現(xiàn)的。對(duì)不?進(jìn)
6、程進(jìn)程A、B共享變量共享變量x,需要互斥執(zhí)行;進(jìn)程,需要互斥執(zhí)行;進(jìn)程B、C共享變量共享變量y,B、C也需要互斥執(zhí)行,因此,進(jìn)程也需要互斥執(zhí)行,因此,進(jìn)程A、C必須互斥執(zhí)行必須互斥執(zhí)行。第11頁/共29頁 1W 進(jìn)入臨界區(qū)csa 0W進(jìn)程AW=1?= 0 1W 進(jìn)入臨界區(qū)csb 0W進(jìn)程BW=1 ?= 0進(jìn)程得不到鎖,應(yīng)該由運(yùn)行狀態(tài)轉(zhuǎn)為等待狀態(tài)第12頁/共29頁進(jìn)程進(jìn)入臨界區(qū)的準(zhǔn)則 空閑讓進(jìn) 忙則等待 有限等待 讓權(quán)等待第13頁/共29頁43信號(hào)燈的整型變量s。 變量值 0 時(shí),表示綠燈,代表有資源可用; 變量值 0當(dāng)一進(jìn)程因在記當(dāng)一進(jìn)程因在記錄型信號(hào)量錄型信號(hào)量S上執(zhí)上執(zhí)行行V(S)操作而導(dǎo)
7、致操作而導(dǎo)致喚醒另一進(jìn)程后,喚醒另一進(jìn)程后,S的值為(的值為( )。)。 A.0 B.0 C.0 D.0第16頁/共29頁main( ) int mutex=1; * 互斥信號(hào)燈 * cobegin pa( ); pb( ); coend pa( ) pb( ) p(mutex); p(mutex); csa ; csb ; v(mutex); v(mutex); 兩個(gè)并發(fā)進(jìn)程,互斥信號(hào)燈的值僅取1、0和1三個(gè)值。 mutex=1 表示沒有進(jìn)程進(jìn)入臨界區(qū); mutex=0 表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū); mutex=1 表示一個(gè)進(jìn)程進(jìn)入臨界區(qū), 另一個(gè)進(jìn)程等待進(jìn)入。 第17頁/共29頁x代表某航班
8、機(jī)座號(hào),pa和pb兩個(gè)售票進(jìn)程,售票工作是對(duì)變量x加1。 設(shè):mutex為互斥信號(hào)燈,初值為1。p ( ) p ( ) p(mutex); p(mutex); x:=x+1 ; x:=x+1 ; v(mutex); v(mutex); 第18頁/共29頁同步 生產(chǎn)者消費(fèi)者問題 合作進(jìn)程第19頁/共29頁54 計(jì)算進(jìn)程 cp和打印進(jìn)程 iop公用一個(gè)單緩沖,為了完成正確的計(jì)算與打印,試用信號(hào)燈的p、v操作實(shí)現(xiàn)這兩個(gè)進(jìn)程的同步。 iop cp兩個(gè)進(jìn)程的任務(wù) 計(jì)算進(jìn)程cp經(jīng)過計(jì)算,將計(jì)算結(jié)果送入buf; 打印進(jìn)程iop把buf中的數(shù)據(jù)取出打印。 第20頁/共29頁57main( ) int sa=0
9、; *表示buf中有無信息 * int sb=1; *表示buf中有無空位置* cobegin cp( );iop( ); coendcp( ) iop( ) while(計(jì)算未完成) while(打印工作未完成) 得到一個(gè)計(jì)算結(jié)果; p(sa); p(sb); 從緩沖區(qū)中取一數(shù); 將數(shù)送到緩沖區(qū)中; v(sb); v(sa); 從打印機(jī)上輸出; iop cp第21頁/共29頁59 生產(chǎn)者與消費(fèi)者的同步關(guān)系 生產(chǎn)者:當(dāng)有界緩沖區(qū)中無空位置時(shí),要等待; 向有界緩沖區(qū)放入物品后,要發(fā)消息。 消費(fèi)者:當(dāng)有界緩沖區(qū)中無物品時(shí),要等待; 從有界緩沖區(qū)取出物品后,要發(fā)消息。c1p1 c2c3ckp2p3p
10、m第22頁/共29頁62程序描述main( ) int sa=0; *滿緩沖區(qū)的數(shù)目* int sb=n; *空緩沖區(qū)的數(shù)目* int mutex=1; *對(duì)有界緩沖區(qū)進(jìn)行操作的互斥信號(hào)燈* cobegin p1 ( ); p2 ( ); pm ( ); c1 ( ); c2 ( ); ck ( ); coend第23頁/共29頁pi( ) cj( ) while(生產(chǎn)未完成) while(還要繼續(xù)消費(fèi)) p(sa); 生產(chǎn)一個(gè)產(chǎn)品; p(mutex); p(sb); 從有界緩沖區(qū)中取產(chǎn)品; p(mutex); v(empty); 送一個(gè)產(chǎn)品到有界緩沖 v(sb); v(mutex); 消費(fèi)一
11、個(gè)產(chǎn)品; v(sa); 生產(chǎn)者消費(fèi)者問題是一個(gè)既有同步又有互斥的問題。生產(chǎn)者消費(fèi)者問題是一個(gè)既有同步又有互斥的問題。第24頁/共29頁例子 若信號(hào)量S初值為2,當(dāng)前值為1,則表示有 ( )個(gè)進(jìn)程在與S相關(guān)的隊(duì)列上等待。A0 B1C2D3 一種資源的數(shù)量是8,這個(gè)資源對(duì)應(yīng)的信號(hào)量的當(dāng)前值是2,說明:( )A. 有2個(gè)進(jìn)程等待這個(gè)資源B. 有2個(gè)資源可以使用C. 有6個(gè)進(jìn)程等待這個(gè)資源D. 有6個(gè)資源可以使用信號(hào)量的物理意義是當(dāng)信號(hào)量值大于零時(shí)表示信號(hào)量的物理意義是當(dāng)信號(hào)量值大于零時(shí)表示 可分配資源的個(gè)數(shù)可分配資源的個(gè)數(shù) ;當(dāng)信;當(dāng)信號(hào)量值小于零時(shí),其絕對(duì)值為號(hào)量值小于零時(shí),其絕對(duì)值為 等待使用該資源的進(jìn)程的個(gè)數(shù)等待使用該資源的進(jìn)程的個(gè)數(shù) 。第25頁/共29頁51進(jìn)程流圖 p3 s fp5p1p2p4p6p9p10p8 f sp5p6p7 s f第26頁/共29頁53pbpcpa f smain( ) int sb=0; *表示pb進(jìn)程能否開始執(zhí)行* int sc=0; *
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租房合同范本 半年付
- 制冷劑合同標(biāo)準(zhǔn)文本
- 減震采購合同標(biāo)準(zhǔn)文本
- 出租公司并購合同樣本
- 2025江西省建筑安全員B證考試題庫及答案
- 廣東省汕頭市潮南區(qū)臚崗鎮(zhèn)2024年中考數(shù)學(xué)四模試卷含解析
- 公司技工聘用合同標(biāo)準(zhǔn)文本
- 買樓貸款合同標(biāo)準(zhǔn)文本
- 便民攤位抽簽合同樣本
- 個(gè)人陶瓷采購合同標(biāo)準(zhǔn)文本
- 工商聯(lián)各項(xiàng)規(guī)章制度
- 嵌入式系統(tǒng)基礎(chǔ)
- 商洛市寶恒礦業(yè)有限公司商洛市商州區(qū)東窯溝鉛鋅礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 安全施工及應(yīng)急措施方案
- 國際化學(xué)品安全告知卡(二甲胺)
- YS/T 1109-2016有機(jī)硅用硅粉
- 第三講 酒店組織管理
- GB/T 27021.10-2021合格評(píng)定管理體系審核認(rèn)證機(jī)構(gòu)要求第10部分:職業(yè)健康安全管理體系審核與認(rèn)證能力要求
- GB/T 24267-2009建筑用阻燃密封膠
- ge680ct用戶學(xué)習(xí)-技術(shù)手冊(cè)
- 小學(xué)生安全教育完整課件
評(píng)論
0/150
提交評(píng)論