操作系統(tǒng)-進(jìn)程通信-課件_第1頁
操作系統(tǒng)-進(jìn)程通信-課件_第2頁
操作系統(tǒng)-進(jìn)程通信-課件_第3頁
操作系統(tǒng)-進(jìn)程通信-課件_第4頁
操作系統(tǒng)-進(jìn)程通信-課件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.6進(jìn)程通信(communication)進(jìn)程通信:指進(jìn)程間的信息交換。按通信內(nèi)容可以劃分為2種低級通信:進(jìn)程之間控制信息的交換稱為低級通信。一般只傳送一個和幾個字節(jié)的信息,達(dá)到控制進(jìn)程執(zhí)行速度的作用。(進(jìn)程的同步和互斥)信號量機(jī)制作為同步工具是卓有成效的,但作為通訊工具則不夠理想,(效率低。通訊對用戶不透明。)高級通信:用戶可以直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量數(shù)據(jù)的一種通信方式。1ppt課件

進(jìn)程的同步與互斥是一種通訊方式,一進(jìn)程可通過修改變量或信號量告知另一進(jìn)程,它是否可以繼續(xù)執(zhí)行下去,利用生產(chǎn)者——消費(fèi)者算法,生產(chǎn)者進(jìn)程可以傳送一批數(shù)據(jù)給消費(fèi)進(jìn)程,或者說生產(chǎn)者通過緩沖區(qū)與消費(fèi)者進(jìn)行通訊,但P、V操作只能傳遞信號,信號本身不包含任何數(shù)據(jù),而進(jìn)程不當(dāng)還容易導(dǎo)致進(jìn)程死鎖,因此,稱這些同步機(jī)構(gòu)為低級通訊機(jī)構(gòu).2ppt課件進(jìn)程通信的類型高級通訊機(jī)制類型1共享存儲器系統(tǒng)(Shared-MemorySystem)2消息傳遞系統(tǒng)(MessagepassingSystem)3管道(pipe)通信系統(tǒng)4.客戶-服務(wù)器系統(tǒng)(ClientServerSystem)3ppt課件1共享存儲器系統(tǒng)

共享存儲器系統(tǒng):相互通訊的進(jìn)程通過共享數(shù)據(jù)結(jié)構(gòu)和存儲區(qū)進(jìn)行通訊,因而可進(jìn)一步分為:

基于共享數(shù)據(jù)結(jié)構(gòu)的通訊方式;(低效,只適于傳遞少量數(shù)據(jù))

基于共享存儲區(qū)的通訊方式。為了傳送大量數(shù)據(jù),在存儲區(qū)中劃出一塊共享存儲區(qū),諸進(jìn)程可通過對共享存儲區(qū)進(jìn)行讀或?qū)憯?shù)據(jù)實現(xiàn)通訊。

向系統(tǒng)申請共享存儲區(qū)中的一個分區(qū)指定該分區(qū)的關(guān)鍵字如果已經(jīng)給其他進(jìn)程分配了這樣的存儲區(qū),將使用分區(qū)的描述符返回給申請者4申請者將申請到的共享分區(qū)掛到本進(jìn)程上返回4ppt課件2進(jìn)程通信的例――管道管道(pipe)通訊由UNIX首創(chuàng)的一種借助文件和文件系統(tǒng)形成的一種通信方式,。由于其有效性,一些系統(tǒng)繼UNIX之后相繼引入了管道技術(shù),如pc-dos,管道通信將成為進(jìn)程通訊的一種重要方式。消息緩沖通信機(jī)構(gòu)是以內(nèi)存緩沖區(qū)為基礎(chǔ)。管道是以文件系統(tǒng)為基礎(chǔ)。有名管道無名管道5ppt課件

管道是指用于連接一個讀進(jìn)程和一個寫進(jìn)程,以實現(xiàn)它們之間通信的共享方式,又稱pipe文件。向管道(共享文件)提供輸入的發(fā)送進(jìn)程(即寫進(jìn)程),以字符流形式將大量的數(shù)據(jù)送入管道;而接收管道輸出的接收進(jìn)程(即讀進(jìn)程),可從管道接收數(shù)據(jù),由于發(fā)送和接收都是利用管道進(jìn)行通信的,故稱為管道通信。6ppt課件3消息傳遞系統(tǒng)在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換是以消息(message,在計算機(jī)網(wǎng)絡(luò)中又稱報文)為單位。程序員直接利用系統(tǒng)提供的一組通訊命令(原語)來實現(xiàn)通訊。因其實現(xiàn)方法的不同,又可分為

直接通信方式(消息緩沖機(jī)制)間接通信方式(信箱通信方式)7ppt課件

