亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux僵死進程的產(chǎn)生與避免

        2013-06-05 05:31:50
        計算機與網(wǎng)絡 2013年1期
        關(guān)鍵詞:信號處理內(nèi)核調(diào)用

        一個進程在調(diào)用exit命令結(jié)束自己的生命的時候,其實它并沒有真正的被銷毀,而是留下一個稱為僵死進程(Zombie)的數(shù)據(jù)結(jié)構(gòu)(系統(tǒng)調(diào)用exit,它的作用是使進程退出,但也僅僅限于將一個正常的進程變成一個僵死進程,并不能將其完全銷毀)。

        一、僵死進程的產(chǎn)生

        在每個進程退出的時候,內(nèi)核釋放該進程所有的資源,包括打開的文件,占用的內(nèi)存等,但是仍然為其保留一定的信息 (包括進程號the process ID,退出狀態(tài)the term ination status of the process,運行時間the amount of CPU time taken by the process等),直到父進程通過wait/waitpid來取時才釋放。此時該進程處于僵死狀態(tài),該進程成為僵死進程 (Zombie Process)。 這保證了父進程可以獲取到子進程結(jié)束時的狀態(tài)信息。

        在Linux進程的狀態(tài)中,僵死進程是非常特殊的一種,它已經(jīng)放棄了幾乎所有內(nèi)存空間,沒有任何可執(zhí)行代碼,也不能被調(diào)度,僅僅在進程列表中保留一個位置,記載該進程的退出狀態(tài)等信息供其他進程收集,除此之外,僵死進程不再占有任何內(nèi)存空間。它需要它的父進程來為它收尸,如果他的父進程沒安裝SIGCHLD信號處理函數(shù)調(diào)用wait或w aitpid()等待子進程結(jié)束,又沒有顯式忽略該信號,那么它就一直保持僵死狀態(tài),如果這時父進程結(jié)束了,僵死的子進程成為"孤兒進程 ",過繼給 1號進程 init,init始終會負責清理僵死進程,它產(chǎn)生的所有僵死進程也跟著消失(每個進程結(jié)束的時候,系統(tǒng)都會掃描當前系統(tǒng)中所運行的所有進程,看有沒有哪個進程是剛剛結(jié)束的這個進程的子進程,如果是的話,就由Init來接管他,成為他的父進程)。但是如果如果父進程是一個循環(huán),不會結(jié)束,那么子進程就會一直保持僵死狀態(tài),這就是為什么系統(tǒng)中有時會有很多的僵死進程。怎么查看僵死進程,利用命令ps,可以看到有標記為Z的進程就是僵死進程。

        二、僵死進程的危害

        如果父進程不調(diào)用wait/w aitpid的話,那么保留的那段信息就不會釋放,其進程號會一定被占用,但是系統(tǒng)所能使用的進程號是有限的,如果產(chǎn)生了大量的僵死進程,將因為沒有可用的進程號而導致系統(tǒng)不能產(chǎn)生新的進程。

        三、僵死進程的避免

        1、父進程通過 wait和 w aitpid等函數(shù)等待子進程結(jié)束,這會導致父進程掛起。

        2、如果父進程很忙,那么可以用signal函數(shù)為SIGCHLD安裝信號處理函數(shù)。子進程結(jié)束后,父進程會收到該信號,可以在信號處理函數(shù)中調(diào)用wait回收 。

        3、如果父進程不關(guān)心子進程什么時候結(jié)束,那么可以用signal(SIGCHLD,SIG_IGN)通知內(nèi)核,自己對子進程的結(jié)束不感興趣,那么子進程結(jié)束后,內(nèi)核會回收,并不再給父進程 發(fā)送信號。

        或用sigaction函數(shù)為SIGCHLD設置SA_NOCLDWAIT,這樣子進程結(jié)束后,就不會進入僵死狀態(tài)

        4、fork兩次,父進程 fork一個子進程,然后繼續(xù)工作,子進程fork一個孫進程后退出,那么孫進程被init接管,孫進程結(jié)束后,init會回收。不過子進程的回收還要父進程來做。

        waitpid(pid,&nStatus,0);//等待子進程結(jié)束,否則子進程會成為僵死進程,一直存在,即便子進程已結(jié)束執(zhí)行

        exit(0);//子進程退出,孫進程過繼給init進程,其退出狀態(tài)也由init進程處理,與原有父進程無關(guān)

        猜你喜歡
        信號處理內(nèi)核調(diào)用
        萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        核電項目物項調(diào)用管理的應用研究
        基于嵌入式Linux內(nèi)核的自恢復設計
        Linux內(nèi)核mmap保護機制研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        《信號處理》征稿簡則
        信號處理(2018年5期)2018-08-20 06:16:02
        《信號處理》第九屆編委會
        信號處理(2018年5期)2018-08-20 06:16:00
        《信號處理》征稿簡則
        信號處理(2018年8期)2018-07-25 12:25:42
        《信號處理》第九屆編委會
        信號處理(2018年8期)2018-07-25 12:24:56
        日本免费一区二区三区影院| 91福利视频免费| 中文精品久久久久中文| 在线天堂中文一区二区三区| 亚洲av一区二区国产精品| 免费人成网站在线播放| 亚洲中文字幕乱码一二三| 国产成人精品无码免费看| 18禁成人黄网站免费观看| 激情综合色五月丁香六月亚洲| 中文字幕乱伦视频| 中文无码成人免费视频在线观看| 久久精品国产99久久丝袜| 日日躁欧美老妇| 中文字幕亚洲入口久久| 伊人精品久久久久中文字幕| 国产三级在线观看免费| 欧美成人a视频免费专区| 蜜桃视频成年人在线观看| 亚洲一区二区三区偷拍女| 亚洲日韩精品无码av海量| 疯狂撞击丝袜人妻| 奇米影视久久777中文字幕 | 亚洲av色在线播放一区| av色欲无码人妻中文字幕| 人体内射精一区二区三区| 婷婷精品国产亚洲av| 大香蕉视频在线青青草| 亚洲av无码精品色午夜app| 女人做爰高潮呻吟17分钟| 婷婷综合缴情亚洲狠狠| 久久99免费精品国产| 精品人妻一区二区三区久久| 国产黄在线观看免费观看不卡| 黄色资源在线观看| 国产 无码 日韩| 国产一区二区三区av免费| 精品久久久无码中字| 男人无码视频在线观看| 亚洲乱码中文字幕综合69堂| 国产情侣自拍一区视频|