進程管理(4)

進程通信
進程間相互傳遞信息的過程

低級通信
效率低,通信對用戶不透明。

高級通信
適用於大批量數據傳達
(不是爲了控制速度,爲了在進程間傳輸大批量數據)

消息通信機制
進程間的數據交換以格式化的信息爲單位,在計算機網絡中,又把這種消息叫做報文。(利用一組通信原語,實現大量數據的傳遞,通信對用戶透明。)
實現原理
消息通信機構管理一組空閒緩衝區的消息。
進程A向進程B發送消息的時候,申請一個緩衝區,填入有關數據後,發送信號給B進程。
進程B讀取數據並釋放消息緩衝區。
通信過程:
發送進程→開闢一個發送緩衝區 →填入消息及控制信息→ 調用發送消息系統,spn-pir指針指向緩衝區首地址。
接收進程 →開闢一個接收緩衝區 → 調用接收消息
系統。
消息一般形式有發送進程名,接收進程名,數據,有關數據的操作。
實現消息通信的兩種方法:
直接通信:
進程間直接發送消息,一方發送,一方接收,沒有中間環節。兩個原語實現:Send(Receiver,message); Receive(Sender,message);

管道通信
用一個共享文件方式連接一個讀進程和寫進程,以實現他們之間通信。
先進先出,一個進程不能同時讀寫,寫滿則發送進程阻塞,讀空則接收進程阻塞。

郵箱通信
間接通信方式,可滿足實時與非實時通信。
發送進程申請一個與接收進程連接的郵箱,實現收,發進城之間的信息交換。郵箱相當於計算機網絡中的數據報。
特點:
郵箱爲空的時候才能發,有數據的時候才能接收。
收發進程之間至少存在一個郵箱。
類別:
私用信箱:有進程創建,爲該進程的一部分,進程結束,郵箱消失。可採用單向通信鏈路的信箱來實現。
公用信箱:它由操作系統創建,爲系統中所有的核準進程使用。雙向通信。
共享信箱
一對一,多對一,一對多,多對多。
通信鏈路——爲使在發、收進程之間通信,必須在兩者之間建立一條通信鏈路。(進程自主創建;系統自動創建)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章