(02335)網(wǎng)絡操作系統(tǒng)-第3章-網(wǎng)絡操作系統(tǒng)的通信_第1頁
(02335)網(wǎng)絡操作系統(tǒng)-第3章-網(wǎng)絡操作系統(tǒng)的通信_第2頁
(02335)網(wǎng)絡操作系統(tǒng)-第3章-網(wǎng)絡操作系統(tǒng)的通信_第3頁
(02335)網(wǎng)絡操作系統(tǒng)-第3章-網(wǎng)絡操作系統(tǒng)的通信_第4頁
(02335)網(wǎng)絡操作系統(tǒng)-第3章-網(wǎng)絡操作系統(tǒng)的通信_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第3章 網(wǎng)絡操作系統(tǒng)的通信在操作系統(tǒng)中,通信分為低級通信和高級通信,低級通信一般那用于本機內進程之間,而高級通信不僅適用于本機,還適用于網(wǎng)絡。低級通信一般包括信號、信號量等,他們都是采用共享變量的方式來實現(xiàn)的。高級通信有消息隊列、共享內存、套接字和郵箱通信等。網(wǎng)絡上主要使用高級通信技術??己藘热莨蚕碜兞客ㄐ欧绞礁拍钕鬟f通信方式概念遠程過程調用的概念各種通信機制的特點及比較消息傳遞通信機制的算法實現(xiàn)考核知識點-識記進程間低級通信方式實現(xiàn)通信原語的三種類型消息傳遞的通信方式遠程過程調用以及其他通信的概念各種通信機制的原理考核知識點-領會客戶機/服務器進程通信模式進程間通信的原語,各類信號量的意

2、義客戶機與服務器之間的通信協(xié)議同步原語與異步原語;緩沖原語與非緩沖原語;可靠原語與非可靠原語單機環(huán)境下過程調用的方法及參數(shù)傳遞機制遠程過程調用的實現(xiàn)方式組通信及其實現(xiàn)方式考核知識點-應用消息緩沖通信的算法實現(xiàn)理解信箱的數(shù)據(jù)結構,信箱通信的工作過程,收發(fā)的算法實現(xiàn)客戶機與服務器之間通信的算法實現(xiàn)流媒體廣播的應用3.1進程間通信的基本方式進程間低級通信消息緩沖通信信箱通信進程間低級通信進程間的低級通信方式以信號量為主,通過兩個P、V原語對信號量進行操作。P、V操作是一種很有效的進程同步機制。用信號量可以實現(xiàn)互斥和同步用信號量實現(xiàn)互斥方法先為臨界資源設置一個互斥信號量,其初值為1,在每個進程中,將臨

3、界區(qū)代碼置于P(S)和V(S)原語之間。在運行過程中,必須成對使用P和V原語,缺少P原語,則不能保證互斥訪問;缺少V原語,則不能在使用臨界資源之后將其釋放。P、V原語不能顛倒、重復或遺漏Type def semaphoreSemaphore mutex =1Void booking (Ci,No)Int temp =0P(mutex ) temp =read (NO);If(temp = 0)V(mutex); Return(0);Else temp = temp-1; write(temp,No);V(mutex);用信號量實現(xiàn)同步方法先為進程設置一個同步信號量S,其初值為0,在進程需要同步

4、的地方,分別插入P(S)原語和V(S)原語。一個進程使用P原語是,則另一個進程往往使用V原語與之對應。P、V原語應對應并分散在不同進程之間。Typedef int semaphoreSemaphore mutex =1Semaphore tickers=10Void standby_passenger(Pi)While(1)P(tickers)P(mutex); sell_ticket(Pi)V(mutex)Void refund_ticket(Pj)P(mutex) refund_ticket(Pj)V(mutex)V(tickers)消息緩沖通信消息緩沖機制的通信技術是一種高級通信機制,其

5、基本思想是根據(jù)“生產者-消費者”的基本原理,利用公共消息緩沖區(qū)實現(xiàn)進程之間和各結點機之間的信息交換。消息緩沖機制通信的基本方法一般由發(fā)送者調用消息發(fā)送原語send(receiver,a),而接收者調用消息接收原語receive(b),其中參數(shù)a和b分別表示發(fā)送進程中準備發(fā)送的消息在內存區(qū)的首地址和接收進程用于存放收到的消息在內存的首地址。在發(fā)送者和接收者對內存消息區(qū)訪問時需要遵循互斥約束。消息緩沖通信的基本原理通常由操作系統(tǒng)在系統(tǒng)空間維護一組緩沖區(qū),并封裝好通信原語send和receive。當發(fā)送者要發(fā)信息時,執(zhí)行send系統(tǒng)調用命令,產生自愿性中斷進入操作系統(tǒng)核心。此時,操作系統(tǒng)為發(fā)送者分配