4.客戶-服務(wù)器系統(tǒng)(ClientServerSystem)

用于網(wǎng)絡(luò)環(huán)境的各種應(yīng)用領(lǐng)域:實現(xiàn)方法有三類:套接字遠(yuǎn)程過程調(diào)用遠(yuǎn)程方法調(diào)用8ppt課件(1)套接字(Socket)起源于BSDUNIX,UNIX的網(wǎng)絡(luò)通信接口。最初是用于同一臺主機(jī)的多個進(jìn)程的通信。套接字是通信標(biāo)識類型的數(shù)據(jù)結(jié)構(gòu),包含通信目的地址,端口號,傳輸層協(xié)議,進(jìn)程的網(wǎng)絡(luò)地址及系統(tǒng)調(diào)用。9ppt課件套接字的兩種類型基于文件型同一臺及其環(huán)境下,原理類似于管道基于網(wǎng)絡(luò)型采用非對稱方式通信應(yīng)用于不同主機(jī)的網(wǎng)絡(luò)環(huán)境一對套接字:發(fā)送者、接受者10ppt課件(2)遠(yuǎn)程過程調(diào)用和遠(yuǎn)程方法調(diào)用RPC是遠(yuǎn)程過程調(diào)用(RemoteProcedureCall)的縮寫形式。RPC是指計算機(jī)A上的進(jìn)程,調(diào)用另外一臺計算機(jī)B上的進(jìn)程,其中A上的調(diào)用進(jìn)程被掛起,而B上的被調(diào)用進(jìn)程開始執(zhí)行,當(dāng)值返回給A時,A進(jìn)程繼續(xù)執(zhí)行。調(diào)用方可以通過使用參數(shù)將信息傳送給被調(diào)用方,而后可以通過傳回的結(jié)果得到信息。而這一過程,對于開發(fā)人員來說是透明的。11ppt課件遠(yuǎn)程過程調(diào)用包含如下步驟:客戶過程以正常的方式調(diào)用客戶存根;客戶存根生成一個消息,然后調(diào)用本地操作系統(tǒng);客戶端操作系統(tǒng)將消息發(fā)送給遠(yuǎn)程操作系統(tǒng);遠(yuǎn)程操作系統(tǒng)將消息交給服務(wù)器存根;服務(wù)器存根調(diào)將參數(shù)提取出來,而后調(diào)用服務(wù)器;服務(wù)器執(zhí)行要求的操作,操作完成后將結(jié)果返回給服務(wù)器存根;服務(wù)器存根將結(jié)果打包成一個消息,而后調(diào)用本地操作系統(tǒng);服務(wù)器操作系統(tǒng)將含有結(jié)果的消息發(fā)送給客戶端操作系統(tǒng);客戶端操作系統(tǒng)將消息交給客戶存根;客戶存根將結(jié)果從消息中提取出來,返回給調(diào)用它的客戶存根。12ppt課件2.6.2消息傳遞通信的實現(xiàn)方式直接通信方式:

發(fā)送進(jìn)程直接將消息發(fā)送給接收進(jìn)程,并將它掛在接收進(jìn)程的消息緩沖隊列上。接收進(jìn)程從消息緩沖隊列中取得消息。故稱為消息緩沖機(jī)制。間接通信方式:

發(fā)送進(jìn)程將消息發(fā)送到某個中間實體(一般稱為信箱)中,接收進(jìn)程從中取得消息,所以稱為信箱通訊方式,相應(yīng)地系統(tǒng)稱為電子郵件系統(tǒng)。

13ppt課件消息緩沖機(jī)制(直接通信)發(fā)送進(jìn)程在自己的內(nèi)存空間設(shè)置一個把要發(fā)送的消息填入發(fā)送區(qū)發(fā)送區(qū)接收區(qū)接收進(jìn)程在自己的內(nèi)存空間設(shè)置一個公用緩沖區(qū)兩通信進(jìn)程必須滿足下列條件在發(fā)送進(jìn)程把消息寫入緩沖區(qū)和把緩沖區(qū)掛入消息隊列時,應(yīng)禁止其他進(jìn)程對緩沖區(qū)消息隊列的訪問。同理,接收進(jìn)程取消息時也禁止其他進(jìn)程訪問緩沖區(qū)消息隊列2當(dāng)緩沖區(qū)中沒有信息存在時,接收進(jìn)程不能接收到任何消息14ppt課件

消息的一般形式

