進程間通訊的幾種方式

進程通訊是指進程之間的信息交換html

通訊類型

  1. 共享存儲器系統
    1. 基於共享數據結構的通訊方式
      (僅適用於傳遞相對少許的數據,通訊效率低,屬於低級通訊)
    2. 基於共享存儲區的通訊方式
  2. 管道通訊系統
    管道是指用於鏈接一個讀進程和一個寫進程以實現它們之間通訊的一個共享文件(pipe文件)
    管道機制須要提供一下幾點的協調能力
    1. 互斥,即當一個進程正在對pipe執行讀/寫操做時,其它進程必須等待
    2. 同步,當一個進程將必定數量的數據寫入,而後就去睡眠等待,直到讀進程將數據取走,再去喚醒。讀進程與之相似
    3. 肯定對方是否存在
  3. 消息傳遞系統
    1. 直接通訊方式
      發送進程利用OS所提供的發送原語直接把消息發給目標進程
    2. 間接通訊方式
      發送和接收進程都經過共享實體(郵箱)的方式進行消息的發送和接收
  4. 客戶機服務器系統
    1. 套接字 -- 通訊標識型的數據結構是進程通訊和網絡通訊的基本構件
      1. 基於文件型的 (當通訊進程都在同一臺服務器中)其原理相似於管道
      2. 基於網絡型的(非對稱方式通訊,發送者須要提供接收者命名。通訊雙方的進程運行在不一樣主機環境下被分配了一對套接字,一個屬於發送進程,一個屬於接收進程)
    2. 遠程過程調用和遠程方法調用
      詳見:
      https://baike.baidu.com/item/遠程過程調用協議/6893245?fr=aladdin

注:本文參考操做系統課本,只是一些概念性的知識。
如需轉載請註明出處:http://www.javashuo.com/article/p-xmsdfrhv-go.html服務器

相關文章
相關標籤/搜索