色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Linux進程間通信趣味介紹

深圳東裕光大 ? 來源:編程技術宇宙 ? 作者:軒轅之風O ? 2021-08-27 10:28 ? 次閱讀

?月黑風高夜,突然聽得咣當一聲,Web服務器的目錄下冒出了兩個文件,弄出了不小的聲響。這兩個家伙一胖一瘦,鬼鬼祟祟,潛入這臺計算機,不知要搞什么名堂。“二弟,一會兒咱們按照計劃好的運行起來,分頭行事,你等我信號,拿到數據后趕緊撤”,胖子對瘦子說到。“老大,這地方我不熟悉,我怎么等你信號?咱們得想個聯系方式,一會兒通信使用”,瘦子說到。“這個不用擔心,主人都交代好了”,胖子一邊說,一邊從背后拿出一本 《Linux進程間通信手冊》 翻了起來。

信號

翻開手冊的第一頁,上面寫著:信號——Signal,兩個家伙開始認真研究起來。片刻之后,胖子程序說道:“唉,這個不行,往后翻吧!”瘦子程序不解,問道:“咋就不行啦?”“你看這里,手冊上說了,信號是Linux上的一種軟中斷通信機制,可以向指定進程發送通知,總共有64種信號,不過這個信號只能作為通知使用,沒辦法傳輸數據”

“沒法傳輸數據?那這玩意有什么用?”“還是有用啊,可以通知某個進程發生了什么事件,比如kill命令就是利用這個信號來告知進程退出從而實現殺進程的效果的”“原來如此”,瘦子程序若有所思的點了點頭,此時胖子已經翻到了手冊的第二頁。

socket

“你看,手冊上寫了,可以用socket”,胖子說到。“socket?那不是網絡通信使用的嗎?”,瘦子有些疑惑。“是啊,不過咱們一樣可以用來在本地計算機通信,把連接的IP地址換成127.0.0.1就行了”“感覺有點太招搖了,咱們計算機內部進程通信,數據還要經過網卡,很容易被發現的!”“不會不會,手冊上說了,127.0.0.1是本地回環地址,數據在協議棧就進行轉發了,根本不會到達網卡”

“那抓包能抓到咱們通信嗎?”“嗯,讓我看看···手冊上說,可以在虛擬的回環網卡lo上抓到數據”“還是算了吧,咱干這事得悄悄進行,不能留下痕跡,你再看看還有沒有別的招”聽瘦子這么一說,胖子倒也覺得有理,便在手冊上繼續翻了起來。

匿名管道

“哎,有了有了,這個叫匿名管道的,聽起來就比較隱秘,應該不會被發現。”瘦子接過手冊,看了起來。這倆盯著手冊上的兩個圖研究了半天,總算弄明白了,所謂匿名管道不過是內核中的一段緩沖區,提供了讀寫兩個口子,通過fork創建子進程后,子進程繼承了父進程的管道信息,兩邊只要約定好,一個讀,一個寫,就能實現通信了。

“老大,這匿名管道是單向的,咱們要通信,得整兩根管道才行,一個你寫我讀,一個我寫你讀”“看起來挺靠譜,就這么干!”,二人達成了一致。胖子程序率先運行起來,隨后創建了兩個管道,一個用來發送消息,一個用來接收消息。接著執行fork,將瘦子程序也運行了起來。

時間過的很快,轉眼已是深夜,隨著計算機被關掉,兩個家伙的進程也都退出了。半夜無人之際,硬盤中這兩個家伙開始吵起來了。“你是怎么回事?我給你發消息怎么也不回,害得我一連發了一堆消息,最后把管道塞滿了,我都阻塞了!”,胖子程序氣憤地說道。“嗨!別提了,主人給我寫的程序有bug,今天運行的時候不小心崩潰了,等我再次起來時,發現管道不見了,什么情況啊?”,瘦子程序說完嘆了一口氣。“那肯定不行,這匿名管道需要有親緣關系的進程繼承后才能通信,你用別的方式運行起來,肯定看不到我創建的管道啊!”“這匿名管道用起來太麻煩了,看看還有沒有別的通信方式?”胖子程序又掏出了手冊,翻了起來。

消息隊列

“有了有了,這里還寫了兩種方式:命名管道、消息隊列”,胖子程序說到。“命名管道?跟匿名管道有什么區別嗎?”“命名管道有名字,有了名字就不限有親緣關系的進程才能通信了,只要使用這個名字,都能打開管道通信,這下你就算掛了重啟也能跟我聯系上了”“那消息隊列又是什么東西?”“額,讓我看一下”“給我也看看”,瘦子程序湊了上去,一起看了起來。

