衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

進程間通信的機制有哪些

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-21 11:23 ? 次閱讀

進程間通信(interprocess communication,簡稱IPC)指兩個進程之間的通信。系統中的每一個進程都有各自的地址空間,并且相互獨立、隔離,每個進程都處于自己的地址空間中,因此相互通信比較難,Linux內核提供了多種進程間通信的機制。

同一個進程的不同模塊(譬如不同的函數)之間進行通信都是很簡單的,譬如使用全局變量等。

通常情況下,大部分的程序是不要考慮進程間通信的,因為大家所接觸絕大部分程序都是單進程程序(可以有多個線程),對于一些復雜、大型的應用程序,則會根據實際需要將其設計成多進程程序。

進程間通信的機制有哪些?

Linux 內核提供了多種 IPC 機制,基本是從 UNIX 系統繼承而來,而對 UNIX 發展做出重大貢獻的兩大主力 AT&T的貝爾實驗室及 BSD(加州大學伯克利分校的伯克利軟件發布中心)在進程間通信方面的側重點有所不同。

前者對 UNIX 早期的進程間通信手段進行了系統的改進和擴充,形成了“System VIPC”,通信進程局限在單個計算機內;后者則跳過了該限制,形成了基于套接字(Socket,也就是網絡)的進程間通信機制。Linux則把兩者繼承了下來,如下如所示:

圖片

早期的 UNIX IPC 包括:管道、FIFO、信號;System V IPC 包括:System V 信號量、System V消隊列、SystemV 共享內存;上圖中還出現了 POSIX IPC,事實上,較早的 System V IPC 存在著一些不足之處,而 POSIX IPC 則是在 System VIPC 的基礎上進行改進所形成的,彌補了 System V IPC 的一些不足之處。POSIX IPC 包括:POSIX 信號量、POSIX消息隊列、POSIX 共享內存。

總結如下:

UNIX IPC:管道、FIFO、信號;

System V IPC:信號量、消息隊列、共享內存;

POSIX IPC:信號量、消息隊列、共享內存;

Socket IPC:基于 Socket 進程間通信。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6070

    瀏覽量

    136423
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210387
  • IPC
    IPC
    +關注

    關注

    3

    文章

    352

    瀏覽量

    52068
收藏 人收藏

    評論

    相關推薦

    Linux下進程通信方式-管道

    Linux下進程通信方式-管道分享到: 本文關鍵字: linux 管道通信,linux 進程通信
    發表于 08-29 15:29

    Linux下進程通信

    華清遠見嵌入式linux學習資料《Linux下進程通信》,通過前面的學習,讀者已經知道了進程是一個程序的一次執行,是系統資源分配的最小單元。這里所說的
    發表于 09-04 10:07

    進程通信

    相信不管是學習嵌入式的還是單片機的進程通信都是需要學習的,找到的這個資料不錯,至于是哪的還是老規矩 我就不說了避嫌 想看的自己看
    發表于 11-14 16:52

    進程通信的分類及機制中的數據結構

      進程通信就是在不同進程之間傳播或交換信息,進程控制信息的交換稱為低級
    發表于 08-05 08:09

    進程通信的方式哪些?

    進程通信的方式哪些?
    發表于 12-24 06:46

    怎樣通過匿名管道去實現進程通信

    進程通信是指什么?怎樣通過匿名管道去實現進程通信呢?哪些步驟?
    發表于 12-24 06:45

    哪些方式可以實現Linux系統下的進程通信

    哪些方式可以實現Linux系統下的進程通信進程與線程哪些不同之處呢?
    發表于 12-24 06:38

    進程通信之Linux下進程通信概述

    人們現在廣泛使用的手機等方式。本章就是講述如何建立這些不同的通話方式,就像人們多種通信方式一樣。 Linux下的進程通信手段基本上是從UNIX平臺上的
    發表于 10-18 16:21 ?0次下載

    進程與線程通信方式

    進程通信則不同,它的數據空間的獨立性決定了它的通信相對比較復雜,需要通過操作系統。以前進程
    的頭像 發表于 04-09 15:58 ?8971次閱讀
    <b class='flag-5'>進程</b><b class='flag-5'>間</b>與線程<b class='flag-5'>間</b>的<b class='flag-5'>通信</b>方式

    Linux進程通信

    一、進程通信概述進程通信有如下一些目的:A、數據傳輸:一個進程需要將它的數據發
    發表于 04-02 14:46 ?522次閱讀

    常見的進程通信方式

    關系的進程間使用。進程的親緣關系,通常指父子進程關系。 有名管道: 有名管道也是,半雙工的通信方式,但是它允許無親緣關系
    的頭像 發表于 10-08 15:48 ?1394次閱讀
    常見的<b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>方式

    進程通信方式總結

    進程通信(IPC): 進程通信的方式很多,這里
    的頭像 發表于 11-09 09:25 ?813次閱讀
    <b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>方式總結

    如何實現一套linux進程通信機制

    我們知道linux的進程通信的組件管道,消息隊列,socket, 信號量,共享內存等。但是我們如果自己實現一套進程
    的頭像 發表于 11-10 14:56 ?682次閱讀
    如何實現一套linux<b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的<b class='flag-5'>機制</b>

    進程通信的原理

    一.為什么進程需要通信? 1).數據傳輸 一個進程需要將它的數據發送給另一個進程; 2).資源共享 多個
    的頭像 發表于 11-10 17:05 ?1223次閱讀
    <b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的原理

    進程通信的消息隊列介紹

    消息隊列是一種非常常見的進程通信方式。
    的頭像 發表于 04-08 17:27 ?346次閱讀
    棋牌赚钱| 大发888更名网址62| 百家乐连跳规律| 百家乐官网赌马| 百家乐官网tt娱乐| 娱乐城注册送白菜| 大都会百家乐的玩法技巧和规则| 金臂百家乐开户送彩金| 无锡百家乐官网的玩法技巧和规则| 百家乐官网视频游戏界面| 百加乐牌| 星空棋牌官方下载| 威尼斯人娱乐城吃饭| 沙龙百家乐娱乐| 赌百家乐的心得体会| 汇丰百家乐官网的玩法技巧和规则 | bet365| 皇室百家乐娱乐城| 新百家乐官网的玩法技巧和规则 | 百家乐换人| 百家乐官网资金注码| 在线棋牌游戏| 澳门足球博彩网站| 九乐棋牌官网| 大发888下载安装| 百家乐游戏唯一官网站| 百家乐群html| 广州百家乐娱乐场| 百家乐视频下载| 扑克百家乐官网麻将筹码防伪| 线上百家乐是如何作弊| 百家乐巴厘岛平台| 24楼层风水好吗| 夜总会百家乐官网的玩法技巧和规则 | 百家乐5式直缆投注法| 网上百家乐真的假的| 金赞百家乐现金网| 百家乐赌场国际| 百家乐接线玩法| 百家乐下注平台| 游戏机百家乐作弊|