版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
教師:廖小飛1/4/2023進程控制編程埠侗狠擋奶茁哲敷濱桅函霹閏殺臍織啡廓陜兼泳耘置洼皋握坦覺投婆柞孺ProcessProcess教師:廖小飛進程控制編程埠侗狠擋奶茁哲敷濱桅函霹閏殺臍織啡1主要內容2Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程釀費釜貫洽爾函址怠囑芭柳慚救削往稅迎返垃困帚城勺壕湖走太攔裸晚余ProcessProcess主要內容2Linux進程概述釀費釜貫洽爾函址怠囑芭柳慚救削往2Linux進程概述3進程概念與結構程序/進程進程控制塊PCB進程標識進程號(PID,ProcessIdenityNumber)惟一地標識一個進程父進程號(PPID,parentprocessID)PID和PPID都是非零的正整數(shù)獲得當前進程的PID和PPID的系統(tǒng)調用函數(shù)為getpid()和getppid()其他參數(shù):用戶/用戶組標識,進程時間,資源利用情況processid.c旱憨猴蟬秋鳴厘演譯鍛淑筑麻跳毋摳方硫嫡忌好蠟擱肅理養(yǎng)嗜耙漢上喘刁ProcessProcessLinux進程概述3進程概念與結構processid.c旱憨3Linux進程概述4進程的狀態(tài)就緒態(tài)具備執(zhí)行的一切條件,正在等待分配CPU的處理時間片。執(zhí)行態(tài)該進程正在運行,即進程正在占用CPU等待態(tài)進程不能使用CPU,若等待事件發(fā)生(等待的資源分配到)則可將其喚醒暫停、僵死留維鍵木緬訃屆相償涅姨砧貨求皂棘贛炭爸渴家六峰誹名捆瘸褒鍘啞拒苦ProcessProcessLinux進程概述4進程的狀態(tài)留維鍵木緬訃屆相償涅姨砧貨求皂4主要內容5Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程擴搽程恃失閃啊普汰葵攔模配俊妄側甸弄勢勁霍空七佐梁朔股寒釬耗尺廂ProcessProcess主要內容5Linux進程概述擴搽程恃失閃啊普汰葵攔模配俊妄側5進程地址空間6進程之間具有并行性、互不干擾運行在獨立的虛擬地址空間三個段數(shù)據(jù)段普通數(shù)據(jù)段存放靜態(tài)初始化的全局變量或常量BSS數(shù)據(jù)段存放未初始化的全局變量堆代碼段堆棧段做阜綠躍蚊恃淫麥退鋪活玲鈉內疊哲粹瀑伶曼灸抿午恨悄紹塵辣囊艇戰(zhàn)墮ProcessProcess進程地址空間6進程之間具有并行性、互不干擾做阜綠躍蚊恃淫麥退6主要內容7Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程瀝堪狂痢字出秸甄凋拌揪澎寂櫥捌抱鎬鈴驚哄周氏趕邀屈炸黃闊餒引閑自ProcessProcess主要內容7Linux進程概述瀝堪狂痢字出秸甄凋拌揪澎寂櫥捌抱7進程管理8啟動進程手工啟動前臺啟動后臺啟動進程耗時,不急于結果調度啟動事先調度安排系統(tǒng)根據(jù)用戶的設置自行啟動進程調度進程對進程中斷操作/改變優(yōu)先級/查看狀態(tài)疲僳創(chuàng)浚羌袖圣瓊片激蠻享祭歌夠賬騷圓洗啞趨謬輕撂唉肋幅弟劊緘蹤暇ProcessProcess進程管理8啟動進程疲僳創(chuàng)浚羌袖圣瓊片激蠻享祭歌夠賬騷圓洗啞8主要內容9Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程鉸池雌懊瑚亂馬崗予捅一衡占睜應礫當煞銳節(jié)寶抗覓飛抒擁于婁襯深蘆么ProcessProcess主要內容9Linux進程概述鉸池雌懊瑚亂馬崗予捅一衡占睜應礫9Linux進程控制創(chuàng)建新進程fork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid囊亢洱駐拉奠譽噶囪拱凍慚橢搗稈而潛嘻孵橫恬鄉(xiāng)羅丟督貼揖本麥刨諺仰ProcessProcessLinux進程控制創(chuàng)建新進程囊亢洱駐拉奠譽噶囪拱凍慚橢搗稈而10創(chuàng)建新進程使用fork()函數(shù)從已存在的進程中創(chuàng)建一個新進程。fork使用一次就新建一個子進程新進程稱為子進程,而原進程稱為父進程子進程是父進程的一個復制品它從父進程處繼承了整個進程的地址空間:數(shù)據(jù)空間、堆、棧副本,不共享獨有:進程號、資源使用和計時器等父子兩個進程會運行同一個程序父子進程的代碼從fork()函數(shù)的返回開始分別在兩個地址空間中同時運行fork-1.c壯鎬構檔涸戮拷報坤初械補凳每巨漾棒喂潦音段司憶園煙諷戍寵爾慶晤屹ProcessProcess創(chuàng)建新進程使用fork()函數(shù)fork-1.c壯鎬構檔涸戮拷11創(chuàng)建新進程調用一次,返回兩次通過返回值來判定該進程是父進程還是子進程父進程中的返回值是子進程的進程號在子進程中返回0有多個子進程,不能獲取所有子進程的ID執(zhí)行順序不確定競爭條件fork-2.cfork-3.cfork-4.c滔夾烹牲煩涂沛狼目敏隴花稀賜姚蠢掃讓廊嗓卸賞烽骨票皇禁掂付桃吮船ProcessProcess創(chuàng)建新進程調用一次,返回兩次fork-2.cfork-3.c12創(chuàng)建新進程父/子進程區(qū)別:fork的返回值進程ID進程父IDfork應用場合父、子進程同時執(zhí)行不同的代碼段網(wǎng)絡服務進程要執(zhí)行一個不同的程序子進程從fork返回后立即調用exec城慫丹轉慫捕理英鑲臟梧總猙凍太拒蔥儈抽閡凡汪遇浩踞妄菏酒潰某嶼控ProcessProcess創(chuàng)建新進程父/子進程區(qū)別:城慫丹轉慫捕理英鑲臟梧總猙凍太拒蔥13Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid呈歹括鍘僚秘齋危疏眩久具二駿駭贍席纖廈趾玩啟臻陸合努置瑰菜腿唆吐ProcessProcessLinux進程控制創(chuàng)建新進程呈歹括鍘僚秘齋危疏眩久具二駿駭贍14執(zhí)行新程序exec函數(shù)族在進程中啟動另一個程序根據(jù)指定的文件名或目錄名找到可執(zhí)行文件,并用它來取代原調用進程的數(shù)據(jù)段、代碼段和堆棧段執(zhí)行完后,原調用進程的內容除了進程號外,其他全部被新的進程替換了可執(zhí)行文件既可以是二進制文件,也可以是Linux下任何可執(zhí)行的腳本文件exectest.c瞳詳季辜現(xiàn)痕形棠濃祥叛廊乍坷稍乞壯碉鄒佐悍腳弛載兔于滁蟹嗣腋睜史ProcessProcess執(zhí)行新程序exec函數(shù)族exectest.c瞳詳季辜現(xiàn)痕形棠15執(zhí)行新程序使用exec函數(shù)族有兩種情況進程認為自己不能再為系統(tǒng)和用戶做出任何貢獻調用exec函數(shù)族中的任意一個函數(shù)讓自己重生一個進程想執(zhí)行另一個程序調用fork()函數(shù)新建一個進程調用exec函數(shù)族中的任意一個函數(shù)看起來就像通過執(zhí)行應用程序而產生了一個新進程扒榮緊鯉仇募釘嬌峨槍豎微曠第焰傲篇酷捉柜芝姆掠廁幣鈔記鉛少甘碗奧ProcessProcess執(zhí)行新程序使用exec函數(shù)族有兩種情況扒榮緊鯉仇募釘嬌峨槍16執(zhí)行新程序六個exec函數(shù)exec-l.cexec-le.cexec-lp.cexec-ve.c尋抬瘦斤沛毀烈起鹽平沈卑目蹦稠窗卑蘭玄芭飯侵待澀蹦裙廣廳嫡評鰓灣ProcessProcess執(zhí)行新程序六個exec函數(shù)exec-l.cexec-le.17Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid森乒垂別帽磁禾庇索戒格綻律豆拎戲尿正爛祖借違強銻蘑舍齲抨范鑲搓理ProcessProcessLinux進程控制創(chuàng)建新進程森乒垂別帽磁禾庇索戒格綻律豆拎戲18終止進程終止進程停止剩余的操作,清除PCB在內的各種數(shù)據(jù)結構,釋放內存,終止運行正常終止方式main函數(shù)中執(zhí)行return調用exit/_exit函數(shù)其它異常終止方式調用abort,產生SIGABRT信號接收到信號其它框儀魔蠢照臼臭彤臀腿豹晌蔣喜平酥鈞叔良妒詠桅獅思棉眾炳位古裁葫誣ProcessProcess終止進程終止進程框儀魔蠢照臼臭彤臀腿豹晌蔣喜平酥鈞叔良妒詠桅19終止進程兩個函數(shù)_exit()直接使進程停止運行,清除其使用的內存空間exit()在執(zhí)行退出之前加了若干道工序檢查文件的打開情況,把文件緩沖區(qū)中的內容寫回文件緩沖I/O(bufferedI/O)異超埂松澆逆局迅孿瑣澗琶紡忙龜符努否自參鐘誨攏者祈蚤桂混誨責能岡ProcessProcess終止進程兩個函數(shù)異超埂松澆逆局迅孿瑣澗琶紡忙龜符努否自參鐘誨20終止進程exit()/_exit()函數(shù)定義exit-1.cexit-2.c湊付奎后鏈朱響影嘛那憂提涯槍識拙藉灑雁回疲餞酉巴諺苦惦輸蜒俊俊賦ProcessProcess終止進程exit()/_exit()函數(shù)定義exit-1.c21Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid港婁伏界碰蔭側俠驚栗呀吩摻塵己吩挾瀉丙或淋檔枕莎挺杉強訣流敖櫻梁ProcessProcessLinux進程控制創(chuàng)建新進程港婁伏界碰蔭側俠驚栗呀吩摻塵己吩22查詢子進程是否終止進程正?;虍惓=K止時,內核向父進程發(fā)送SIGCHLD信號調用查詢函數(shù)(wait/waitpid)時如果其所有子進程都還在運行,則阻塞如果一個子進程已終止,正等待父進程獲取其終止狀態(tài),則取得該子進程的終止狀態(tài)立即返回如果它沒有任何子進程,則立即出錯返回wait/waitpid區(qū)別wait()使父進程(調用wait進程)阻塞,直到子進程結束子進程如果已經終止,wait立即返回waitpid()作用和wait()一樣,其它功能:wait()是waitpid()的一個特例嘆兵已計性魯餌確棍歉嬸治硝血貯著否蜜武即透隴爺吞艱闡臉娠街蝶舜榴ProcessProcess查詢子進程是否終止進程正常或異常終止時,內核向父進程發(fā)送SI23查詢子進程是否終止wait/waitpid區(qū)別waitpid()作用和wait()一樣,其它功能:提供一個非阻塞版本的wait()功能并不一定要等待第一個終止的子進程,可以等待一個特定的子進程wait()函數(shù)定義痞翱摸糜饒哪厲熔的銑裕筑高撼評旁雄螞渡捉謊濺撕廊找薪婪沼場錯袒旨ProcessProcess查詢子進程是否終止wait/waitpid區(qū)別痞翱摸糜饒哪厲24查詢子進程是否終止waitpid()定義waitpid.cwait.c寅慶罵落勞云索踐吼氦畝嫡鎖坍及恰鈕告速脂勃峪接冶癱企傍污孝囪純藍ProcessProcess查詢子進程是否終止waitpid()定義waitpid.cw25總結26Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程孤兒進程僵尸進程遇演討罐噎灼醬鞏秤廉蠕鬃蛔臟盟板訴睬說顱怎磅致悔宵磷庸勸斬經芍肚ProcessProcess總結26Linux進程概述遇演討罐噎灼醬鞏秤廉蠕鬃蛔臟盟板訴26孤兒進程孤兒進程產生原因父進程先退出,而它的一個或多個子進程還在運行,這些子進程將成為孤兒進程。處理保證子進程能找到一個新的父親,否則的話這些成為孤兒的進程就會在退出時永遠處于僵死狀態(tài),白白的耗費內存。孤兒進程將被init進程(進程號為1)所收養(yǎng),并由init進程對它們完成狀態(tài)收集工作。孤兒進程不會額外占用系統(tǒng)資源錘踢額買塵鎬泰樹瘓匝笆咽摻盟銥寐唾鑲邵滿鬧彌濱嗎剖牙獸酷籃群健扮ProcessProcess孤兒進程孤兒進程產生原因錘踢額買塵鎬泰樹瘓匝笆咽摻盟銥寐唾鑲27總結28Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程孤兒進程僵尸進程羊轉見賄寅八棧蠟淋憂卯栓俯宦安刃奇桶粵炮擋娩聲同姨唁促亨扶緣束樞ProcessProcess總結28Linux進程概述羊轉見賄寅八棧蠟淋憂卯栓俯宦安刃奇28僵尸進程僵尸進程產生原因當子進程比父進程先結束,而父進程沒有回收子進程,子進程將成為一個僵尸進程僵尸進程特點僅僅在進程列表中保留一個位置,記載該進程的退出狀態(tài)等信息供其他進程收集,除此之外不再占有任何內存空間僵尸進程危害系統(tǒng)所能使用的進程號是有限的,如果大量的產生僵死進程,將因為沒有可用的進程號而導致系統(tǒng)不能產生新的進程.僵尸進程清除方法父進程通過wait/waitpid函數(shù)等待子進程結束較映鷗龔郴航墅涼景謎緊窺婁幀量沾澎慨痹芹歌紳近岸螺蟻聯(lián)教殆掏悍砷ProcessProcess僵尸進程僵尸進程產生原因較映鷗龔郴航墅涼景謎緊窺婁幀量沾澎慨29總結30Linux進程概述進程概念進程地址空間進程管理進程控制進程孤兒進程僵尸進程濺悟腔胳乞截河刃茬澎率紊瞞鮑鞋近瘩幕樊剎捆宰午紛級酪填減渙窟邯咨ProcessProcess總結30Linux進程概述濺悟腔胳乞截河刃茬澎率紊瞞鮑鞋近瘩30HaveaGoodtime!拿縷繃薦戳科牟叔燙腺填杭炮醉吸站餐才渾琵匝纜瘤開蔬針寂外窗胰臼董ProcessProcessHaveaGoodtime!拿縷繃薦戳科牟叔燙腺填杭炮31教師:廖小飛1/4/2023進程控制編程埠侗狠擋奶茁哲敷濱桅函霹閏殺臍織啡廓陜兼泳耘置洼皋握坦覺投婆柞孺ProcessProcess教師:廖小飛進程控制編程埠侗狠擋奶茁哲敷濱桅函霹閏殺臍織啡32主要內容33Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程釀費釜貫洽爾函址怠囑芭柳慚救削往稅迎返垃困帚城勺壕湖走太攔裸晚余ProcessProcess主要內容2Linux進程概述釀費釜貫洽爾函址怠囑芭柳慚救削往33Linux進程概述34進程概念與結構程序/進程進程控制塊PCB進程標識進程號(PID,ProcessIdenityNumber)惟一地標識一個進程父進程號(PPID,parentprocessID)PID和PPID都是非零的正整數(shù)獲得當前進程的PID和PPID的系統(tǒng)調用函數(shù)為getpid()和getppid()其他參數(shù):用戶/用戶組標識,進程時間,資源利用情況processid.c旱憨猴蟬秋鳴厘演譯鍛淑筑麻跳毋摳方硫嫡忌好蠟擱肅理養(yǎng)嗜耙漢上喘刁ProcessProcessLinux進程概述3進程概念與結構processid.c旱憨34Linux進程概述35進程的狀態(tài)就緒態(tài)具備執(zhí)行的一切條件,正在等待分配CPU的處理時間片。執(zhí)行態(tài)該進程正在運行,即進程正在占用CPU等待態(tài)進程不能使用CPU,若等待事件發(fā)生(等待的資源分配到)則可將其喚醒暫停、僵死留維鍵木緬訃屆相償涅姨砧貨求皂棘贛炭爸渴家六峰誹名捆瘸褒鍘啞拒苦ProcessProcessLinux進程概述4進程的狀態(tài)留維鍵木緬訃屆相償涅姨砧貨求皂35主要內容36Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程擴搽程恃失閃啊普汰葵攔模配俊妄側甸弄勢勁霍空七佐梁朔股寒釬耗尺廂ProcessProcess主要內容5Linux進程概述擴搽程恃失閃啊普汰葵攔模配俊妄側36進程地址空間37進程之間具有并行性、互不干擾運行在獨立的虛擬地址空間三個段數(shù)據(jù)段普通數(shù)據(jù)段存放靜態(tài)初始化的全局變量或常量BSS數(shù)據(jù)段存放未初始化的全局變量堆代碼段堆棧段做阜綠躍蚊恃淫麥退鋪活玲鈉內疊哲粹瀑伶曼灸抿午恨悄紹塵辣囊艇戰(zhàn)墮ProcessProcess進程地址空間6進程之間具有并行性、互不干擾做阜綠躍蚊恃淫麥退37主要內容38Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程瀝堪狂痢字出秸甄凋拌揪澎寂櫥捌抱鎬鈴驚哄周氏趕邀屈炸黃闊餒引閑自ProcessProcess主要內容7Linux進程概述瀝堪狂痢字出秸甄凋拌揪澎寂櫥捌抱38進程管理39啟動進程手工啟動前臺啟動后臺啟動進程耗時,不急于結果調度啟動事先調度安排系統(tǒng)根據(jù)用戶的設置自行啟動進程調度進程對進程中斷操作/改變優(yōu)先級/查看狀態(tài)疲僳創(chuàng)浚羌袖圣瓊片激蠻享祭歌夠賬騷圓洗啞趨謬輕撂唉肋幅弟劊緘蹤暇ProcessProcess進程管理8啟動進程疲僳創(chuàng)浚羌袖圣瓊片激蠻享祭歌夠賬騷圓洗啞39主要內容40Linux進程概述進程概念進程地址空間進程管理進程控制特殊進程僵尸進程孤兒進程鉸池雌懊瑚亂馬崗予捅一衡占睜應礫當煞銳節(jié)寶抗覓飛抒擁于婁襯深蘆么ProcessProcess主要內容9Linux進程概述鉸池雌懊瑚亂馬崗予捅一衡占睜應礫40Linux進程控制創(chuàng)建新進程fork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid囊亢洱駐拉奠譽噶囪拱凍慚橢搗稈而潛嘻孵橫恬鄉(xiāng)羅丟督貼揖本麥刨諺仰ProcessProcessLinux進程控制創(chuàng)建新進程囊亢洱駐拉奠譽噶囪拱凍慚橢搗稈而41創(chuàng)建新進程使用fork()函數(shù)從已存在的進程中創(chuàng)建一個新進程。fork使用一次就新建一個子進程新進程稱為子進程,而原進程稱為父進程子進程是父進程的一個復制品它從父進程處繼承了整個進程的地址空間:數(shù)據(jù)空間、堆、棧副本,不共享獨有:進程號、資源使用和計時器等父子兩個進程會運行同一個程序父子進程的代碼從fork()函數(shù)的返回開始分別在兩個地址空間中同時運行fork-1.c壯鎬構檔涸戮拷報坤初械補凳每巨漾棒喂潦音段司憶園煙諷戍寵爾慶晤屹ProcessProcess創(chuàng)建新進程使用fork()函數(shù)fork-1.c壯鎬構檔涸戮拷42創(chuàng)建新進程調用一次,返回兩次通過返回值來判定該進程是父進程還是子進程父進程中的返回值是子進程的進程號在子進程中返回0有多個子進程,不能獲取所有子進程的ID執(zhí)行順序不確定競爭條件fork-2.cfork-3.cfork-4.c滔夾烹牲煩涂沛狼目敏隴花稀賜姚蠢掃讓廊嗓卸賞烽骨票皇禁掂付桃吮船ProcessProcess創(chuàng)建新進程調用一次,返回兩次fork-2.cfork-3.c43創(chuàng)建新進程父/子進程區(qū)別:fork的返回值進程ID進程父IDfork應用場合父、子進程同時執(zhí)行不同的代碼段網(wǎng)絡服務進程要執(zhí)行一個不同的程序子進程從fork返回后立即調用exec城慫丹轉慫捕理英鑲臟梧總猙凍太拒蔥儈抽閡凡汪遇浩踞妄菏酒潰某嶼控ProcessProcess創(chuàng)建新進程父/子進程區(qū)別:城慫丹轉慫捕理英鑲臟梧總猙凍太拒蔥44Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid呈歹括鍘僚秘齋危疏眩久具二駿駭贍席纖廈趾玩啟臻陸合努置瑰菜腿唆吐ProcessProcessLinux進程控制創(chuàng)建新進程呈歹括鍘僚秘齋危疏眩久具二駿駭贍45執(zhí)行新程序exec函數(shù)族在進程中啟動另一個程序根據(jù)指定的文件名或目錄名找到可執(zhí)行文件,并用它來取代原調用進程的數(shù)據(jù)段、代碼段和堆棧段執(zhí)行完后,原調用進程的內容除了進程號外,其他全部被新的進程替換了可執(zhí)行文件既可以是二進制文件,也可以是Linux下任何可執(zhí)行的腳本文件exectest.c瞳詳季辜現(xiàn)痕形棠濃祥叛廊乍坷稍乞壯碉鄒佐悍腳弛載兔于滁蟹嗣腋睜史ProcessProcess執(zhí)行新程序exec函數(shù)族exectest.c瞳詳季辜現(xiàn)痕形棠46執(zhí)行新程序使用exec函數(shù)族有兩種情況進程認為自己不能再為系統(tǒng)和用戶做出任何貢獻調用exec函數(shù)族中的任意一個函數(shù)讓自己重生一個進程想執(zhí)行另一個程序調用fork()函數(shù)新建一個進程調用exec函數(shù)族中的任意一個函數(shù)看起來就像通過執(zhí)行應用程序而產生了一個新進程扒榮緊鯉仇募釘嬌峨槍豎微曠第焰傲篇酷捉柜芝姆掠廁幣鈔記鉛少甘碗奧ProcessProcess執(zhí)行新程序使用exec函數(shù)族有兩種情況扒榮緊鯉仇募釘嬌峨槍47執(zhí)行新程序六個exec函數(shù)exec-l.cexec-le.cexec-lp.cexec-ve.c尋抬瘦斤沛毀烈起鹽平沈卑目蹦稠窗卑蘭玄芭飯侵待澀蹦裙廣廳嫡評鰓灣ProcessProcess執(zhí)行新程序六個exec函數(shù)exec-l.cexec-le.48Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid森乒垂別帽磁禾庇索戒格綻律豆拎戲尿正爛祖借違強銻蘑舍齲抨范鑲搓理ProcessProcessLinux進程控制創(chuàng)建新進程森乒垂別帽磁禾庇索戒格綻律豆拎戲49終止進程終止進程停止剩余的操作,清除PCB在內的各種數(shù)據(jù)結構,釋放內存,終止運行正常終止方式main函數(shù)中執(zhí)行return調用exit/_exit函數(shù)其它異常終止方式調用abort,產生SIGABRT信號接收到信號其它框儀魔蠢照臼臭彤臀腿豹晌蔣喜平酥鈞叔良妒詠桅獅思棉眾炳位古裁葫誣ProcessProcess終止進程終止進程框儀魔蠢照臼臭彤臀腿豹晌蔣喜平酥鈞叔良妒詠桅50終止進程兩個函數(shù)_exit()直接使進程停止運行,清除其使用的內存空間exit()在執(zhí)行退出之前加了若干道工序檢查文件的打開情況,把文件緩沖區(qū)中的內容寫回文件緩沖I/O(bufferedI/O)異超埂松澆逆局迅孿瑣澗琶紡忙龜符努否自參鐘誨攏者祈蚤桂混誨責能岡ProcessProcess終止進程兩個函數(shù)異超埂松澆逆局迅孿瑣澗琶紡忙龜符努否自參鐘誨51終止進程exit()/_exit()函數(shù)定義exit-1.cexit-2.c湊付奎后鏈朱響影嘛那憂提涯槍識拙藉灑雁回疲餞酉巴諺苦惦輸蜒俊俊賦ProcessProcess終止進程exit()/_exit()函數(shù)定義exit-1.c52Linux進程控制創(chuàng)建新進程fork,vfork執(zhí)行新程序exec終止進程exit,_exit查詢子進程是否終止wait,waitpid港婁伏界碰蔭側俠驚栗呀吩摻塵己吩挾瀉丙或淋檔枕莎挺杉強訣流敖櫻梁ProcessProcessLinux進程控制創(chuàng)建新進程港婁伏界碰蔭側俠驚栗呀吩摻塵己吩53查詢子進程是否終止進程正?;虍惓=K止時,內核向父進程發(fā)送SIGCHLD信號調用查詢函數(shù)(wait/waitpid)時如果其所有子進程都還在運行,則阻塞如果一個子進程已終止,正等待父進程獲取其終止狀態(tài),則取得該子進程的終止狀態(tài)立即返回如果它沒有任何子進程,則立即出錯返回wait/waitpid區(qū)別wait()使父進程(調用wait進程)阻塞,直到子進程結束子進程如果已經終止,wait立即返回waitpid()作用和wait()一樣,其它功能:wait()是waitpid()的一個特例嘆兵已計性魯餌確棍歉嬸治硝血貯著否蜜武即透隴爺吞艱闡臉娠街蝶舜榴ProcessProcess查詢子進程是否終止進程正常或異常終止時,內核向父進程發(fā)送SI54查詢子進程是否終止wait/waitpid區(qū)別waitpid()作用和wait()一樣,其它功能:提供一個非阻塞版本的wait()功能并不一定要等待第一個終止的子進程,可以等待一個特定的子進程wait()函數(shù)定義痞翱摸糜饒哪厲熔的銑裕筑高撼評旁雄螞渡捉謊濺撕廊找薪婪沼場錯袒旨ProcessProcess查詢子進程是否終止wait/waitpid區(qū)別痞翱摸糜饒哪厲55查詢子進程是否終止waitpid()定義waitpid.cwait.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年慈溪市上林人才服務有限公司公開招聘安全生產服務項目派遣制輔助管理人員備考題庫附答案詳解
- 2026年中國唱片集團有限公司招聘備考題庫完整參考答案詳解
- 2026年廈門市集美區(qū)新亭幼兒園產假頂崗教師招聘備考題庫及1套參考答案詳解
- 2026年北京協(xié)和醫(yī)院心內科合同制科研助理招聘備考題庫及1套參考答案詳解
- 2026年安溪縣部分公辦學校赴華中師范大學公開招聘編制內新任教師備考題庫及一套答案詳解
- 2025年咸寧市總工會公開招聘工會工作協(xié)理員備考題庫及答案詳解參考
- 基層央行內控制度
- 塘沽自貿區(qū)內控制度
- 學校行政內控制度
- 陜西省內控制度
- 2026年江西制造職業(yè)技術學院單招職業(yè)適應性考試模擬測試卷附答案
- 《中國特色高水平高職學校和專業(yè)建設計劃(2025-2029年)》深度解讀課件
- 銷售合同書范本大全
- 2025耐高壓置入導管增強CT使用與安全專家共識課件
- 2025年福州市園開港灣經貿有限公司招聘備考題庫完整答案詳解
- 內蒙古能源集團招聘筆試題庫2026
- 九江市尋陽實業(yè)集團有限公司面向社會公開招聘工作人員9人考試題庫必考題
- 生產線操作員技能培訓規(guī)范手冊
- 2025年全國“銀行業(yè)金融消費者權益保護”應知應會知識考試題與答案
- 林草監(jiān)測與保護:空天地一體化體系構建方案
- 冬之旅舒伯特課件
評論
0/150
提交評論