網(wǎng)絡(luò)操作系統(tǒng) 第三章_第1頁
網(wǎng)絡(luò)操作系統(tǒng) 第三章_第2頁
網(wǎng)絡(luò)操作系統(tǒng) 第三章_第3頁
網(wǎng)絡(luò)操作系統(tǒng) 第三章_第4頁
網(wǎng)絡(luò)操作系統(tǒng) 第三章_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章網(wǎng)絡(luò)os的通信3.1基于共享變量的通信方式適用于:網(wǎng)絡(luò)中各節(jié)點(diǎn)主機(jī)內(nèi)進(jìn)程的通信。一.進(jìn)程間的同步與互斥1.概念:.同步:合作進(jìn)程間互通信息或互相等待的一種時序關(guān)系。.互斥:進(jìn)程間不能同時使用某臨界資源的排他性。.信號量:表示資源的整型變量,OS用它對進(jìn)程和資源進(jìn)行控制和管理。.見p79圖3-22.P、V操作:定義在信號量S上的兩個操作。

設(shè)進(jìn)程PP,隊(duì)列Q(等待S類資源的進(jìn)程隊(duì)列)

信號量:S>0:可用資源數(shù)

S<0:無資源,|S|表示等待該資源的進(jìn)程數(shù)。.PP請求資源時執(zhí)行:P(S):(1)S:=S-1;{資源數(shù)減一}(2)若S>=0則PP繼續(xù)運(yùn)行(3)若S<0則PP阻塞,入隊(duì)Q.PP釋放資源時執(zhí)行:V(S):(1)S:=S+1;{資源數(shù)加一}(2)若S>0則PP繼續(xù)運(yùn)行(3)若S<=0則喚醒Q中的第一個等待者,PP繼續(xù)運(yùn)行第三章網(wǎng)絡(luò)os的通信3.利用信號量S實(shí)現(xiàn)進(jìn)程間同步

.進(jìn)程間的同步模型:初始S=0

進(jìn)程P1進(jìn)程P2L1:P(S)L2:V(S)……

(P1受P2制約,故為非對稱同步)例:生產(chǎn)者、消費(fèi)者問題4.利用信號量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,信號燈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.低級通訊原語:P,V操作2.高級通訊原語:.消息緩沖區(qū):進(jìn)程間通訊的一個基本單位(包括:發(fā)送進(jìn)程標(biāo)識符Sender,消息長度Size,消息正文Text,指向下一緩沖區(qū)的指針Next。即發(fā)送區(qū)、接收區(qū)內(nèi)容).消息緩沖隊(duì)列:(見右圖)(消息緩沖隊(duì)列屬臨界資源).2.進(jìn)程通訊原語.發(fā)送原語Send(receiver,addr):將要發(fā)送的消息從發(fā)送區(qū)復(fù)制到消息緩沖區(qū),并把它掛在接收進(jìn)程的消息緩沖隊(duì)尾。若該接收進(jìn)程因等待消息而處于阻塞狀態(tài),則將其喚醒。接收原語Receive(addr):將發(fā)送者發(fā)來的消息從消息緩沖區(qū)復(fù)制到接收區(qū),然后從隊(duì)列中刪去該消息緩沖區(qū),若無消息可接收,則接收進(jìn)程進(jìn)入阻塞狀態(tài)。

接收進(jìn)程PCB…mqmutexsm緩沖區(qū)1第三章網(wǎng)絡(luò)os的通信3.進(jìn)程間用消息緩沖方式通信的過程:

進(jìn)程A:(1)建立發(fā)送區(qū)a,置發(fā)送內(nèi)容。(2)調(diào)Send(B,a)發(fā)送:①根據(jù)原語參數(shù)找到B的PCB,調(diào)內(nèi)存分配程序獲消息緩沖區(qū)X;②執(zhí)行P(mutex),若mutex=0,則由進(jìn)程B的PCB中隊(duì)首指針mq,在隊(duì)列中找到最后一個消息區(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ì)列空無消息,阻塞進(jìn)程;若sm>=0,執(zhí)行P(mutex),若允許用隊(duì)列,則由B的PCB中的mq找到隊(duì)列中的第一個消息緩沖區(qū),將其從隊(duì)列中移出,并修改mq使之指向下一個消息,再執(zhí)行V(mutex);②將消息從緩沖區(qū)復(fù)制到接收區(qū),最后釋放緩沖區(qū)。