消息緩沖通訊技術(shù)由Hansen首先提出的,基本思想是:根據(jù)“生產(chǎn)者——消費(fèi)者關(guān)系”原理,利用公用消息緩沖區(qū)實現(xiàn)進(jìn)程間的信息交換。發(fā)送進(jìn)程先申請一個消息緩沖區(qū),寫入消息后把該消息緩沖區(qū)送入接收進(jìn)程的消息隊列中,通知接收進(jìn)程。接收進(jìn)程從消息隊列中摘下一消息緩沖區(qū),取出所需要的信息。

15ppt課件消息的一般形式:

發(fā)送消息的進(jìn)程名接收消息的進(jìn)程名消息長度消息正文

16ppt課件

消息緩沖通訊機(jī)構(gòu)包含下列內(nèi)容:消息緩沖區(qū)是一個數(shù)據(jù)結(jié)構(gòu)用Pascal描述為:

typemsg=recorodsender:消息發(fā)送者名

size:消息長度

Text:消息正文

Next:下一個消息的鏈指針17ppt課件

發(fā)送進(jìn)程和接收進(jìn)程發(fā)送原語Send()和接收原語receive()設(shè)公用信號量mutex,并置初值為1設(shè)SM為接收進(jìn)程的私用信號量,置初值為0Send(m)begin

向系統(tǒng)申請一個消息緩沖區(qū)

P(mutex)使用公用緩沖區(qū)將發(fā)送區(qū)消息m送入新申請的消息緩沖區(qū)把消息緩沖區(qū)掛入接收進(jìn)程的消息隊列

V(mutex)釋放緩沖區(qū)

V(SM)向接收進(jìn)程發(fā)送消息

endReceive(m)beginP(SM)等待接的消息的個數(shù)

P(mutex)使用公用緩沖區(qū)摘下消息隊列中的消息m

將消息隊列m從緩沖區(qū)復(fù)制到接收區(qū)釋放緩沖區(qū)

V(mutex)釋放公用緩沖區(qū)

end18ppt課件信箱通信(間接通信)1.

信(郵)箱信箱是一種數(shù)據(jù)結(jié)構(gòu),邏輯上它分成兩部分:信箱頭和由若干格子組成的信箱體。信箱中每個格子存放一封信,信箱中格子的數(shù)目和每格的大小在創(chuàng)建信箱時確定。進(jìn)程間的通信要滿足如下條件:

a.發(fā)送進(jìn)程發(fā)送消息時,郵箱中至少要有一個空格存放該消息。

b.接收進(jìn)程接收消息時,郵箱中至少要有一個消息存在。19ppt課件發(fā)送進(jìn)程A

郵箱頭

…郵箱體接收進(jìn)程BDeposite(m)Remove(m)

郵箱通信結(jié)構(gòu)郵箱頭:郵箱名稱、郵箱大小、擁有該郵箱的進(jìn)程名郵箱體:存放消息使用郵箱的時候應(yīng)該滿足:發(fā)送進(jìn)程發(fā)送消息時,郵箱中至少要有一個空格能存放該消息接收進(jìn)程接收消息時,郵箱中至少有一個消息存在信箱結(jié)構(gòu)20ppt課件

信箱可由OS創(chuàng)建,也可由用戶進(jìn)程創(chuàng)建,創(chuàng)建者是信箱的擁有者,據(jù)此可把信箱分為:私用信箱,公用信箱,共享信箱。在利用信箱通信時,在發(fā)送進(jìn)程和接收進(jìn)程之間,存在著四種關(guān)系:一對一關(guān)系:即可以為發(fā)送進(jìn)程和接收進(jìn)程建立一條專用的通信鏈路;多對一關(guān)系:允許提供服務(wù)的進(jìn)程與多個用戶進(jìn)程進(jìn)行交互,也稱客戶/服務(wù)器交互;一對多關(guān)系:允許一個發(fā)送進(jìn)程與多個接收進(jìn)程交互,使發(fā)送進(jìn)程用廣播的形式,發(fā)送消息;多對多關(guān)系:允許建立一個公用信箱,讓多個進(jìn)程都能向信箱投遞消息,也可取走屬于自己的消息。

21ppt課件

該發(fā)送進(jìn)程調(diào)用過程deposit(m)將消息發(fā)送到郵箱,接收進(jìn)程調(diào)用過程remove(m),將消息m從郵箱中取出。

Fromnum—發(fā)送進(jìn)程的私用信號量。記錄信箱空格,初值為nMesnum—接收進(jìn)程的私用信號量。記錄信箱有消息的個數(shù)初值為022ppt課件Fromnum記錄信箱空格,初值為nMesnum記錄信箱有消息的個數(shù)初值為0Deposit(m);BeginlocalxP(fromnum)空格數(shù)減1

選擇空格

溫馨提示

  • 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

提交評論