9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>操作系統(tǒng)基礎(chǔ)知識(shí)>

Linux操作系統(tǒng)的進(jìn)程間通信的方法詳解

時(shí)間: 佳洲1085 分享

  Linux操作系統(tǒng)中進(jìn)程之間是怎么完成通信的呢?下面由學(xué)習(xí)啦小編為大家整理了Linux操作系統(tǒng)的進(jìn)程間通信的方法詳解的相關(guān)知識(shí),希望對(duì)大家有幫助!

  Linux操作系統(tǒng)的進(jìn)程間通信的方法詳解

  Linux操作系統(tǒng)的進(jìn)程間通信的方法一、管道(pipe)

  管道是Linux支持的最初IPC方式,管道可分為無(wú)名管道,有名管道等。

  (一)無(wú)名管道,它具有幾個(gè)特點(diǎn):

  1) 管道是半雙工的,只能支持?jǐn)?shù)據(jù)的單向流動(dòng);兩進(jìn)程間需要通信時(shí)需要建立起兩個(gè)管道;

  2) 無(wú)名管道使用pipe()函數(shù)創(chuàng)建,只能用于父子進(jìn)程或者兄弟進(jìn)程之間;

  3) 管道對(duì)于通信的兩端進(jìn)程而言,實(shí)質(zhì)上是一種獨(dú)立的文件,只存在于內(nèi)存中;

  4) 數(shù)據(jù)的讀寫(xiě)操作:一個(gè)進(jìn)程向管道中寫(xiě)數(shù)據(jù),所寫(xiě)的數(shù)據(jù)添加在管道緩沖區(qū)的尾部;另一個(gè)進(jìn)程在管道中緩沖區(qū)的頭部讀數(shù)據(jù)。

  (二)有名管道

  有名管道也是半雙工的,不過(guò)它允許沒(méi)有親緣關(guān)系的進(jìn)程間進(jìn)行通信。具體點(diǎn)說(shuō)就是,有名管道提供了一個(gè)路徑名與之進(jìn)行關(guān)聯(lián),以FIFO(先進(jìn)先出)的形式存在于文件系統(tǒng)中。這樣即使是不相干的進(jìn)程也可以通過(guò)FIFO相互通信,只要他們能訪問(wèn)已經(jīng)提供的路徑。

  值得注意的是,只有在管道有讀端時(shí),往管道中寫(xiě)數(shù)據(jù)才有意義。否則,向管道寫(xiě)數(shù)據(jù)的進(jìn)程會(huì)接收到內(nèi)核發(fā)出來(lái)的SIGPIPE信號(hào);應(yīng)用程序可以自定義該信號(hào)處理函數(shù),或者直接忽略該信號(hào)。

  Linux操作系統(tǒng)的進(jìn)程間通信的方法二、信號(hào)量(semophore)

  信號(hào)量是一種計(jì)數(shù)器,可以控制進(jìn)程間多個(gè)線程或者多個(gè)進(jìn)程對(duì)資源的同步訪問(wèn),它常實(shí)現(xiàn)為一種鎖機(jī)制。實(shí)質(zhì)上,信號(hào)量是一個(gè)被保護(hù)的變量,并且只能通過(guò)初始化和兩個(gè)標(biāo)準(zhǔn)的原子操作(P/V)來(lái)訪問(wèn)。(P,V操作也常稱為wait(s),signal(s))

  Linux操作系統(tǒng)的進(jìn)程間通信的方法三、信號(hào)(Signal)

  信號(hào)是Unix系統(tǒng)中使用的最古老的進(jìn)程間通信的方法之一。操作系統(tǒng)通過(guò)信號(hào)來(lái)通知某一進(jìn)程發(fā)生了某一種預(yù)定好的事件;接收到信號(hào)的進(jìn)程可以選擇不同的方式處理該信號(hào),一是可以采用默認(rèn)處理機(jī)制—進(jìn)程中斷或退出,一是忽略該信號(hào),還有就是自定義該信號(hào)的處理函數(shù),執(zhí)行相應(yīng)的動(dòng)作。

  內(nèi)核為進(jìn)程生產(chǎn)信號(hào),來(lái)響應(yīng)不同的事件,這些事件就是信號(hào)源。信號(hào)源可以是:異常,其他進(jìn)程,終端的中斷(Ctrl-C,Ctrl+\等),作業(yè)的控制(前臺(tái),后臺(tái)進(jìn)程的管理等),分配額問(wèn)題(cpu超時(shí)或文件過(guò)大等),內(nèi)核通知(例如I/O就緒等),報(bào)警(計(jì)時(shí)器)。

  Linux操作系統(tǒng)的進(jìn)程間通信的方法四、消息隊(duì)列(Message Queue)

  消息隊(duì)列就是消息的一個(gè)鏈表,它允許一個(gè)或者多個(gè)進(jìn)程向它寫(xiě)消息,一個(gè)或多個(gè)進(jìn)程向它讀消息。Linux維護(hù)了一個(gè)消息隊(duì)列向量表:msgque,來(lái)表示系統(tǒng)中所有的消息隊(duì)列。

  消息隊(duì)列克服了信號(hào)傳遞信息少,管道只能支持無(wú)格式字節(jié)流和緩沖區(qū)受限的缺點(diǎn)。

  Linux操作系統(tǒng)的進(jìn)程間通信的方法五、共享內(nèi)存(shared memory)

  共享內(nèi)存映射為一段可以被其他進(jìn)程訪問(wèn)的內(nèi)存。該共享內(nèi)存由一個(gè)進(jìn)程所創(chuàng)建,然后其他進(jìn)程可以掛載到該共享內(nèi)存中。共享內(nèi)存是最快的IPC機(jī)制,但由于linux本身不能實(shí)現(xiàn)對(duì)其同步控制,需要用戶程序進(jìn)行并發(fā)訪問(wèn)控制,因此它一般結(jié)合了其他通信機(jī)制實(shí)現(xiàn)了進(jìn)程間的通信,例如信號(hào)量。

  Linux操作系統(tǒng)的進(jìn)程間通信的方法六、套接字(socket)

  socket也是一種進(jìn)程間的通信機(jī)制,不過(guò)它與其他通信方式主要的區(qū)別是:它可以實(shí)現(xiàn)不同主機(jī)間的進(jìn)程通信。一個(gè)套接口可以看做是進(jìn)程間通信的端點(diǎn)(endpoint),每個(gè)套接口的名字是唯一的;其他進(jìn)程可以訪問(wèn),連接和進(jìn)行數(shù)據(jù)通信。

