亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

進程控制之exit函數

2024-06-28 13:28:36
字體:
來源:轉載
供稿:網友
進程控制之exit函數

進程有下面5種正常終止方式:

(1)在main函數內執行return語句。這等效于調用exit。

(2)調用exit函數。此函數有ISO C定義,其操作包括調用各終止處理程序(終止處理程序在調用atexit函數時登記),然后關閉所有標準I/O流等。

(3)調用_exit或_Exit函數。ISO C定義_Exit,其目的是為進程提供一種無需運行終止處理程序或信號處理程序而終止的方法。對標準I/O流是否進行沖洗,這取決于實現。在UNIX系統中,_Exit和_exit是同義的,并不清洗標準I/O流。_exit函數由exit調用,它處理UNIX特定的細節。

在大多數UNIX系統實現中,exit(3)是標準C庫中的一個函數,而_exit(2)則是一個系統調用。

(4)進程的最后一個線程在其啟動例程中執行返回語句。但是,該線程的返回值不會用作進程的返回值。當最后一個線程從其啟動例程返回時,該進程以終止狀態0返回。

(5)進程的最后一個線程調用pthread_exit函數。在這種情況下,進程終止狀態總是0,這與傳送給pthread_exit的參數無關。

三種異常終止方式如下:

(1)調用abort。它產生SIGABRT信號,這是下一種異常終止的特例。

(2)當進程接收到某些信號時。信號可由進程自身(例如調用abort函數)、其他進程或內核產生。

(3)最后一個線程對“取消”(cancellation)請求作出響應。按系統默認,“取消”以延遲方式發生:一個線程要求取消另一個線程,一段時間之后,目標線程終止。

不管進程如何終止,最后都會執行內核中的同一段代碼。這段代碼為相應進程關閉所有打開描述符,釋放它所使用的存儲器等。

對于上述任意一種終止情形,我們都希望終止進程能夠通知其父進程它是如何終止的。對于三個終止函數(exit、_exit和_Exit),實現這一點的方法是,將其退出狀態(exit status)作為參數傳遞給函數。在異常終止情況下,內核(不是進程本身)產生一個指示其異常終止原因的終止狀態(termination status)。在任意一種情況下,該終止進程的父進程都能用wait或waitpid函數取得其終止狀態。