過了一會兒,瘦子程序說道:“我看明白了,這消息隊列是內核中的一個消息鏈表,按照消息塊組織,比那管道全是二進制數據流堆積在一起好用多了”“有道理,而且這消息還可以指定類型,這樣咱們倆就不用弄兩個管道,一個消息隊列就行了,咱們倆使用不同的消息類型,可省了不少事兒啊!”“那咱們就用消息隊列吧,別用那什么管道了”“好,就這么干!”兩個家伙一拍即合,準備第二天再大干一場。第二天,計算機啟動后,它們又偷偷的運行了起來。這一次用上了消息隊列,聯絡起來方便了不少。

共享內存

不知過了多久,那瘦子進程總算來信兒了,胖子從消息隊列中取出一看,只見上面寫著:

“老大,我拿到了數據了,需要你來處理一下,不過這數據體量有點大,用管道和消息隊列傳輸效率都太低了,有無辦法快速把數據傳送給你,盼速回。”

胖子進程心里一陣歡喜,數據拿到了,總算可以回去交差了。不過怎么樣快速把數據傳送過來呢,心里又犯起了嘀咕。此時,胖子進程又一次拿出手冊,翻到了最后一頁,發現了一個叫“共享內存”的東西,仿佛像抓住了救命稻草一般,仔細研究了起來。片刻之后,胖子的臉上露出了笑容,隨后寫下了一條消息給瘦子進程發送了過去。卻說這瘦子進程正在焦急等待消息中,收到老大的回信后,趕緊取出來看:

二弟,主人的手冊中提到,可以使用共享內存進行進程間通信。我準備了幾個內存頁面,你將它們映射到你的進程地址空間中,咱們就能共享這一片內存,你寫的數據我能立即看到,我寫的你也能立即看到,雖然咱們各自讀寫的地址不同,但實際上是訪問的同一片物理內存頁面,比管道和消息隊列效率高多了!

不過為了防止咱們一起讀寫發生沖突,需要配合信號量一起使用,用它來實現進程間同步。具體的使用方法如下:············盼速回!

瘦子進程看完,心中大喜!趕緊通過消息隊列發了一封回信。隨后,通過老大交代的方法開始操作起來,打開共享、映射掛載一氣呵成。再接著,將數據一股腦兒寫到了共享的內存頁面中。大功告成之后,便退出了進程,按照計劃準備撤退,卻不見了胖子的蹤跡,既無進程也無文件。“這家伙難道拋下我一個人跑了?”正想著,突然“嗡”的一聲,瘦子的程序文件也沒了。卻看那文件目錄之下,只留了一卷《Linux進程間通信手冊》···

責任編輯:haq

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

    關注

    18

    文章

    6046

    瀏覽量

    136216
  • Linux
    +關注

    關注

    87

    文章

    11326

    瀏覽量

    209964
  • 服務器
    +關注

    關注

    12

    文章

    9253

    瀏覽量

    85749
  • 內存
    +關注

    關注

    8

    文章

    3040

    瀏覽量

    74176

原文標題:就很突然,電腦里多出了一個文件......

