Linux程序全解11——程序間通訊(IPC)概述
阿新 • • 發佈:2019-02-05
以下內容源於朱有鵬《物聯網大講堂》的課程學習整理,如有侵權,請告知刪除。
1、為什麼需要程序間通訊?
(1)程序間通訊(IPC)
- 指的是2個任意程序之間的通訊。
(2)同一個程序在一個地址空間中
- 同一個程序的不同模組(不同函式、不同檔案)之間的通訊很簡單
- 很多時候都是全域性變數、也可以通過函式形參實參傳遞)。
(3)2個不同的程序處於不同的地址空間,因此要互相通訊很難。
2、什麼樣的程式設計需要程序間通訊
(1)99%的程式不需要考慮程序間通訊- 因為大部分程式都是單程序的(可以多執行緒);
(2)複雜、大型的程式
- 因為設計的需要,必須設計成多程序程式(即設計成(多個程序同時工作來完成任務
(3)結論:IPC技術在一般中小型程式中用不到,在大型程式中才會用到。
3、linux核心提供多種的程序間通訊機制
(1)無名管道和有名管道(2)SystemV IPC:訊號量、訊息佇列、共享記憶體
(3)Socket域套接字
(4)訊號
4、IPC的應用範圍
(1)日常使用少,只有大型程式才能用上;(2)更為複雜,屬於linux應用程式設計中難度最大的部分;
(3)細節多;
(4)面試較少涉及,對找工作幫助不大;
(5)建議後續深入學習時再來實際寫程式碼詳細探討