• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Onway

            我是一只菜菜菜菜鳥...
            posts - 61, comments - 56, trackbacks - 0, articles - 34

            APUE第十五章進(jìn)程間通訊 筆記

            Posted on 2011-12-31 15:55 Onway 閱讀(425) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 使用說明
            2011-12-21 第十五章 進(jìn)程間通訊
            第一節(jié) 引言
            1,過去,UNIX系統(tǒng)IPC是各種進(jìn)程通訊方式的統(tǒng)稱。
            2,套接字和STREAMS是僅有的兩種支持不同主機(jī)上各個(gè)進(jìn)程間IPC的類型。

            第二節(jié) 管道
            1,管道使用例程:
            int main()
            {
            int n,fd[2];
            pid_t pid;
            char line[MAXLINE];

            if(pipe(fd) < 0)
            err_sys("pipe error");
            if(pid = fork() < 0)
            err_sys("fock error");
            else if(pid > 0){
            close(fd[0]);
            write(fd[1],"hello world\n",12);
            } else {
            close(fd[1]);
            n = read(fd[0],line,MAXLINE);
            write(STDOUT_FILENO,line,n);
            }
            exit(0);
            }

            第三節(jié) popen和pclose函數(shù)
            1,這兩個(gè)函數(shù)實(shí)現(xiàn)的操作是:創(chuàng)建一個(gè)管道,調(diào)用fork產(chǎn)生一個(gè)子進(jìn)程,關(guān)閉管道的不使用端,執(zhí)行一個(gè)shell以運(yùn)行命令,然后等待命令終止。

            第四節(jié) 協(xié)同進(jìn)程
            1,當(dāng)一個(gè)程序產(chǎn)生某個(gè)過濾程序的輸入,同時(shí)又讀取該過濾程序的輸出時(shí),則該過濾程序就成為協(xié)同進(jìn)程。
            2,注意協(xié)同進(jìn)程的IO緩沖方式,以避免死鎖的產(chǎn)生。

            第五節(jié) FIFO
            1,F(xiàn)IFO有時(shí)被稱為命名管道。FIFO是一種文件類型。
            2,F(xiàn)IFO有下面兩種用途:
            a,F(xiàn)IFO由shell命令使用以便將數(shù)據(jù)從一條管道線傳送到另一條,為此無(wú)需創(chuàng)建中間臨時(shí)文件。
            b,F(xiàn)IFO用于客戶進(jìn)程-服務(wù)器進(jìn)程應(yīng)用程序中,以在客戶進(jìn)程和服務(wù)器進(jìn)程之間傳遞數(shù)據(jù)。
            3,管道只能用于進(jìn)程間的線性連接,然而,因?yàn)镕IFO具有名字,它可以用于非線性連接。

            第六節(jié) XSI IPC
            1,有三種IPC我們稱為XSI IPC,即消息隊(duì)列,信號(hào)量以及共享存儲(chǔ)器。
            2,以參數(shù)key和flag創(chuàng)建IPC結(jié)構(gòu),返回其標(biāo)識(shí)符,以其引用該IPC結(jié)構(gòu)。
            3,IPC_PRIVATE是鍵,IPC_CREATE和IPC_EXCL是flag的位標(biāo)志。
            4,XSI IPC為每一個(gè)IPC結(jié)構(gòu)設(shè)置了一個(gè)ipc_perm結(jié)構(gòu)。該結(jié)構(gòu)規(guī)定了權(quán)限和所有者。
            5,XSI IPC的主要問題是:
            a,IPC結(jié)構(gòu)是在系統(tǒng)范圍內(nèi)起作用的,沒有訪問計(jì)數(shù)。
            b,這些IPC結(jié)構(gòu)在文件系統(tǒng)中沒有名字。為了支持它們,不得不增加了十幾條新的系統(tǒng)調(diào)用和一些新的命令。
            c,IPC結(jié)構(gòu)不使用文件描述符,不能對(duì)它們使用多路轉(zhuǎn)接IO函數(shù)。

            第七節(jié) 消息隊(duì)列
            1,megget用于創(chuàng)建一個(gè)新的消息隊(duì)列或打開一個(gè)現(xiàn)存的隊(duì)列。
            2,msgsnd將數(shù)據(jù)放到消息隊(duì)列中。
            3,msgrcv從消息隊(duì)列中取用函數(shù)。
            4,msgctl對(duì)消息隊(duì)列指定執(zhí)行多種操作。
            5,在新的應(yīng)用程序中不應(yīng)當(dāng)再使用消息隊(duì)列。

            第八節(jié) 信號(hào)量
            1,信號(hào)量是一個(gè)計(jì)數(shù)器,用于安排多個(gè)進(jìn)程對(duì)共享數(shù)據(jù)對(duì)象的訪問。
            2,一個(gè)信號(hào)量控制一個(gè)共享資源的使用情況。
            3,使用信號(hào)量要先創(chuàng)建一個(gè)信號(hào)量集,調(diào)用函數(shù)semget。
            4,semctl函數(shù)包含了多種信號(hào)量的操作。
            5,函數(shù)semop自動(dòng)原子性地執(zhí)行信號(hào)量集合上的操作數(shù)組。
            6,雖然記錄鎖慢于信號(hào)量,但如果只需鎖一個(gè)資源并且不需要使用XSI信號(hào)量的所有花銷功能,則寧可使用記錄鎖。理由是使用簡(jiǎn)易,且進(jìn)程終止時(shí)系統(tǒng)會(huì)處理任何遺留下來(lái)的鎖。

            第九節(jié) 共享存儲(chǔ)
            1,共享存儲(chǔ)允許兩個(gè)或更多進(jìn)程共享一給定的存儲(chǔ)區(qū)。因?yàn)閿?shù)據(jù)不需要在客戶進(jìn)程和服務(wù)器之間復(fù)制,所以這是最快的一種IPC。
            2,使用共享存儲(chǔ)時(shí)需要掌握的唯一竅門是多個(gè)進(jìn)程之間對(duì)一給定存儲(chǔ)區(qū)的同步訪問。
            3,通常,信號(hào)量被用來(lái)實(shí)現(xiàn)對(duì)共享存儲(chǔ)訪問的同步。(記錄鎖也可以)。
            4,調(diào)用shmget獲得一個(gè)共享存儲(chǔ)標(biāo)識(shí)符。
            5,shmctl對(duì)共享存儲(chǔ)段執(zhí)行多種操作。
            6,共享存儲(chǔ)段創(chuàng)建之后就可以使用shmat連接它的地址空間。
            7,當(dāng)對(duì)共享存儲(chǔ)段的操作已經(jīng)結(jié)束的時(shí)候,調(diào)用shmdt脫接該段。
            8,使用存儲(chǔ)映射使用/dev/zero的優(yōu)點(diǎn)是:在調(diào)用mmap創(chuàng)建映射區(qū)之前,無(wú)需存在一個(gè)實(shí)際文件。其缺點(diǎn)是:只能在相關(guān)進(jìn)程間起作用。另外,對(duì)比/dev/zero的更好選擇,還可使用匿名存儲(chǔ)映射。

            第十節(jié) 客戶進(jìn)程-服務(wù)器進(jìn)程屬性
            1,客戶進(jìn)程和服務(wù)器進(jìn)程的某些屬性會(huì)受到它們之間所使用的IPC類型的影響。

            ps:2011年的最后一天算是第一次結(jié)束了這一章了。僅限勉強(qiáng)有個(gè)概念的程度。
            亚洲国产成人精品91久久久 | 777久久精品一区二区三区无码| 久久精品中文闷骚内射| 久久久久亚洲av无码专区 | 狠狠久久综合| 亚洲欧美日韩精品久久亚洲区 | 国产情侣久久久久aⅴ免费| 国产精品久久久久久久久久免费| 无码任你躁久久久久久| 国产精品一区二区久久不卡| 亚洲精品成人网久久久久久| 国产精品久久久久影视不卡| 97精品依人久久久大香线蕉97| 91亚洲国产成人久久精品| 亚洲精品无码久久久久sm| 久久精品无码一区二区三区免费| 亚洲AV日韩AV永久无码久久| 久久综合视频网站| 国产激情久久久久影院老熟女免费| 亚洲综合伊人久久大杳蕉| 无码国内精品久久人妻麻豆按摩 | 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧美精品一区久久中文字幕| 欧美日韩中文字幕久久伊人| 伊人久久大香线蕉综合Av| 麻豆久久| 日韩久久无码免费毛片软件| 久久精品一区二区三区中文字幕| 99国内精品久久久久久久| 情人伊人久久综合亚洲| 久久精品99久久香蕉国产色戒| 久久中文字幕人妻丝袜| 亚洲va久久久久| 亚洲伊人久久大香线蕉综合图片| 久久久久久久综合狠狠综合| 久久伊人五月丁香狠狠色| 日本亚洲色大成网站WWW久久| 人妻少妇精品久久| 久久99国产精品久久99小说 | 久久久久久久久无码精品亚洲日韩 | 嫩草影院久久99|