6、一個空緩沖區(qū),并將所發(fā)送的消息內容從發(fā)送者空間復制到該緩沖區(qū)中,然后將此緩沖區(qū)連接到接收者的消息隊列末尾。接收者執(zhí)行receive系統(tǒng)調用命令時,也產生自愿性中斷,進入操作系統(tǒng)核心,操作系統(tǒng)將載有消息的緩沖區(qū)從消息隊列中取出,并將消息內容復制到接收者空間中,然后收回空閑緩沖區(qū),排列到空閑緩沖區(qū)末尾。信箱通信信箱通信也稱為郵箱通信,是一種高級通信,也是間接通信。信箱是一種數(shù)據(jù)結構,邏輯上分為兩個部分:信箱頭和若干格子組成的信箱體。信箱頭信箱體進程間信箱通信要滿足的條件發(fā)送者發(fā)送消息時,信箱中至少要有一個空格存放該信件。接收者接收消息時,信箱中至少有一個信件存在。信箱通信時發(fā)送者和接收者之間存在的

7、四種關系一對一關系:可以為發(fā)送者和接收者建立一條專用的通信鏈路多對一關系:允許多個發(fā)送者與單個接收者進行交互,也稱客戶機/服務器交互一對多關系:允許一個發(fā)送者與多個接收者交互,使發(fā)送者用廣播的形式發(fā)送信件多對多關系:允許建立一個公用信箱,讓多個發(fā)送者都能向信箱投遞消息,多個接收者也可以取走屬于自己的信件。3.2基于消息傳遞的通信方式消息傳遞的通信機制客戶機/服務器模式客戶機/服務器間的通信進程間通信的原語通信協(xié)議消息傳遞的通信機制各結點主機上的通訊之間普遍采用消息傳遞的通訊方式進行通訊一個進程發(fā)送消息 另外一個進程接受消息客戶/服務器模式工作過程 采用一種簡單的無連接的請求應答協(xié)議,客戶端發(fā)送

8、一個請求,服務器完成請求后返回計算結果或者錯誤信息??蛻?服務器的通訊通訊過程1 服務端: 獲得本地計算機IP地址 創(chuàng)建通訊端口 打開監(jiān)聽 等待客戶機連接2 服務端數(shù)據(jù)處理 接收到客戶機發(fā)送的請求,處理請求,返回結果3 客戶機 建立與服務器的通訊連接,連接成功后可以向服務發(fā)送消息,等待結果客戶/服務器的通訊Void Server()IpAddress=GetIP()LisSocket= NewSocket(AddreeFamily,InterNetwork,sockettype,Stream,ProtocolType,Tcp)While(true)Newsocket.receive(byteM

9、essage)處理消息NewSocket.send(byteDate)進程間通信的原語通信原語是按照通信協(xié)議的規(guī)定建立的,通信原語構成了網(wǎng)絡操作系統(tǒng)的通信機制。原語即是原子操作,不可分割,是指系統(tǒng)的一組指令集合,該組指令在執(zhí)行過程中不可被中斷,這樣的操作方式可以保證指令執(zhí)行的完整性。通信協(xié)議網(wǎng)絡協(xié)議也稱為網(wǎng)絡通信協(xié)議,就是對計算機之間通信的信息格式、能被收/發(fā)雙方接收的傳送信息內容的一組定義。網(wǎng)絡協(xié)議是一種特殊的軟件,是計算機網(wǎng)絡實現(xiàn)其功能的最基本的機制。網(wǎng)絡協(xié)議的本質是通信規(guī)則,即各種硬件和軟件必須遵循的共同守則。OSI參考模型各層中的協(xié)議物理層中的物理接口通信協(xié)議(RS-232C、RS-4

10、49、V.35等)數(shù)據(jù)鏈路層的數(shù)據(jù)鏈接協(xié)議(CSMA/CD、SDLC、HDLC等)網(wǎng)絡層的路由層協(xié)議(IP、RIP、OSPF、IGRP等)傳輸層的傳輸控制協(xié)議(TCP、FTP、TFTP等)應用層(POP3、SMTP、SNMP、DNS等)3.3通信原語的設計通信原語的類型同步原語和異步原語緩沖原語和非緩沖原語可靠原語和非可靠原語同步原語當一個進程調用一個send原語時,在消息開始發(fā)送后,發(fā)送進程便處于阻塞狀態(tài),直至消息完全發(fā)送完畢,send原語的后繼語句才能繼續(xù)執(zhí)行。當一個進程調用一個receive原語時,并不立即返回控制,而是等到把消息實際接收下來,并把它放入指定的接收區(qū),才返回控制,繼續(xù)執(zhí)行

