• <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>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            僵尸進(jìn)程和孤兒進(jìn)程

            Posted on 2009-03-13 20:13 Prayer 閱讀(364) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX
                僵尸進(jìn)程:一個子進(jìn)程在其父進(jìn)程還沒有調(diào)用wait()或waitpid()的情況下退出。這個子進(jìn)程就是僵尸進(jìn)程。
                孤兒進(jìn)程:一個父進(jìn)程退出,而它的一個或多個子進(jìn)程還在運(yùn)行,那么那些子進(jìn)程將成為孤兒進(jìn)程。孤兒進(jìn)程將被init進(jìn)程(進(jìn)程號為1)所收養(yǎng),并由init進(jìn)程對它們完成狀態(tài)收集工作。
                僵尸進(jìn)程將會導(dǎo)致資源浪費(fèi),而孤兒則不會。



            子進(jìn)程持續(xù)10秒鐘的僵尸狀態(tài)(EXIT_ZOMBIE)
            ------------------------------------------------------
            #include <sys/types.h>
            #include <unistd.h>
            #include <stdio.h>
            #include <stdlib.h>

            main()
            {
                pid_t pid;
                pid = fork();
                if(pid < 0)
                    printf("error occurred!\n");
                else if(pid == 0) {
                    printf("Hi father! I'm a ZOMBIE\n");
                    exit(0);      //(1)
                }
                else {
                    sleep(10);
                    wait(NULL);   //(2)
                }
            }

            (1) 向父進(jìn)程發(fā)送SIGCHILD信號
            (2) 父進(jìn)程處理
            SIGCHILD信號

            執(zhí)行exit()時根據(jù)其父進(jìn)程的狀態(tài)決定自己的狀態(tài):
                如果父進(jìn)程已經(jīng)退出(沒有wait),則該子進(jìn)程將會成為孤兒進(jìn)程過繼給init進(jìn)程
                如果其父進(jìn)程還沒有退出,也沒有wait(),那么該進(jìn)程將向父進(jìn)程發(fā)送SIGCHILD信號,進(jìn)入僵尸狀態(tài)等待父進(jìn)程為其收尸。如果父進(jìn)程一直沒有執(zhí)行wait(),那么該子進(jìn)程將會持續(xù)處于僵尸狀態(tài)。




            子進(jìn)程將成為孤兒進(jìn)程
            ------------------------------------------------------
            #include <sys/types.h>
            #include <unistd.h>
            #include <stdio.h>
            #include <stdlib.h>

            main()
            {
                pid_t pid;
                pid = fork();
                if(pid < 0)
                    printf("error occurred!\n");
                else if(pid == 0) {
                    sleep(6);
                    printf("I'm a orphan\n");
                    exit(0);
                }
                else {
                    sleep(1);
                    printf("Children Bye!\n");
                }
            }

            # ./a.out
            Children Bye!
            # I'm a orphan
            (回車后將會進(jìn)入#)
            #
            国内精品伊人久久久久网站| 欧美日韩精品久久久久| 中文国产成人精品久久不卡 | 久久这里只有精品18| 久久99精品久久久久久久不卡| 97久久精品国产精品青草| 久久久久无码国产精品不卡| 一极黄色视频久久网站| 国产精品免费看久久久| 色偷偷91久久综合噜噜噜噜| 潮喷大喷水系列无码久久精品| 久久精品国产色蜜蜜麻豆| 日产精品久久久久久久| 青青热久久国产久精品 | 欧美精品福利视频一区二区三区久久久精品 | 亚洲午夜无码AV毛片久久| 亚洲国产精品久久久天堂| 久久伊人五月天论坛| 国产精品久久永久免费| 日韩精品久久久久久久电影蜜臀| 国产高潮国产高潮久久久91| 久久ZYZ资源站无码中文动漫| 亚洲国产精品无码久久久久久曰| 99久久99久久精品国产片果冻| 精品久久久无码21p发布| 亚洲国产综合久久天堂| 欧美粉嫩小泬久久久久久久| 国产99久久精品一区二区| 久久精品国产清高在天天线| 亚洲人成精品久久久久| 久久只这里是精品66| 四虎影视久久久免费观看| 久久男人AV资源网站| 久久久久九九精品影院| 久久久久久一区国产精品| 狠狠色丁香婷婷综合久久来来去| 1000部精品久久久久久久久| av无码久久久久不卡免费网站 | 久久精品夜色噜噜亚洲A∨| 亚洲成色999久久网站| 亚洲精品高清久久|