文章出處:【微信號:sztonyu,微信公眾號:深圳東裕光大】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深入解析Linux程序與進程

    什么是程序 一組計算機能識別和執行的指令,用于指導計算機執行特定任務或解決特定問題。程序通常由代碼、數據和資源文件組成,涉及語法、算法和數據結構。為二進制文件 什么是進程 是一個具有獨立功能的程序
    的頭像 發表于 12-18 11:01 ?116次閱讀
    深入解析<b class='flag-5'>Linux</b>程序與<b class='flag-5'>進程</b>

    深入Linux進程管理:提升效率與穩定性的關鍵方法

    基本概述 2.進程狀態 3.進程優先級 4.進程命令 5. 控制作業 6.進程通信 7.使用信
    的頭像 發表于 11-22 11:05 ?308次閱讀
    深入<b class='flag-5'>Linux</b><b class='flag-5'>進程</b>管理:提升效率與穩定性的關鍵方法

    一文搞懂Linux進程的睡眠和喚醒

    ): 進程在等待某個條件滿足(如I/O操作),可以被信號喚醒。 Linux通過內核提供的系統調用來控制進程的睡眠。常用的系統調用有: sleep(): 使進程暫停指定的秒數。 usl
    發表于 11-04 15:15

    Linux網絡基礎知識總結

    同 CPU、內存以及 I/O 一樣,網絡也是 Linux 系統最核心的功能。 網絡是一種把不同計算機或網絡設備連接到一起的技術,它本質上是一種進程通信方式,特別是跨系統的
    的頭像 發表于 10-28 10:42 ?274次閱讀
    <b class='flag-5'>Linux</b>網絡基礎知識總結

    Linux用戶身份與進程權限詳解

    在學習 Linux 系統權限相關的主題時,我們首先關注的基本都是文件的 ugo 權限。ugo 權限信息是文件的屬性,它指明了用戶與文件之間的關系。但是真正操作文件的卻是進程,也就是說用戶所擁有的文件
    的頭像 發表于 10-23 11:41 ?399次閱讀
    <b class='flag-5'>Linux</b>用戶身份與<b class='flag-5'>進程</b>權限詳解

    深入探討Linux進程調度器

    Linux操作系統作為一個開源且廣泛應用的操作系統,其內核設計包含了許多核心功能,而進程調度器(Scheduler)就是其中一個至關重要的模塊。進程調度器負責決定在任何給定的時刻哪個進程
    的頭像 發表于 08-13 13:36 ?969次閱讀
    深入探討<b class='flag-5'>Linux</b>的<b class='flag-5'>進程</b>調度器

    工業控制設備主要有哪些有線通信技術?

    ? ? ? 工業控制設備的有線通信技術是實現工業自動化和智能制造的關鍵技術之一。隨著工業4.0和智能制造的快速發展,工業控制設備通信技術也在不斷地更新和升級。以下是對工業控制設備
    的頭像 發表于 06-23 16:38 ?924次閱讀

    鴻蒙開發通信與連接:ohos.rpc RPC通信

    本模塊提供進程通信能力,包括設備內的進程通信(IPC)和設備
    的頭像 發表于 06-21 09:40 ?573次閱讀
    鴻蒙開發<b class='flag-5'>通信</b>與連接:ohos.rpc RPC<b class='flag-5'>通信</b>

    進程通信的消息隊列介紹

    消息隊列是一種非常常見的進程通信方式。
    的頭像 發表于 04-08 17:27 ?325次閱讀

    linux下查詢進程占用的內存方法有哪些?

    linux下查詢進程占用的內存方法
    發表于 04-08 06:03

    進程通信的信號問題分析

    Linux里面信號有60多個,分為標準信號和實時信號,編號從1到31,34到64。不同的內核版本略有區別。
    的頭像 發表于 04-07 10:16 ?427次閱讀

    linux管道概述

    一、進程通信(IPC)介紹 進程通信(IPC,I
    的頭像 發表于 02-18 14:51 ?520次閱讀
    <b class='flag-5'>linux</b>管道概述

    鴻蒙OS跨進程IPC與RPC通信

    通過此代理讀寫數據來實現進程的數據通信,更具體的講,首先請求服務的(Client)一端會建立一個服務提供端(Server)的代理對象,這個代理對象具備和服務提供端(Server)一樣的功能,若想訪問
    發表于 02-17 14:20

    HarmonyOS跨進程通信—IPC與RPC通信開發

    一、IPC與RPC通信概述 基本概念 IPC(Inter-Process Communication)與RPC(Remote Procedure Call)用于實現跨進程通信,不同的是前者
    的頭像 發表于 02-02 17:47 ?1322次閱讀
    HarmonyOS跨<b class='flag-5'>進程</b><b class='flag-5'>通信</b>—IPC與RPC<b class='flag-5'>通信</b>開發

    淺談Linux進程

    進程和程序的區別: 進程是動態的,程序是靜態的 一、進程的創建(fork()函數) int main(){ pid_t pid; pid=fork(); if(pid?????>0
    的頭像 發表于 01-28 15:54 ?273次閱讀
    淺談<b class='flag-5'>Linux</b>的<b class='flag-5'>進程</b>
    主站蜘蛛池模板: 久久久久久电影| 在线观看国产小视频| 青草国产在线视频免费| 射死你天天日| 在线A亚洲老鸭窝天堂AV高清| 国产精品欧美一区二区在线看| 久久精品电影久久电影大全| 人与畜禽CROPROATION免费| 亚洲色 图| 儿子操妈妈视频| 久久爽狠狠添AV激情五月| 日本精品久久久久中文字幕| 亚洲另类欧美综合在线| 爱穿丝袜的麻麻3d漫画acg| 国内精品久久久久久久999下| 欧洲人交xxx69| 在线播放成人无码日| 久久久久夜| 999久久国产精品免费人妻| 韩国免费啪啪漫画无遮拦健身教练| 破苞流血哭泣 magnet| 超碰高清熟女一区二区| 看全色黄大色大片免费久黄久| 午夜想想爱午夜剧场| 99无人区码一码二码三| 快播苍井空| chinese国语露脸videos| 美女露出乳胸扒开尿口| 亚洲免费无l码中文在线视频| 精品午夜视频| 亚洲精品久久久992KVTV| 国产69精品久久久久无码麻豆| 女人精69xxxxx舒心| 中文字幕人妻无码系列第三区| 精品无码久久久久久动漫| 在线亚洲色拍偷拍在线视频| 男gv纯肉免费视频| 99久久99久久精品| 刘梓晨啪啪啪| 97午夜理论片影院在线播放| 日本aa大片|