注意,這里使用了“退出狀態”(它是傳向exit或_exit的參數,或main的返回值)和“終止狀態”兩個術語,以表示有所區別。在最后調用_exit時,內核將退出狀態轉換成終止狀態(回憶圖7-1http://www.CUOXin.com/nufangrensheng/p/3507921.html)。如果子進程正常終止,父進程可以獲得子進程的退出狀態。

在說明fork函數時,顯而易見,子進程是在父進程調用fork后生成的。上面又說了子進程將其終止狀態返回給父進程。但是如果父進程在子進程之前終止,則將如何呢?其回答是:對于父進程已經終止的所有進程,它們的父進程都改變為init進程。我們稱這些進程由init進程領養。其操作過程大致如下:在一個進程終止時,內核逐個檢查所有活動進程,以判斷它是否是正要終止進程的子進程,如果是,則將該進程的父進程ID更改為1(init進程的ID)。這種處理方法保證了每個進程都有一個父進程。

另一個我們關心的情況是如果子進程在父進程之前終止,那么父進程又如何能在做相應檢查時得到子進程的終止狀態呢?對此問題的回答是:內核為每個終止子進程保存了一定量的信息,所以當終止進程的父進程調用wait或waitpid時,可以得到這些信息。這些信息至少包括進程ID、該進程的終止狀態、以及該進程使用的CPU時間總量。內核可以釋放終止進程所使用的所有存儲區,關閉其所有打開文件。在UNIX術語中,一個已經終止,但是其父進程尚未對其進行善后處理(使用wait獲取終止子進程的有關信息,釋放它仍占用的資源)的進程稱為僵死進程(zombie)(更多關于僵尸進程可參考:http://www.CUOXin.com/bettercoder/p/3501086.html)。ps(1)命令將僵死進程的狀態打印為Z。如果編寫一個長期運行的程序,它調用fork產生了很多子進程,那么除非父進程等待取得子進程的終止狀態,否則這些子進程終止后就會變成僵死進程。

最后一個要考慮的問題是:一個由init進程領養的進程終止時會發生什么?它會不會變成一個僵死進程?對此問題的回答是:“否”,因為init被編寫成無論何時只要有一個子進程終止,init就會調用wait函數取得其終止狀態。這樣也就防止了在系統中有很多僵死進程。當提及“一個init的子進程”時,這指的可能是init直接產生的進程,也可能是其父進程已終止,由init領養的進程。

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人久久一区| 午夜精品蜜臀一区二区三区免费| 日本一区二区在线播放| 日韩在线免费av| 久久精品久久久久久国产 免费| 欧美日韩精品国产| 欧美日韩国产中文精品字幕自在自线| 亚洲人午夜精品| 性色av一区二区三区免费| 日韩av中文字幕在线免费观看| 在线午夜精品自拍| 另类天堂视频在线观看| 国产精品18久久久久久首页狼| 国产精品稀缺呦系列在线| 亚洲最新中文字幕| 久久影视电视剧免费网站| 亚洲精品二三区| 国产精品久久久久久久久借妻| 亚洲国产精品视频在线观看| 日韩av片电影专区| 色香阁99久久精品久久久| 国产精品爽黄69天堂a| 亚洲色图校园春色| 成人亚洲综合色就1024| 92版电视剧仙鹤神针在线观看| 日韩中文字幕国产精品| 亚洲一级一级97网| 欧美激情小视频| 日韩欧美中文字幕在线播放| 5566日本婷婷色中文字幕97| 国产丝袜一区二区三区| 欧美日韩国产麻豆| 日韩一区二区精品视频| 亚洲国产另类 国产精品国产免费| 精品美女国产在线| 欧美午夜影院在线视频| 日韩美女视频中文字幕| 久久香蕉精品香蕉| 亚洲欧洲一区二区三区在线观看| 国产精品亚洲综合天堂夜夜| 91成品人片a无限观看| 日韩欧美中文字幕在线播放| 亚洲第一福利视频| 欧美在线一级视频| 欧美肥臀大乳一区二区免费视频| 成人激情在线播放| 久久精品电影网站| 亚洲成人三级在线| 精品人伦一区二区三区蜜桃网站| 国产欧美日韩91| 大荫蒂欧美视频另类xxxx| 日本人成精品视频在线| 国产精品黄色av| 另类少妇人与禽zozz0性伦| 久久久久久有精品国产| 国产一区二区在线免费视频| 奇米影视亚洲狠狠色| 精品国产福利视频| 国产精品久久9| 精品中文字幕在线观看| 欧美激情成人在线视频| 国产精品白丝jk喷水视频一区| 欧洲精品毛片网站| 热久久免费国产视频| 国产盗摄xxxx视频xxx69| 黄色成人av在线| 国产精品一区二区久久久| 日韩电影免费在线观看中文字幕| 亚洲深夜福利网站| 成人免费观看网址| 成人国产精品久久久久久亚洲| 日韩的一区二区| 成人免费高清完整版在线观看| 久久精品一偷一偷国产| 成人国产在线激情| 日本三级韩国三级久久| 久久精品人人爽| 91在线看www| 国产日韩在线亚洲字幕中文| 97精品国产97久久久久久免费| 国产自产女人91一区在线观看| 高清视频欧美一级| 精品调教chinesegay| 国产精品福利小视频| 一区二区三区视频观看| 国产精品99久久久久久久久久久久| 日韩av在线影院| 亚洲电影中文字幕| 欧美日韩另类在线| 亚洲自拍高清视频网站| 国产乱肥老妇国产一区二| 国产精品久久久久久久av电影| 欧美亚洲日本黄色| 一区三区二区视频| 欧美一级大片在线免费观看| 欧美国产日韩一区二区在线观看| 国产视频精品va久久久久久| 国产91精品视频在线观看| 亚洲加勒比久久88色综合| 亚洲国产天堂久久综合网| 欧美在线视频观看| 欧美日韩在线观看视频| 亚洲福利视频网站| 亚洲自拍欧美色图| 久久久av电影| 亚洲一区美女视频在线观看免费| 欧美日韩亚洲系列| 日韩美女视频免费看| 精品日韩视频在线观看| 欧美人在线观看| 国产精品激情av在线播放| 欧美成人免费全部观看天天性色| 精品国产依人香蕉在线精品| 亚洲已满18点击进入在线看片| 色婷婷av一区二区三区在线观看| 国产精品www色诱视频| 中文字幕一区二区三区电影| 欧美最猛性xxxxx亚洲精品| 97在线视频国产| 亚洲在线免费观看| 国产在线视频2019最新视频| 久久成年人免费电影| 97视频在线观看免费高清完整版在线观看| 久久久av网站| 日韩视频一区在线| 精品成人国产在线观看男人呻吟| 中文字幕日韩欧美精品在线观看| 国产精品久久久久久久久粉嫩av| 日韩精品在线电影| 国产一区二区三区网站| 麻豆国产va免费精品高清在线| 国产一区二区三区18| 国产美女精品视频免费观看| 日韩欧美在线网址| 日本精品久久久久影院| 国产在线精品播放| 欧美激情免费观看| 成人激情在线播放| 亚洲最大福利视频网| 久久久久久高潮国产精品视| 日韩av手机在线观看| 国产精品日韩在线播放| 欧美性生交xxxxx久久久| 欧美激情2020午夜免费观看| 亚洲欧美制服丝袜| 久久视频免费观看| 日本欧美精品在线| 日韩大片免费观看视频播放| 欧美性极品xxxx娇小| 亚洲激情视频网站| 国产精品视频男人的天堂| 亚洲国产成人精品一区二区| 日韩欧美主播在线| 国模视频一区二区三区| 欧美孕妇性xx| 日韩av手机在线观看| 欧美色视频日本高清在线观看| 久久精品99久久久香蕉| 亚洲va久久久噜噜噜久久天堂| 国产一区深夜福利| 国产精品视频一区国模私拍| 日韩国产高清污视频在线观看| 亚洲一区国产精品| 日韩亚洲综合在线|