版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)概念
第五講進(jìn)程通信OperatingSystemConceptionDavidfu上章回顧什么是臨界區(qū)?什么是信號(hào)量,如何定義初始值?OperatingSystemConceptionDavidfu本課總體綱要進(jìn)程通信(InterprocessCommunication)消息、郵箱機(jī)制共享內(nèi)存機(jī)制管道機(jī)制進(jìn)程通信實(shí)例解析死鎖(DeadLock)死鎖的概念產(chǎn)生死鎖的必要條件死鎖的排除方法死鎖實(shí)例解析OperatingSystemConceptionDavidfu進(jìn)程通信-分類(1)在單機(jī)系統(tǒng)中,進(jìn)程間通信方式可分為4種:主從式(master/servantsystem)主進(jìn)程可以自由使用從進(jìn)程資源從進(jìn)程的動(dòng)作受到主進(jìn)程的限制主進(jìn)程和從進(jìn)程關(guān)系固定應(yīng)用于終端控制進(jìn)程和終端進(jìn)程O(píng)peratingSystemConceptionDavidfu進(jìn)程通信-分類(2)會(huì)話式(Dialoguesystem)使用進(jìn)程在使用服務(wù)進(jìn)程提供的服務(wù)前,必須得到許可服務(wù)進(jìn)程根據(jù)使用進(jìn)程的要求提供服務(wù),單控制權(quán)屬于服務(wù)進(jìn)程本身使用進(jìn)程和服務(wù)進(jìn)程關(guān)系固定應(yīng)用于用戶進(jìn)程和磁盤(pán)管理OperatingSystemConceptionDavidfu進(jìn)程通信-分類(3)消息或郵箱機(jī)制只要存在空緩存區(qū)或郵箱,發(fā)送進(jìn)程就可以發(fā)送消息發(fā)送進(jìn)程和接受進(jìn)程無(wú)直接聯(lián)系發(fā)送進(jìn)程和接受進(jìn)程之間存在緩沖區(qū)或郵箱用來(lái)存放被傳輸?shù)南peratingSystemConceptionDavidfu進(jìn)程通信-分類(4)共享內(nèi)存機(jī)制共享內(nèi)存方式不要求數(shù)據(jù)移動(dòng),兩個(gè)需要互相交互的信息的進(jìn)程通過(guò)對(duì)同一共享數(shù)據(jù)區(qū)(sharedmemory)的操作來(lái)達(dá)到互相通信的目的。OperatingSystemConceptionDavidfu進(jìn)程通信-消息緩沖機(jī)制(5)由于消息緩沖機(jī)制中使用的緩沖區(qū)是公用緩沖區(qū),使用消息緩沖機(jī)制傳送數(shù)據(jù)時(shí),通信進(jìn)程應(yīng)滿足的條件:進(jìn)程對(duì)緩沖區(qū)的操作必須互斥當(dāng)緩沖區(qū)種無(wú)消息存在時(shí),接收進(jìn)程不能接受到任何消息設(shè)置公用信號(hào)量mutex,接收進(jìn)程私用信號(hào)量SM,消息m。OperatingSystemConceptionDavidfu進(jìn)程通信-消息緩沖機(jī)制(6)Send(m):Begin向系統(tǒng)申請(qǐng)一個(gè)消息緩沖區(qū)P(mutex)將消息m發(fā)送到新申請(qǐng)的消息緩沖區(qū)V(mutex)V(SM)Receive(m):BeginP(SM)P(mutex)將消息m從緩沖區(qū)復(fù)制到接收區(qū)并釋放緩沖區(qū)V(mutex)OperatingSystemConceptionDavidfu進(jìn)程通信-郵箱(7)對(duì)于只有一個(gè)發(fā)送進(jìn)程和一個(gè)接收進(jìn)程使用的郵箱,進(jìn)程間通信應(yīng)滿足以下條件:發(fā)送進(jìn)程發(fā)送消息時(shí),郵箱中至少有一個(gè)存儲(chǔ)消息的單元接收進(jìn)程接收消息時(shí),郵箱中至少有一個(gè)消息存在發(fā)送進(jìn)程郵箱頭郵箱體接收進(jìn)程O(píng)peratingSystemConceptionDavidfu進(jìn)程通信-管道(pipe)Unix系統(tǒng)從SystemV開(kāi)始,提供有名管道和無(wú)名管道兩種數(shù)據(jù)通信方式。無(wú)名管道為建立管道的進(jìn)程及其子進(jìn)程提供一條以比特流方式傳送消息的通信管道。該管道在邏輯上是管道文件,物理上則由文件系統(tǒng)的高速緩沖區(qū)構(gòu)成。寫(xiě)fd[1]Pipe(fd)fd[0]讀OperatingSystemConceptionDavidfu進(jìn)程通信-管道(pipe)
main(){intx,fd[2];charbuf[30],s[30];Pipe(fd);while((x=fork())==-1);//創(chuàng)建子進(jìn)程失敗,原地循環(huán)if(x==0){sprintf(buf,”子進(jìn)程寫(xiě)信息到父進(jìn)程”);write(fd[1],buf,30);exit(0);}else{ wait(0);read(fd[0],s,30);printf(“%s”,s);}}OperatingSystemConceptionDavidfu進(jìn)程通信實(shí)例解析采用進(jìn)程通信的管理方法解決生產(chǎn)者-消費(fèi)者問(wèn)題。要求生產(chǎn)者能告訴消費(fèi)者產(chǎn)品的說(shuō)明、規(guī)格、價(jià)格等,而消費(fèi)者能反饋對(duì)物品的評(píng)價(jià)和處理情況設(shè)置公用信箱MOperatingSystemConceptionDavidfu進(jìn)程通信實(shí)例解析生產(chǎn)者:L1:生產(chǎn)一個(gè)產(chǎn)品L2:receive(consumer,M);If物品未取走thengotoL2Else組織回信,說(shuō)明產(chǎn)品信息Send(consumer,M);GotoL1消費(fèi)者:L1:receive(producer,M);If沒(méi)有產(chǎn)品thengotoL1Else組織回信,反饋產(chǎn)品信息Send(producer,M);GotoL1OperatingSystemConceptionDavidfu本課總體綱要進(jìn)程通信(InterprocessCommunication)消息、郵箱機(jī)制共享內(nèi)存機(jī)制管道機(jī)制進(jìn)程通信實(shí)例解析死鎖(DeadLock)死鎖的概念產(chǎn)生死鎖的必要條件死鎖的排除方法死鎖實(shí)例解析OperatingSystemConceptionDavidfu死鎖死鎖的定義:當(dāng)多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局,在無(wú)外力作用下,這些進(jìn)程將永遠(yuǎn)不能繼續(xù)向前推進(jìn),這種現(xiàn)象稱為死鎖。死鎖的起因:并發(fā)進(jìn)程的資源競(jìng)爭(zhēng)進(jìn)程推進(jìn)順序不當(dāng)OperatingSystemConceptionDavidfu死鎖產(chǎn)生死鎖的必要條件:互斥條件:資源的排他性不剝奪條件:進(jìn)程對(duì)獲得的資源在未使用完畢前,不可被其他進(jìn)程剝奪使用權(quán)利部分分配條件:進(jìn)程每次申請(qǐng)新資源時(shí),同時(shí)還要占用已分配的資源環(huán)路條件:存在進(jìn)程循環(huán)鏈,鏈中每個(gè)進(jìn)程已獲得的資源同時(shí)被下一個(gè)進(jìn)程申請(qǐng)OperatingSystemConceptionDavidfu死鎖死鎖的排除方法:死鎖預(yù)防死鎖避免死鎖的檢測(cè)和恢復(fù)OperatingSystemConceptionDavidfu死鎖死鎖預(yù)防一次性分配法資源順序分配法先釋放,后申請(qǐng)OperatingSystemConceptionDavidfu死鎖死鎖避免:動(dòng)態(tài)預(yù)防,系統(tǒng)根據(jù)某種算法在動(dòng)態(tài)分配資源時(shí),預(yù)測(cè)出死鎖發(fā)生的可能性,并加以預(yù)防死鎖的檢測(cè)與解除一個(gè)給定的進(jìn)程-資源圖最終是可以化簡(jiǎn)的。剝奪資源撤銷進(jìn)程O(píng)peratingSystemConceptionDavidfu死鎖例題(1)有4個(gè)進(jìn)程陷入了死鎖請(qǐng)問(wèn)這4個(gè)進(jìn)程可能占用了幾種資源?使用資源請(qǐng)求分配圖畫(huà)出可能的死鎖情況。OperatingSystemConceptionDavidfu死鎖例題(2)一臺(tái)計(jì)算機(jī)有8臺(tái)磁帶機(jī),分別由n個(gè)進(jìn)程競(jìng)爭(zhēng)使用,每個(gè)進(jìn)程需要3臺(tái)磁帶機(jī),請(qǐng)問(wèn)n為多少時(shí),系統(tǒng)沒(méi)有死鎖的危險(xiǎn)?設(shè)資源數(shù)M=8;競(jìng)爭(zhēng)進(jìn)程n,每個(gè)進(jìn)程需要的資源為X=3系統(tǒng)不會(huì)發(fā)生死鎖的公式:X=1(M<n)X=1+(M-1)/nOperatingSystemConceptionDavidfu總結(jié)死鎖(DeadLock)死鎖的概念產(chǎn)生死鎖的必要條件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年對(duì)外貿(mào)易協(xié)議簽訂流程及注意事項(xiàng)版B版
- 2024年標(biāo)準(zhǔn)代銷業(yè)務(wù)協(xié)議示例版B版
- 漯河職業(yè)技術(shù)學(xué)院《地籍管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年吉林道路貨運(yùn)從業(yè)資格證模擬考試
- 2024年商業(yè)物業(yè)管理與社區(qū)安全防范體系建設(shè)合同3篇
- 2024年模具生產(chǎn)服務(wù)協(xié)議標(biāo)準(zhǔn)文本版B版
- 單位人事管理制度展示選集
- 2025出租車半股轉(zhuǎn)讓合同
- 鄉(xiāng)村水廠建設(shè)與運(yùn)營(yíng)合作協(xié)議
- 環(huán)保工程總包施工合同
- 多金屬?gòu)U料高效綜合回收利用產(chǎn)業(yè)升級(jí)項(xiàng)目環(huán)評(píng)報(bào)告書(shū)
- 石方開(kāi)挖的環(huán)保措施
- 商洛市商州區(qū)金礦煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 中國(guó)鐵塔股份有限公司代維交接指南(2017年)
- 常用藥物皮試配制法和藥物過(guò)敏反應(yīng)的急救措施
- 醫(yī)學(xué)微生物學(xué)知到章節(jié)答案智慧樹(shù)2023年山東第一醫(yī)科大學(xué)
- 印刷通用質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)
- 電子測(cè)量技術(shù)基礎(chǔ)課后答案
- 大興調(diào)查研究研討發(fā)言材料學(xué)習(xí)心得體會(huì)中心組3篇
- 培訓(xùn)學(xué)校火災(zāi)應(yīng)急預(yù)案
- 面試評(píng)分表完整版
評(píng)論
0/150
提交評(píng)論