




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章網(wǎng)絡(luò)os的通信3.1基于共享變量的通信方式適用于:網(wǎng)絡(luò)中各節(jié)點(diǎn)主機(jī)內(nèi)進(jìn)程的通信。一.進(jìn)程間的同步與互斥1.概念:.同步:合作進(jìn)程間互通信息或互相等待的一種時(shí)序關(guān)系。.互斥:進(jìn)程間不能同時(shí)使用某臨界資源的排他性。.信號(hào)量:表示資源的整型變量,OS用它對(duì)進(jìn)程和資源進(jìn)行控制和管理。.見(jiàn)p79圖3-22.P、V操作:定義在信號(hào)量S上的兩個(gè)操作。
設(shè)進(jìn)程PP,隊(duì)列Q(等待S類資源的進(jìn)程隊(duì)列)
信號(hào)量:S>0:可用資源數(shù)
S<0:無(wú)資源,|S|表示等待該資源的進(jìn)程數(shù)。.PP請(qǐng)求資源時(shí)執(zhí)行:P(S):(1)S:=S-1;{資源數(shù)減一}(2)若S>=0則PP繼續(xù)運(yùn)行(3)若S<0則PP阻塞,入隊(duì)Q.PP釋放資源時(shí)執(zhí)行:V(S):(1)S:=S+1;{資源數(shù)加一}(2)若S>0則PP繼續(xù)運(yùn)行(3)若S<=0則喚醒Q中的第一個(gè)等待者,PP繼續(xù)運(yùn)行第三章網(wǎng)絡(luò)os的通信3.利用信號(hào)量S實(shí)現(xiàn)進(jìn)程間同步
.進(jìn)程間的同步模型:初始S=0
進(jìn)程P1進(jìn)程P2L1:P(S)L2:V(S)……
(P1受P2制約,故為非對(duì)稱同步)例:生產(chǎn)者、消費(fèi)者問(wèn)題4.利用信號(hào)量S實(shí)現(xiàn)進(jìn)程間互斥初值:S=1(臨界資源數(shù))模型:進(jìn)程P1進(jìn)程P2P(S)P(S)
臨界區(qū)1臨界區(qū)2
V(S)V(S)例:進(jìn)程P1、P2共享一變量count(臨界軟件資源),初始count=0,信號(hào)燈s=1。CobeginProcessp1:processp2:r1:register;r2:register;BeginP(s);beginP(s);r1:=r1+1;r2:=count;count:=r1;r2+r2+1;V(S);count:=r2;endV(S);Coend;end
例:P82
第三章網(wǎng)絡(luò)os的通信.P、V操作的不足:程序復(fù)雜,不易理解,進(jìn)程間通訊效率低。二.消息緩沖通訊1.低級(jí)通訊原語(yǔ):P,V操作2.高級(jí)通訊原語(yǔ):.消息緩沖區(qū):進(jìn)程間通訊的一個(gè)基本單位(包括:發(fā)送進(jìn)程標(biāo)識(shí)符Sender,消息長(zhǎng)度Size,消息正文Text,指向下一緩沖區(qū)的指針Next。即發(fā)送區(qū)、接收區(qū)內(nèi)容).消息緩沖隊(duì)列:(見(jiàn)右圖)(消息緩沖隊(duì)列屬臨界資源).2.進(jìn)程通訊原語(yǔ).發(fā)送原語(yǔ)Send(receiver,addr):將要發(fā)送的消息從發(fā)送區(qū)復(fù)制到消息緩沖區(qū),并把它掛在接收進(jìn)程的消息緩沖隊(duì)尾。若該接收進(jìn)程因等待消息而處于阻塞狀態(tài),則將其喚醒。接收原語(yǔ)Receive(addr):將發(fā)送者發(fā)來(lái)的消息從消息緩沖區(qū)復(fù)制到接收區(qū),然后從隊(duì)列中刪去該消息緩沖區(qū),若無(wú)消息可接收,則接收進(jìn)程進(jìn)入阻塞狀態(tài)。
接收進(jìn)程PCB…mqmutexsm緩沖區(qū)1第三章網(wǎng)絡(luò)os的通信3.進(jìn)程間用消息緩沖方式通信的過(guò)程:
進(jìn)程A:(1)建立發(fā)送區(qū)a,置發(fā)送內(nèi)容。(2)調(diào)Send(B,a)發(fā)送:①根據(jù)原語(yǔ)參數(shù)找到B的PCB,調(diào)內(nèi)存分配程序獲消息緩沖區(qū)X;②執(zhí)行P(mutex),若mutex=0,則由進(jìn)程B的PCB中隊(duì)首指針mq,在隊(duì)列中找到最后一個(gè)消息區(qū),將X加入隊(duì)尾后將發(fā)送區(qū)內(nèi)容復(fù)制到X,置其next為0,最后執(zhí)行V(mutex)和V(sm)。
進(jìn)程B:(1)設(shè)置接收區(qū)b(2)調(diào)receive(b):①執(zhí)行P(sm),若sm<0,則隊(duì)列空無(wú)消息,阻塞進(jìn)程;若sm>=0,執(zhí)行P(mutex),若允許用隊(duì)列,則由B的PCB中的mq找到隊(duì)列中的第一個(gè)消息緩沖區(qū),將其從隊(duì)列中移出,并修改mq使之指向下一個(gè)消息,再執(zhí)行V(mutex);②將消息從緩沖區(qū)復(fù)制到接收區(qū),最后釋放緩沖區(qū)。
第三章網(wǎng)絡(luò)os的通信三.信箱通訊1.信箱通信過(guò)程系統(tǒng)中任一進(jìn)程(或用戶)想接收其它進(jìn)程(或用戶)發(fā)來(lái)信件,需:(1)為自己創(chuàng)建一信箱,以接收其它進(jìn)程發(fā)來(lái)的信件(也可將自己的信件發(fā)送給具有信箱的進(jìn)程)。(2)利用發(fā)送(send)和接收(receive)通信原語(yǔ)實(shí)現(xiàn)進(jìn)程間互相通信。
進(jìn)程間通信過(guò)程:設(shè):進(jìn)程A向進(jìn)程B發(fā)送消息
進(jìn)程A:將消息組成一信件,調(diào)send原語(yǔ)向B發(fā)送,并將信件投入B的信箱。
進(jìn)程B:調(diào)receive原語(yǔ)從信箱中取信件;進(jìn)行必要處理(或服務(wù)),將結(jié)果組成一信件發(fā)送回去。進(jìn)程A:索取回信。第三章網(wǎng)絡(luò)os的通信進(jìn)程利用信箱方式的通信圖示:見(jiàn):p85圖3-42.信箱數(shù)據(jù)結(jié)構(gòu):信箱:是一種數(shù)據(jù)結(jié)構(gòu),用于存放信件,由信箱頭(信箱的描述部分)和信箱體(若干放信件的格子)組成。信箱的數(shù)據(jù)結(jié)構(gòu):見(jiàn)右圖
信箱名:boxname信箱大?。篵oxsize已存信件數(shù):mesnum空格子數(shù):fromnum滿信件1滿信件2空格子……..格式:receive(boxname,msg)功能:從boxname信箱取一封信存入msg指示的區(qū)域。收發(fā)關(guān)系:1:1,1:mm:14.原語(yǔ)的實(shí)現(xiàn):見(jiàn)P863.發(fā)送、接收原語(yǔ):格式:send(boxname,msg)
功能:將msg指向的消息放入名為boxname的信箱。3.2基于消息傳遞的通信方式
一.通信機(jī)制
.核心:通信原語(yǔ)(
發(fā)送原語(yǔ),接收原語(yǔ))
.基本思想:用C/S模式構(gòu)造一組相互合作的通信進(jìn)程。
二.客戶與服務(wù)器間的通信過(guò)程
客戶/服務(wù)器模式通常基于一個(gè)簡(jiǎn)單的無(wú)連接的請(qǐng)求應(yīng)答協(xié)議。見(jiàn)P90圖3--13--83--9三.一個(gè)客戶/服務(wù)器例子:P88.服務(wù)器進(jìn)程:執(zhí)行一個(gè)無(wú)限循環(huán):(1)等待,直到收到客戶進(jìn)程發(fā)來(lái)的消息m1。(2)分析收到的消息,根據(jù)請(qǐng)求服務(wù)的類型進(jìn)行不同的處理.若為錯(cuò)誤請(qǐng)求則返回“未定義的操作請(qǐng)求”。(3)將操作結(jié)果(及返回碼)組成返回信息m2,返回客戶進(jìn)程.進(jìn)入準(zhǔn)備接受下一消息的狀態(tài)。.客戶進(jìn)程:(復(fù)制文件:每次從源文件讀一塊1KB,然后將該塊寫(xiě)入目標(biāo)文件,重復(fù),直到復(fù)制完成)進(jìn)程A進(jìn)程B發(fā)收同步
3.2基于消息傳遞的通信方式
步驟:
(1)構(gòu)造從源文件讀一塊的消息m1,將m1發(fā)送給服務(wù)器進(jìn)程。(2)等待應(yīng)答,直到服務(wù)器發(fā)來(lái)的結(jié)果消息m2將其喚醒。(3)構(gòu)造在目標(biāo)文件寫(xiě)一塊的消息m1,將m1發(fā)送給服務(wù)器進(jìn)程。(4)等待應(yīng)答,直到服務(wù)器發(fā)來(lái)的結(jié)果消息m2將其喚醒。(5)修改讀/寫(xiě)位置,若復(fù)制完則結(jié)束,否則返回(1)。四.發(fā)送原語(yǔ)和接收原語(yǔ)發(fā)送原語(yǔ):Send(dest,&mptr)
功能:將mptr指向的消息發(fā)給標(biāo)識(shí)符為dest的進(jìn)程。接收原語(yǔ):Receive(addr,&mptr)
功能:調(diào)用該原語(yǔ)的進(jìn)程等待,直到有消息到達(dá),將收到的消息存入mptr指向的緩沖區(qū)。?Addr:接收進(jìn)程的網(wǎng)絡(luò)地址接收的消息由誰(shuí)發(fā)來(lái)的:由消息本身的“發(fā)送者標(biāo)識(shí)符”知。服務(wù)器請(qǐng)求客戶1客戶n客戶2等待某消息Receive(file-server,&m1)Receive(client,&m1)接收服務(wù)器應(yīng)答第三章網(wǎng)絡(luò)os的通信3.2基于消息傳遞的通信方式
五.通信協(xié)議
通信協(xié)議:通信雙方共同遵守的規(guī)則、約定。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產(chǎn)標(biāo)準(zhǔn)化等級(jí)劃分標(biāo)準(zhǔn)
- 教育數(shù)字化驅(qū)動(dòng)的高職生職業(yè)發(fā)展研究
- 電纜智能制造系統(tǒng)-洞察闡釋
- 兒童教育游戲產(chǎn)品的市場(chǎng)營(yíng)銷策略探討
- 超快動(dòng)力學(xué)過(guò)程中的電化學(xué)存儲(chǔ)研究-洞察闡釋
- 藝術(shù)品拍賣行與藝術(shù)基金的資源整合與戰(zhàn)略聯(lián)盟-洞察闡釋
- 基于深度增強(qiáng)學(xué)習(xí)的離線模型優(yōu)化方法-洞察闡釋
- 醫(yī)療與教育大數(shù)據(jù)分析的跨界應(yīng)用
- 學(xué)生心理素質(zhì)提升的教育心理學(xué)方法
- 教育心理學(xué)在提升學(xué)生情感智商中的應(yīng)用研究
- 碳匯經(jīng)濟(jì)與政策智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- T-SHNA 0002-2023 淚道沖洗操作規(guī)范
- 老年患者風(fēng)險(xiǎn)評(píng)估及安全管理
- 安全事故案例警示教育培訓(xùn)
- 散打說(shuō)課課件
- 面館開(kāi)店投資 項(xiàng)目融資計(jì)劃書(shū)
- 車體-罐車(車輛構(gòu)造檢修課件)
- 草魚(yú)高效養(yǎng)殖模式與技術(shù)
- 腎骨片產(chǎn)品課件
- 幼師應(yīng)聘?jìng)€(gè)人簡(jiǎn)歷表格
- 海運(yùn)出口培訓(xùn)課程教學(xué)課件
評(píng)論
0/150
提交評(píng)論