那曲檬骨新材料有限公司

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官网充值| 三元玄空24山坐向| 澳门百家乐官网公试打法| 大发888怎么下载| 百家乐官网开户最快的平台是哪家 | 百家乐官网推锅| 南木林县| 电子百家乐打法| 深圳百家乐官网的玩法技巧和规则 | 博彩百家乐官网软件| 大嘴棋牌手机版| 百家乐投注心得| 百家乐官网平台要多少钱| 利来网站| 太阳城线上娱乐城| 利博百家乐破解| 百家乐八卦投注法| 永利博百家乐官网游戏| 大发888 大发888官网| 娱乐百家乐可以代理吗| 在线百家乐游戏软件| 百家乐扑克桌布| 回力百家乐官网的玩法技巧和规则| 青神县| 永胜县| 娱乐| 澳门百家乐官网上下限| 威尼斯人娱乐城金杯娱乐城| 打百家乐最好办法| 百家乐视频游戏客服| 百家乐是不是有假| 做生意属虎的朝向| 澳门百家乐官网怎赌才能赚钱| 百家乐官网的庄闲概率| 在百家乐官网二庄两闲揽的概率 | 百家乐马渚| 百家乐官网tt娱乐场开户注册| 百家乐官网六手变化混合赢家打法| 真人百家乐官网代理分成|