Linux: 進(jìn)程通信介紹(一)

進(jìn)程與通信

進(jìn)程可以理解為操作系統(tǒng)的可執(zhí)行程序乖订,每當(dāng)我們執(zhí)行一個(gè)程序時(shí)板壮,對(duì)于操作系統(tǒng)來(lái)講就創(chuàng)建了一個(gè)進(jìn)程斥难,隨著進(jìn)程的創(chuàng)建枝嘶,系統(tǒng)需要分配相關(guān)的資源,有分配就有回收蘸炸。所以也可以簡(jiǎn)單理解成進(jìn)程就是一次程序的調(diào)度過(guò)程躬络。

進(jìn)程用戶空間是相互獨(dú)立的,一般而言是不能相互訪問(wèn)的搭儒。例如在iOS或者Android等移動(dòng)端設(shè)備穷当,每個(gè)App承載著各自獨(dú)立的功能,擁有自己的用戶空間淹禾。但很多情況下馁菜,進(jìn)程之間是需要通信的,用過(guò)App的都可以理解铃岔。在不同的系統(tǒng)平臺(tái)汪疮,通行方式可能不一樣峭火,但是本質(zhì)上一定是一致的。

通信場(chǎng)景

數(shù)據(jù)傳輸:一個(gè)進(jìn)程需要將它的數(shù)據(jù)發(fā)送給另一個(gè)進(jìn)程智嚷,發(fā)送的數(shù)據(jù)量在一個(gè)字節(jié)到幾兆字節(jié)之間卖丸。
共享數(shù)據(jù):多個(gè)進(jìn)程想要操作共享數(shù)據(jù),一個(gè)進(jìn)程對(duì)共享數(shù)據(jù)的修改盏道,別的進(jìn)程應(yīng)該立刻看到稍浆。
通知事件:一個(gè)進(jìn)程需要向另一個(gè)或一組進(jìn)程發(fā)送消息,通知它(它們)發(fā)生了某種事件(如進(jìn)程終止時(shí)要通知父進(jìn)程)猜嘱。
資源共享:多個(gè)進(jìn)程之間共享同樣的資源衅枫。為了作到這一點(diǎn),需要內(nèi)核提供鎖和同步機(jī)制朗伶。
進(jìn)程控制:有些進(jìn)程希望完全控制另一個(gè)進(jìn)程的執(zhí)行(如Debug進(jìn)程)弦撩,此時(shí)控制進(jìn)程希望能夠攔截另一個(gè)進(jìn)程的所有陷入和異常,并能夠及時(shí)知道它的狀態(tài)改變论皆。

通信方式

管道( pipe ):

管道包括三種:
普通管道PIPE: 通常有兩種限制,一是單工,只能單向傳輸;二是只能在父子或者兄弟進(jìn)程間使用.
流管道s_pipe: 去除了第一種限制,為半雙工益楼,只能在父子或兄弟進(jìn)程間使用,可以雙向傳輸.
命名管道:name_pipe:去除了第二種限制,可以在許多并不相關(guān)的進(jìn)程之間進(jìn)行通訊.

信號(hào)量( semophore ) :

信號(hào)量是一個(gè)計(jì)數(shù)器纯丸,可以用來(lái)控制多個(gè)進(jìn)程對(duì)共享資源的訪問(wèn)偏形。它常作為一種鎖機(jī)制静袖,防止某進(jìn)程正在訪問(wèn)共享資源時(shí)觉鼻,其他進(jìn)程也訪問(wèn)該資源。因此队橙,主要作為進(jìn)程間以及同一進(jìn)程內(nèi)不同線程之間的同步手段坠陈。

消息隊(duì)列( message queue ) :

消息隊(duì)列是由消息的鏈表,存放在內(nèi)核中并由消息隊(duì)列標(biāo)識(shí)符標(biāo)識(shí)捐康。消息隊(duì)列克服了信號(hào)傳遞信息少仇矾、管道只能承載無(wú)格式字節(jié)流以及緩沖區(qū)大小受限等缺點(diǎn)。

信號(hào) ( sinal ) :

信號(hào)是一種比較復(fù)雜的通信方式解总,用于通知接收進(jìn)程某個(gè)事件已經(jīng)發(fā)生贮匕。

共享內(nèi)存( shared memory ) :

共享內(nèi)存就是映射一段能被其他進(jìn)程所訪問(wèn)的內(nèi)存,這段共享內(nèi)存由一個(gè)進(jìn)程創(chuàng)建花枫,但多個(gè)進(jìn)程都可以訪問(wèn)刻盐。共享內(nèi)存是最快的 IPC 方式,它是針對(duì)其他進(jìn)程間通信方式運(yùn)行效率低而專門設(shè)計(jì)的劳翰。它往往與其他通信機(jī)制敦锌,如信號(hào)兩,配合使用佳簸,來(lái)實(shí)現(xiàn)進(jìn)程間的同步和通信乙墙。

套接字( socket ) :

套解口也是一種進(jìn)程間通信機(jī)制,與其他通信機(jī)制不同的是,它可用于不同機(jī)器間的進(jìn)程通信听想。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腥刹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汉买,更是在濱河造成了極大的恐慌肛走,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件录别,死亡現(xiàn)場(chǎng)離奇詭異朽色,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)组题,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門葫男,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人崔列,你說(shuō)我怎么就攤上這事梢褐。” “怎么了赵讯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵盈咳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我边翼,道長(zhǎng)鱼响,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任组底,我火速辦了婚禮丈积,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘债鸡。我一直安慰自己江滨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布厌均。 她就那樣靜靜地躺著唬滑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天畅铭,我揣著相機(jī)與錄音泉褐,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播连锯,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼归苍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了运怖?” 一聲冷哼從身側(cè)響起拼弃,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摇展,沒(méi)想到半個(gè)月后吻氧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咏连,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年盯孙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祟滴。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡振惰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垄懂,到底是詐尸還是另有隱情骑晶,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布草慧,位于F島的核電站桶蛔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏漫谷。R本人自食惡果不足惜仔雷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抖剿。 院中可真熱鬧朽寞,春花似錦、人聲如沸斩郎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缩宜。三九已至,卻和暖如春甥温,著一層夾襖步出監(jiān)牢的瞬間锻煌,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工姻蚓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宋梧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓狰挡,卻偏偏與公主長(zhǎng)得像捂龄,于是被迫代替她去往敵國(guó)和親释涛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容