<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

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

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

        時間: 佳洲1085 分享

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

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

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

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

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

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

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

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

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

          (二)有名管道

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        3637782 主站蜘蛛池模板: 日韩在线视频网| 色偷偷www.8888在线观看| 久久久噜噜噜久久中文福利 | 91精品国产综合久蜜臀| 精品一日韩美女性夜视频| 99久久久国产精品免费无卡顿| 亚洲护士一区二区三区| 忘忧草在线社区www中国中文| 亚洲天堂视频网| 国产精品自在拍首页视频| 女人脱裤子让男生桶爽视频| 久久精品久久电影免费理论片 | 免费国精产品自偷自偷免费看| 亚洲国产精品一区二区三| 久久婷婷五月综合97色直播 | 九九热在线视频观看这里只有精品| 亚洲精品天堂成人片AV在线播放| 日日躁狠狠躁狠狠爱| 老师穿超短包臀裙办公室爆乳 | 最新亚洲春色AV无码专区| 国产精品伦理一区二区三| 人人妻人人澡人人爽| 人妻少妇精品系列一区二区| 大香j蕉75久久精品免费8| 四虎影视成人永久免费观看视频| 久久精品国产再热青青青| 国产肥白大熟妇bbbb视频| 国内精品免费久久久久电影院97| 欧洲无码八a片人妻少妇| 国产中文字幕一区二区| 国产xxxxx在线观看免费| 亚洲自拍偷拍中文字幕色| 小嫩模无套内谢第一次| 91国内精品久久精品一本| 人妻有码av中文字幕久久琪| 国产亚洲精品超碰热| 欧美激情综合色综合啪啪五月| 欧美人与动zozo在线播放| 性少妇tubevⅰdeos高清| 亚洲情综合五月天| AV人摸人人人澡人人超碰|