第三章網(wǎng)絡(luò)os的通信三.信箱通訊1.信箱通信過程系統(tǒng)中任一進(jìn)程(或用戶)想接收其它進(jìn)程(或用戶)發(fā)來信件,需:(1)為自己創(chuàng)建一信箱,以接收其它進(jìn)程發(fā)來的信件(也可將自己的信件發(fā)送給具有信箱的進(jìn)程)。(2)利用發(fā)送(send)和接收(receive)通信原語實(shí)現(xiàn)進(jìn)程間互相通信。

進(jìn)程間通信過程:設(shè):進(jìn)程A向進(jìn)程B發(fā)送消息

進(jìn)程A:將消息組成一信件,調(diào)send原語向B發(fā)送,并將信件投入B的信箱。

進(jìn)程B:調(diào)receive原語從信箱中取信件;進(jìn)行必要處理(或服務(wù)),將結(jié)果組成一信件發(fā)送回去。進(jìn)程A:索取回信。第三章網(wǎng)絡(luò)os的通信進(jìn)程利用信箱方式的通信圖示:見:p85圖3-42.信箱數(shù)據(jù)結(jié)構(gòu):信箱:是一種數(shù)據(jù)結(jié)構(gòu),用于存放信件,由信箱頭(信箱的描述部分)和信箱體(若干放信件的格子)組成。信箱的數(shù)據(jù)結(jié)構(gòu):見右圖

信箱名:boxname信箱大?。篵oxsize已存信件數(shù):mesnum空格子數(shù):fromnum滿信件1滿信件2空格子……..格式:receive(boxname,msg)功能:從boxname信箱取一封信存入msg指示的區(qū)域。收發(fā)關(guān)系:1:1,1:mm:14.原語的實(shí)現(xiàn):見P863.發(fā)送、接收原語:格式:send(boxname,msg)

功能:將msg指向的消息放入名為boxname的信箱。3.2基于消息傳遞的通信方式

一.通信機(jī)制

.核心:通信原語(

發(fā)送原語,接收原語)

.基本思想:用C/S模式構(gòu)造一組相互合作的通信進(jìn)程。

二.客戶與服務(wù)器間的通信過程

客戶/服務(wù)器模式通?;谝粋€簡單的無連接的請求應(yīng)答協(xié)議。見P90圖3--13--83--9三.一個客戶/服務(wù)器例子:P88.服務(wù)器進(jìn)程:執(zhí)行一個無限循環(huán):(1)等待,直到收到客戶進(jìn)程發(fā)來的消息m1。(2)分析收到的消息,根據(jù)請求服務(wù)的類型進(jìn)行不同的處理.若為錯誤請求則返回“未定義的操作請求”。(3)將操作結(jié)果(及返回碼)組成返回信息m2,返回客戶進(jìn)程.進(jìn)入準(zhǔn)備接受下一消息的狀態(tài)。.客戶進(jìn)程:(復(fù)制文件:每次從源文件讀一塊1KB,然后將該塊寫入目標(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ā)來的結(jié)果消息m2將其喚醒。(3)構(gòu)造在目標(biāo)文件寫一塊的消息m1,將m1發(fā)送給服務(wù)器進(jìn)程。(4)等待應(yīng)答,直到服務(wù)器發(fā)來的結(jié)果消息m2將其喚醒。(5)修改讀/寫位置,若復(fù)制完則結(jié)束,否則返回(1)。四.發(fā)送原語和接收原語發(fā)送原語:Send(dest,&mptr)

功能:將mptr指向的消息發(fā)給標(biāo)識符為dest的進(jìn)程。接收原語:Receive(addr,&mptr)

功能:調(diào)用該原語的進(jìn)程等待,直到有消息到達(dá),將收到的消息存入mptr指向的緩沖區(qū)。?Addr:接收進(jìn)程的網(wǎng)絡(luò)地址接收的消息由誰發(fā)來的:由消息本身的“發(fā)送者標(biāo)識符”知。服務(wù)器請求客戶1客戶n客戶2等待某消息Receive(file-server,&m1)Receive(client,&m1)接收服務(wù)器應(yīng)答第三章網(wǎng)絡(luò)os的通信3.2基于消息傳遞的通信方式

五.通信協(xié)議

通信協(xié)議:通信雙方共同遵守的規(guī)則、約定。

溫馨提示

  • 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

提交評論