1. 程式人生 > >Linux程序全解11——程序間通訊(IPC)概述

Linux程序全解11——程序間通訊(IPC)概述

以下內容源於朱有鵬《物聯網大講堂》的課程學習整理,如有侵權,請告知刪除。

1、為什麼需要程序間通訊?

(1)程序間通訊(IPC)

  • 指的是2個任意程序之間的通訊。

(2)同一個程序在一個地址空間中

  • 同一個程序的不同模組(不同函式、不同檔案)之間的通訊很簡單
  • 很多時候都是全域性變數、也可以通過函式形參實參傳遞)。

(3)2個不同的程序處於不同的地址空間,因此要互相通訊很難。

2、什麼樣的程式設計需要程序間通訊

(1)99%的程式不需要考慮程序間通訊
  • 因為大部分程式都是單程序的(可以多執行緒);

(2)複雜、大型的程式

  • 因為設計的需要,必須設計成多程序程式(即設計成(多個程序同時工作來完成任務
    模式
    ),常見的如GUI、伺服器。

(3)結論:IPC技術在一般中小型程式中用不到,在大型程式中才會用到。

3、linux核心提供多種程序間通訊機制

(1)無名管道和有名管道

(2)SystemV IPC:訊號量、訊息佇列、共享記憶體

(3)Socket域套接字

(4)訊號

4、IPC的應用範圍

(1)日常使用少,只有大型程式才能用上;

(2)更為複雜,屬於linux應用程式設計中難度最大的部分;

(3)細節多;

(4)面試較少涉及,對找工作幫助不大;

(5)建議後續深入學習時再來實際寫程式碼詳細探討