同步互斥問題之硬件PPT課件_第1頁
同步互斥問題之硬件PPT課件_第2頁
同步互斥問題之硬件PPT課件_第3頁
同步互斥問題之硬件PPT課件_第4頁
同步互斥問題之硬件PPT課件_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2021/7/241同步互斥問題之硬件同步互斥問題之硬件2021/7/242為什么會出現(xiàn)同步互斥問題為什么會出現(xiàn)同步互斥問題? 為了提高系統(tǒng)中各種資源的利用率,引進(jìn)了并發(fā)的概念,讓多個進(jìn)程可以并發(fā)執(zhí)行,但又因為并發(fā)執(zhí)行,容易引發(fā)死鎖等一些問題2021/7/243互斥關(guān)系與同步關(guān)系互斥關(guān)系與同步關(guān)系 互斥關(guān)系:指由于競爭同一個物理資源而產(chǎn)生的相互制約關(guān)系 同步關(guān)系:指進(jìn)程間共同完成一項任務(wù)時直接發(fā)生相互作業(yè)的關(guān)系2021/7/244如何判斷同步互斥關(guān)系 互斥:主要是看這些進(jìn)程是否競爭同一個臨界資源(臨界資源每次只允許一個進(jìn)程訪問的資源)這些進(jìn)程間有沒有合作關(guān)系,如果是競爭同一臨界資源,進(jìn)程間又沒

2、有合作關(guān)系,那這些進(jìn)程間就為互斥關(guān)系,應(yīng)該讓它們互斥執(zhí)行 同步:方法一兩個以上的進(jìn)程共同使用一個臨界資源,但使用的是兩種不同的狀態(tài),而且兩個進(jìn)程是合作關(guān)系方法二兩個進(jìn)程是合作進(jìn)程,做兩種不同的事,但像接力跑一樣,必須前一個進(jìn)程做完,后一個進(jìn)程才做工作,或者兩個進(jìn)程的工作交替進(jìn)行著2021/7/245解決同步互斥問題方法解決同步互斥問題方法.軟件方面.硬件方面鎖,信號量機(jī)制2021/7/246鎖鎖 任何臨界區(qū)問題都需要一個簡單的工具-鎖鎖。通過要求臨界區(qū)用鎖來防護(hù),就可以避免競爭條件,即一個進(jìn)程在進(jìn)入臨界區(qū)之前必須得到鎖,而在其推出臨界區(qū)時釋放鎖。2021/7/247基本概念 信號量機(jī)構(gòu):信號量

3、、p、v操作 信號量 p、v操作 原語2021/7/248什么是信號量?通常用234567表示,它的作用與交通管理中的信號燈一樣,由它來控制進(jìn)程的行進(jìn)速度,一般情況,信號量為正數(shù)和8時可通行,負(fù)數(shù)時就必須等待(網(wǎng)上的定義)。但是從我們所學(xué)基本代碼可以看出,差不多S0的時候,就是可以通行的。2021/7/249pv操作信號量s為一整型變量,則P(S): While S0 ;/no-op S = S-1 ; V(S):S = S1; P、V操作是兩條原語,即保證P、V操作對變量S的訪問是互斥操作。2021/7/2410原語 原語:指完成某種功能且不被分割或不被中斷執(zhí)行的操作序列。(即老師講的原子操

4、作) 原語可通過硬件實現(xiàn)不可中斷性;或通過實現(xiàn)臨界段的元方法達(dá)到不被中斷。 實現(xiàn)臨界段的元方法:屏蔽中斷(只用于單機(jī))加硬鎖。2021/7/2411利用信號量解決同步互斥問題 互斥:用于n個進(jìn)程的臨界段互斥,n進(jìn)程共享一個信號量mutex,初值為1,任一進(jìn)程Pi的結(jié)構(gòu)為:Process Pi: do wait(mutex); critical section signal(mutex); remainder section while (1);2021/7/2412同步:有P1、P2 兩進(jìn)程,必須在P1執(zhí)行完S1語句后,P2才能執(zhí)行S2。需同步的兩進(jìn)程共享信號量synch,初值為0。Parbe

5、gin P2: begin P1: beginS1;V(synch);end; P(synch);S2;end;Parend;2021/7/2413操作系統(tǒng)實現(xiàn)信號量時與進(jìn)程調(diào)度相結(jié)合,信號量時與進(jìn)程調(diào)度相結(jié)合,消除忙等待消除忙等待現(xiàn)象。原則是:在原則是:在P P操作循環(huán)等待的地方加入放棄操作循環(huán)等待的地方加入放棄處理機(jī)處理機(jī)/ /掛入等待隊列動作,在掛入等待隊列動作,在V V操作時,操作時,從等待隊列中摘取進(jìn)程變?yōu)榫途w態(tài)。從等待隊列中摘取進(jìn)程變?yōu)榫途w態(tài)。(P P、V V原語本身的互斥操作通過屏敝中斷原語本身的互斥操作通過屏敝中斷或為信號量加硬鎖實現(xiàn))或為信號量加硬鎖實現(xiàn))信號量的具體實現(xiàn)20

6、21/7/24141 1、信號量定義、信號量定義 type Semaphore=recordtype Semaphore=record value:integer; value:integer; 一個數(shù)型變量一個數(shù)型變量 L:List of process;L:List of process;一個一個PCBPCB隊列隊列 end;end;2 2、P P操作操作 P(S):S.Value=S.value 1;P(S):S.Value=S.value 1; If S.value0 then If S.value0 then 保存現(xiàn)場,保存現(xiàn)場, 將本進(jìn)程掛入將本進(jìn)程掛入S.LS.L隊列,重新調(diào)度隊列,重新調(diào)度。3 3、V V操作操作 V V(S):S.value:=value+1S):S.value:=value+1 If S.value 0 then If S.value 0 then 從從S.LS.L隊列隊列 取一進(jìn)程,掛入就緒隊列。取一進(jìn)程,掛入就緒隊列。2021/7/2415實例 甲甲 5:00 查看冰箱,面包沒了查看冰箱,面包沒了 5:05 去超市去超市 5:10 到達(dá)超市到達(dá)超市 5:15 買好面包買好面包 5:20 回家回家,把面包放入冰箱把面包放入冰箱 5:25 5:30 乙乙 5:00 5:05 5:

溫馨提示

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

最新文檔

評論

0/150

提交評論