那曲檬骨新材料有限公司

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

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

3天內不再提示

進程間通信的幾種方法

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

1、管道和 FIFO

管道是 UNIX 系統上最古老的 IPC 方法,它在 1970 年 UNIX 的第三個版本上就出現了。把一個進程連接到另一個進程的數據流稱為管道,管道被抽象成一個文件。

管道包括三種:

普通管道 pipe:通常有兩種限制,一是單工,數據只能單向傳輸;二是只能在父子或者兄弟進程間使用;

流管道 s_pipe:去除了普通管道的第一種限制,為半雙工,可以雙向傳輸;只能在父子或兄弟進程間使用;

有名管道 name_pipe(FIFO):去除了普通管道的第二種限制,并且允許在不相關(不是父子或兄弟關系)的進程間進行通訊。

2、信號

信號用于通知接收信號的進程有某種事件發生,所以可用于進程間通信;除了用于進程間通信之外,進程還可以發送信號給進程本身。

3、消息隊列

消息隊列是消息的鏈表,存放在內核中并由消息隊列標識符標識,消息隊列克服了信號傳遞信息少、管道只能承載無格式字節流以及緩沖區大小受限等缺陷。消息隊列包括 POSIX 消息隊列和 System V 消息隊列。

消息隊列是 UNIX 下不同進程之間實現共享資源的一種機制,UNIX 允許不同進程將格式化的數據流以消息隊列形式發送給任意進程,有足夠權限的進程可以向隊列中添加消息,被賦予讀權限的進程則可以讀走隊列中的消息。

4、信號量

信號量是一個計數器,與其它進程間通信方式不大相同,它主要用于控制多個進程間或一個進程內的多個線程間對共享資源的訪問,相當于內存中的標志,進程可以根據它判定是否能夠訪問某些共享資源,同時,進程也可以修改該標志,除了用于共享資源的訪問控制外,還可用于進程同步。

它常作為一種鎖機制,防止某進程在訪問資源時其它進程也訪問該資源,因此,主要作為進程間以及同一個進程內不同線程之間的同步手段。Linux 提供了一組精心設計的信號量接口來對信號量進行操作,它們聲明在頭文件 sys/sem.h 中。

5、共享內存

共享內存就是映射一段能被其它進程所訪問的內存,這段共享內存由一個進程創建,但其它的多個進程都可以訪問,使得多個進程可以訪問同一塊內存空間。

共享內存是最快的 IPC 方式,它是針對其它進程間通信方式運行效率低而專門設計的,它往往與其它通信機制,譬如結合信號量來使用,以實現進程間的同步和通信。

6、套接字(Socket)

Socket 是一種 IPC 方法,是基于網絡的 IPC 方法,允許位于同一主機(計算機)或使用網絡連接起來的不同主機上的應用程序之間交換數據,說白了就是網絡通信。

在一個典型的客戶端/服務器場景中,應用程序使用 socket 進行通信的方式如下:

各個應用程序創建一個 socket。socket 是一個允許通信的“設備”,兩個應用程序都需要用到它。

服務器將自己的 socket 綁定到一個眾所周知的地址上使得客戶端能夠定位到它的位置。

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

    關注

    87

    文章

    11345

    瀏覽量

    210409
  • 進程間通信
    +關注

    關注

    0

    文章

    16

    瀏覽量

    2456
收藏 人收藏

    評論

    相關推薦

    Linux下進程通信方式-管道

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

    Linux下進程通信

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

    常用的進程通信主要有哪幾種方式

    ;常用的進程通信主要有以下幾種方式:1.消息隊列;2. socket(本地socket和INETsocket)3.管道(有名管道和無名管道)4.信號5.共享內存以上5中方式,...
    發表于 11-08 07:38

    進程通信的方式有哪些?

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

    進程幾種狀態?

    文章目錄操作系統進程和線程什么是進程?什么是線程?進程和線程有什么區別?何時使用多進程,何時使用多線程?進程
    發表于 12-24 07:16

    抖動測量的幾種方法

    抖動測量的幾種方法 測試抖動常用在測試數據通信IC或測試電信網絡中。抖動是應該呈現的數字信號沿與實際存在
    發表于 08-17 13:02 ?3143次閱讀

    關于實時操作系統中任務通信的一種方法

    關于實時操作系統中任務通信的一種方法
    發表于 09-03 11:45 ?3次下載
    關于實時操作系統中任務<b class='flag-5'>間</b><b class='flag-5'>通信</b>的一<b class='flag-5'>種方法</b>

    進程與線程通信方式

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

    干貨:計算fibnacci 級數的幾種方法

    干貨:計算fibnacci 級數的幾種方法
    的頭像 發表于 06-22 11:23 ?2483次閱讀
    干貨:計算fibnacci 級數的<b class='flag-5'>幾種方法</b>

    使用MQTT作為進程通信的方式

    小編對Linux這一塊的實際開發經驗雖然還不是很足,但也知道進程通信有那么幾種方式:管道、消息隊列、共享內存、套接字等。
    的頭像 發表于 10-22 12:09 ?6265次閱讀
    使用MQTT作為<b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的方式

    Linux進程通信方法之管道

    上文中我們介紹了進程通信方法之一:信號,本文將繼續介紹另一種進程
    的頭像 發表于 05-14 15:47 ?2028次閱讀
    Linux<b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b><b class='flag-5'>方法</b>之管道

    進程通信的機制有哪些

    進程通信(interprocess communication,簡稱IPC)指兩個進程之間的通信。系統中的每一個
    的頭像 發表于 07-21 11:23 ?996次閱讀
    <b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的機制有哪些

    常見的進程通信方式

    進程通信 如果兩個進程,想要知道對方在干嘛,或者進行協調運行,就需要進程
    的頭像 發表于 10-08 15:48 ?1396次閱讀
    常見的<b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>方式

    進程通信方式總結

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

    進程通信的原理

    一.為什么進程需要通信? 1).數據傳輸 一個進程需要將它的數據發送給另一個進程; 2).資源共享 多個
    的頭像 發表于 11-10 17:05 ?1224次閱讀
    <b class='flag-5'>進程</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的原理
    一筒百家乐的玩法技巧和规则 | 鑫鼎百家乐官网的玩法技巧和规则 | 棋牌室管理制度| 足球百家乐官网投注网出租 | 百家乐77scs| 百家乐官网真人娱乐城陈小春| 天博百家乐娱乐城| 网上百家乐官网作弊法| 威尼斯人娱乐场官网326369| 新百家乐官网.百万筹码| 火箭百家乐的玩法技巧和规则| 澳门赌百家乐官网能赢钱吗 | 王子百家乐官网的玩法技巧和规则| bet365网址| 赌场百家乐投注公式| 百家乐官网怎么刷反水| 新濠百家乐娱乐场| 吉利百家乐官网的玩法技巧和规则 | 沙龙百家乐官网代理| 铁杆国际娱乐城| 百家乐画面| 赌神网百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城线路lm0| 新澳博百家乐官网的玩法技巧和规则| 喜達博彩网| 什么叫百家乐的玩法技巧和规则| 百家乐官网是怎样算牌| 最新皇冠网止| 金百家乐的玩法技巧和规则| 博天堂百家乐官网的玩法技巧和规则| 华亭县| 美女百家乐的玩法技巧和规则| 免费玩百家乐官网的玩法技巧和规则 | 百家乐游戏网站| 678百家乐官网博彩娱乐网| 庄闲和| 百家乐技巧经| 百家乐在线直播| 玩百家乐官网输澳门百家乐官网现场| 博狗娱乐城注册| 百家乐打法介绍|