• <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>
            posts - 200, comments - 8, trackbacks - 0, articles - 0

            進程在退出時,必須釋放它所擁有的資源,并通過某種方式告訴父進程。進程的退出一般是顯示或隱式地調用了eixt(),或者接受了某種信號。不過什么原因退出,最終都調用了do_exit。




            用于進程退出的系統(tǒng)調用有兩個exit和exit_group,exit只是終止某個進程,而exit_group整個線程中的進程。它們在內核中的服務函數分別為sys_exit和sys_exit_group,它們又分別調用了do_exit和do_group_exit。而do_group最終又調用了do_exit。

             

            do_exit定義在kernel/exit.c中:

            僵死進程:僵死進程是一個進程已經退出,它的內存和資源已經釋放掉了,但是位了時系統(tǒng)在它退出后能夠獲得它的退出狀態(tài)等信息,它的進程描述符仍然保留。

            一個進程退出時,它的父進程會接收到一個SIGCHLD信號,一般情況下這個信號的處理函數會執(zhí)行wait系列函數等待子進程的結束。從子進程退出到父進程調用wait(子進程結束)的這段時間,子進程稱為僵死進程。執(zhí)行ps –ef命令以“z”結尾的為僵死進程。

             

            僵死進程很特殊,它沒有任何可執(zhí)行代碼,不會被調度,只有一個進程描述符用來記錄退出等狀態(tài),除此之外不再占用其他任何資源。

             

            如果僵死進程的父進程沒有調用wait,則該進程會一直處于僵死狀態(tài)。如果父進程結束,內核會在當前線程組里為其找一個父進程,如果沒找到則把init作為其父進程,此時新的父進程將負責清楚其進程。如果父進程一直不結束,該進程會一直僵死。在root下用kill -9 也不能將其殺死。


            下面只對do_exit重點地方解析下: 


            1. struct task_struct *tsk = current;//獲取當前要釋放進程的進程描述符   


              exit_signals(tsk);  /* sets PF_EXITING 以免內和其他部分訪問該進程*/   

              exit_mm(tsk);  
            2.   
            3.     if (group_dead)  
            4.         acct_process();  
            5.     trace_sched_process_exit(tsk);  
            6.   
            7.     exit_sem(tsk);  
            8.     exit_files(tsk);  
            9.     exit_fs(tsk);  
            10.     check_stack_usage();  

            11. /*更新父子關系,并告訴父進程正在退出*/  
            12.     exit_notify(tsk, group_dead);
            13. /*切換到其他進程*/  
            14.     schedule(); 
            15.     exit_thread();  


            久久精品无码一区二区三区免费 | 欧美粉嫩小泬久久久久久久 | 香港aa三级久久三级| 精品一区二区久久久久久久网站| 亚洲va久久久噜噜噜久久| 精品国产乱码久久久久久郑州公司| 日韩人妻无码精品久久免费一| 国产精品岛国久久久久| 久久精品成人免费国产片小草| 亚洲国产另类久久久精品黑人| 久久电影网一区| 久久精品一区二区三区AV| 久久久久久久综合日本亚洲| 国产免费久久精品99re丫y| 91精品久久久久久无码| 狠狠色婷婷久久综合频道日韩| 久久久久黑人强伦姧人妻| 久久精品国产亚洲AV大全| 超级97碰碰碰碰久久久久最新| 国产精品九九久久免费视频 | 中文字幕久久久久人妻| 美女写真久久影院| 久久久亚洲欧洲日产国码二区| 久久久久黑人强伦姧人妻| 久久久久久久人妻无码中文字幕爆| 久久精品国产亚洲αv忘忧草| 精品久久久久久无码人妻热| 潮喷大喷水系列无码久久精品| 婷婷五月深深久久精品| 久久久久久噜噜精品免费直播 | 久久精品综合一区二区三区| 国产精品久久久久影视不卡| 久久无码AV一区二区三区| 亚洲日本va午夜中文字幕久久| 精品无码久久久久久国产| 青青青青久久精品国产 | av国内精品久久久久影院| 久久精品国产亚洲AV嫖农村妇女| 久久人妻少妇嫩草AV无码专区| av午夜福利一片免费看久久| 国产精品久久久久久影院|