11、該原語的后繼指令。在這段時間它一直處于阻塞狀態(tài)。上述的send和receive被稱為同步通信原語或阻塞通信原語。 同步原語的優(yōu)缺點優(yōu)點 消息的傳遞不過多的占用處理時間缺點 造成死鎖異步原語如果一個send原語是非阻塞的,它在消息實際發(fā)送之前,就立即把控制返回給調用者。也就是說,發(fā)送進程在發(fā)送消息時并不進入阻塞狀態(tài),它不等消息發(fā)送完就繼續(xù)執(zhí)行其后繼語句。先查到接收者,不管找到還是未找到,無論信息是否發(fā)出,異步原語都返回執(zhí)行其他程序 異步原語的有缺點優(yōu)點 解決了同步原語的死鎖問題若先前的數(shù)據(jù)沒有發(fā)送成功,發(fā)送者又將新的消息送入緩沖區(qū),就會覆蓋原有數(shù)據(jù)同步原語,阻塞的發(fā)送和接收;有死鎖和饑餓的可能帶

12、復制的異步發(fā)送原語和帶測試的異步發(fā)送原語,非阻塞,并發(fā)性高;系統(tǒng)開銷大帶中斷的異步原語,效率高,并發(fā)度大;不利于調試緩沖原語和非緩沖原語服務進程在內核中開辟一塊緩沖區(qū)用來存放發(fā)送的信息。緩沖通信原語與非緩沖通信原語的根本區(qū)別在于是否在內核存在有一塊內存用來存放過早到達的信息,如果有則是緩沖原語,否則就是非緩沖原語。緩沖區(qū)原語工作過程讓服務進程在內核中開辟一塊緩沖區(qū),對傳送來的消息保留一段時間,以期望一個合適的接收者很快的調用接收原語并取走信息。一個不期而遇的消息到達時,立即啟動計時器開始計時,如果計時器到達某個規(guī)定值時仍無接收者出現(xiàn),將信息丟棄。可靠原語和非可靠原語不能保證發(fā)送者發(fā)送的信息是完

13、整可靠的,也不能保證信息一定會送達接收者手里的這種通信原語稱為非可靠原語。發(fā)送者發(fā)出的信息保證會送達接收者手里,發(fā)出去的信息有回執(zhí)的這種通信原語稱為可靠原語遠程過程調用在網(wǎng)絡系統(tǒng)中,不同結點主機之間采用過程調用的方式進行通信,稱之為遠程過程調用。遠程過程調用使用的是客戶機/服務器模式,請求進程是客戶機,而服務提供進程則是服務器。遠程過程調用是在原來消息傳遞通信原語的基礎上發(fā)展起來的。RPC跨越了網(wǎng)絡通信的開發(fā)系統(tǒng)互連(OSI)模型中的傳輸層與應用層。遠程過程調用與通信原語遠程調用的參數(shù)傳遞在異構平臺之間的通用性能不能滿足用戶的要求。由于遠程過程調用設計為請求/應答模式,因此不能在一次調用過程中

14、多次接收中間結果,缺乏靈活性遠程調用不用傳送大量的數(shù)據(jù)遠程過程調用優(yōu)點 使用方便消息傳遞 較大的靈活性,用戶可以組織組通信組是定義為在某一個系統(tǒng)中相互有關系的進程的集合。當一個信息發(fā)給這個組時,該組的所有成員都可以接收。組通信實現(xiàn)了一對多的通信形式。組的建立是動態(tài)的。組通信的實現(xiàn)一般需要網(wǎng)絡硬件的支持。網(wǎng)絡多播技術當一個信息按規(guī)定地址發(fā)送時,所有的組成員都可以接收,這一技術稱為網(wǎng)絡多播技術,也稱多址通信。用多播式實現(xiàn)組通信是很直接的,只需要給每一組分配一個不同的多播地址即可。廣播技術客戶機的消息發(fā)送到網(wǎng)絡上所有的結點上,并注明是廣播信息。每個結點對收到的廣播信息都需要檢查一下,看這個信息是否是發(fā)給自己的,如果不是,則將信息拋棄。流媒體數(shù)據(jù)廣播流媒體是指在網(wǎng)絡中使用流式傳輸技術的連續(xù)時基媒體。流媒體傳輸技術就是把連續(xù)的聲音和圖形信息經(jīng)過壓縮處理后放到服務

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論