進程通信是指進程之間的信息交換
通信類型
- 共享存儲器系統
- 基於共享數據結構的通信方式
(僅適用於傳遞相對少量的數據,通信效率低,屬於低級通信) - 基於共享存儲區的通信方式
- 基於共享數據結構的通信方式
- 管道通信系統
管道是指用於連接一個讀進程和一個寫進程以實現它們之間通信的一個共享文件(pipe文件)
管道機制需要提供一下幾點的協調能力- 互斥,即當一個進程正在對pipe執行讀/寫操作時,其它進程必須等待
- 同步,當一個進程將一定數量的數據寫入,然后就去睡眠等待,直到讀進程將數據取走,再去喚醒。讀進程與之類似
- 確定對方是否存在
- 消息傳遞系統
- 直接通信方式
發送進程利用OS所提供的發送原語直接把消息發給目標進程 - 間接通信方式
發送和接收進程都通過共享實體(郵箱)的方式進行消息的發送和接收
- 直接通信方式
- 客戶機服務器系統
- 套接字 -- 通信標識型的數據結構是進程通信和網絡通信的基本構件
- 基於文件型的 (當通信進程都在同一台服務器中)其原理類似於管道
- 基於網絡型的(非對稱方式通信,發送者需要提供接收者命名。通信雙方的進程運行在不同主機環境下被分配了一對套接字,一個屬於發送進程,一個屬於接收進程)
- 遠程過程調用和遠程方法調用
詳見:
https://baike.baidu.com/item/遠程過程調用協議/6893245?fr=aladdin
- 套接字 -- 通信標識型的數據結構是進程通信和網絡通信的基本構件
注:本文參考操作系統課本,只是一些概念性的知識。
如需轉載請注明出處:https://www.cnblogs.com/zhuchenglin/p/9522192.html