3637782 主站蜘蛛池模板: 偷拍精品一区二区三区| 国产自产对白一区| 麻豆精品传媒一二三区| free性开放小少妇| 中文字幕国产精品综合| 色综合天天综合天天综| 天天干天天色综合网| 国产免费一区二区不卡| 国产小视频一区二区三区| 99久久精品国产亚洲精品| 亚洲精品久综合蜜| 亚洲天堂av日韩精品| 亚洲高清国产拍精品熟女| 亚洲欧美激情在线一区| 亚洲人妻精品中文字幕| 国产免费午夜福利片在线| 国产av成人精品播放| 天堂影院一区二区三区四区| 日韩黄色av一区二区三区| 中文字幕有码免费视频| 亚洲精国产一区二区三区| 国产国语一级毛片| 免费无码观看的AV在线播放| 国产精品国产三级国产午| 成年视频人免费网站动漫在线| 亚洲国产av永久精品成人| 妺妺窝人体色www看美女| 国产成人亚洲欧美二区综合| 蜜臀av日韩精品一区二区| 久久国产乱子伦免费精品无码| 色吊丝一区二区中文字幕| 99久久99这里只有免费费精品| 中文字幕 日韩 人妻 无码| 在线观看成人永久免费网站| 久久亚洲精品国产精品尤物| 成人福利一区二区视频在线 | 国产综合久久久久久鬼色| 国产午精品午夜福利757视频播放| 人人入人人爱| 精品无码久久久久久久久久| 华人在线亚洲欧美精品|