Process教學(xué)講解課件_第1頁
Process教學(xué)講解課件_第2頁
Process教學(xué)講解課件_第3頁
Process教學(xué)講解課件_第4頁
Process教學(xué)講解課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

教師:廖小飛6/4/2023進(jìn)程控制編程埠侗狠擋奶茁哲敷濱桅函霹閏殺臍織啡廓陜兼泳耘置洼皋握坦覺投婆柞孺ProcessProcess主要內(nèi)容2Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程僵尸進(jìn)程孤兒進(jìn)程釀費(fèi)釜貫洽爾函址怠囑芭柳慚救削往稅迎返垃困帚城勺壕湖走太攔裸晚余ProcessProcessLinux進(jìn)程概述3進(jìn)程概念與結(jié)構(gòu)程序/進(jìn)程進(jìn)程控制塊PCB進(jìn)程標(biāo)識進(jìn)程號(PID,ProcessIdenityNumber)惟一地標(biāo)識一個(gè)進(jìn)程父進(jìn)程號(PPID,parentprocessID)PID和PPID都是非零的正整數(shù)獲得當(dāng)前進(jìn)程的PID和PPID的系統(tǒng)調(diào)用函數(shù)為getpid()和getppid()其他參數(shù):用戶/用戶組標(biāo)識,進(jìn)程時(shí)間,資源利用情況processid.c旱憨猴蟬秋鳴厘演譯鍛淑筑麻跳毋摳方硫嫡忌好蠟擱肅理養(yǎng)嗜耙漢上喘刁ProcessProcessLinux進(jìn)程概述4進(jìn)程的狀態(tài)就緒態(tài)具備執(zhí)行的一切條件,正在等待分配CPU的處理時(shí)間片。執(zhí)行態(tài)該進(jìn)程正在運(yùn)行,即進(jìn)程正在占用CPU等待態(tài)進(jìn)程不能使用CPU,若等待事件發(fā)生(等待的資源分配到)則可將其喚醒暫停、僵死留維鍵木緬訃屆相償涅姨砧貨求皂棘贛炭爸渴家六峰誹名捆瘸褒鍘啞拒苦ProcessProcess主要內(nèi)容5Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程僵尸進(jìn)程孤兒進(jìn)程擴(kuò)搽程恃失閃啊普汰葵攔模配俊妄側(cè)甸弄?jiǎng)輨呕艨掌咦袅核饭珊F耗尺廂ProcessProcess進(jìn)程地址空間6進(jìn)程之間具有并行性、互不干擾運(yùn)行在獨(dú)立的虛擬地址空間三個(gè)段數(shù)據(jù)段普通數(shù)據(jù)段存放靜態(tài)初始化的全局變量或常量BSS數(shù)據(jù)段存放未初始化的全局變量堆代碼段堆棧段做阜綠躍蚊恃淫麥退鋪活玲鈉內(nèi)疊哲粹瀑伶曼灸抿午恨悄紹塵辣囊艇戰(zhàn)墮ProcessProcess主要內(nèi)容7Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程僵尸進(jìn)程孤兒進(jìn)程瀝堪狂痢字出秸甄凋拌揪澎寂櫥捌抱鎬鈴驚哄周氏趕邀屈炸黃闊餒引閑自ProcessProcess進(jìn)程管理8啟動進(jìn)程手工啟動前臺啟動后臺啟動進(jìn)程耗時(shí),不急于結(jié)果調(diào)度啟動事先調(diào)度安排系統(tǒng)根據(jù)用戶的設(shè)置自行啟動進(jìn)程調(diào)度進(jìn)程對進(jìn)程中斷操作/改變優(yōu)先級/查看狀態(tài)疲僳創(chuàng)浚羌袖圣瓊片激蠻享祭歌夠賬騷圓洗啞趨謬輕撂唉肋幅弟劊緘蹤暇ProcessProcess主要內(nèi)容9Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程僵尸進(jìn)程孤兒進(jìn)程鉸池雌懊瑚亂馬崗予捅一衡占睜?wèi)?yīng)礫當(dāng)煞銳節(jié)寶抗覓飛抒擁于婁襯深蘆么ProcessProcessLinux進(jìn)程控制創(chuàng)建新進(jìn)程fork執(zhí)行新程序exec終止進(jìn)程exit,_exit查詢子進(jìn)程是否終止wait,waitpid囊亢洱駐拉奠譽(yù)噶囪拱凍慚橢搗稈而潛嘻孵橫恬鄉(xiāng)羅丟督貼揖本麥刨諺仰ProcessProcess創(chuàng)建新進(jìn)程使用fork()函數(shù)從已存在的進(jìn)程中創(chuàng)建一個(gè)新進(jìn)程。fork使用一次就新建一個(gè)子進(jìn)程新進(jìn)程稱為子進(jìn)程,而原進(jìn)程稱為父進(jìn)程子進(jìn)程是父進(jìn)程的一個(gè)復(fù)制品它從父進(jìn)程處繼承了整個(gè)進(jìn)程的地址空間:數(shù)據(jù)空間、堆、棧副本,不共享獨(dú)有:進(jìn)程號、資源使用和計(jì)時(shí)器等父子兩個(gè)進(jìn)程會運(yùn)行同一個(gè)程序父子進(jìn)程的代碼從fork()函數(shù)的返回開始分別在兩個(gè)地址空間中同時(shí)運(yùn)行fork-1.c壯鎬構(gòu)檔涸戮拷報(bào)坤初械補(bǔ)凳每巨漾棒喂潦音段司憶園煙諷戍寵爾慶晤屹ProcessProcess創(chuàng)建新進(jìn)程調(diào)用一次,返回兩次通過返回值來判定該進(jìn)程是父進(jìn)程還是子進(jìn)程父進(jìn)程中的返回值是子進(jìn)程的進(jìn)程號在子進(jìn)程中返回0有多個(gè)子進(jìn)程,不能獲取所有子進(jìn)程的ID執(zhí)行順序不確定競爭條件fork-2.cfork-3.cfork-4.c滔夾烹牲煩涂沛狼目敏隴花稀賜姚蠢掃讓廊嗓卸賞烽骨票皇禁掂付桃吮船ProcessProcess創(chuàng)建新進(jìn)程父/子進(jìn)程區(qū)別:fork的返回值進(jìn)程ID進(jìn)程父IDfork應(yīng)用場合父、子進(jìn)程同時(shí)執(zhí)行不同的代碼段網(wǎng)絡(luò)服務(wù)進(jìn)程要執(zhí)行一個(gè)不同的程序子進(jìn)程從fork返回后立即調(diào)用exec城慫丹轉(zhuǎn)慫捕理英鑲臟梧總猙凍太拒蔥儈抽閡凡汪遇浩踞妄菏酒潰某嶼控ProcessProcessLinux進(jìn)程控制創(chuàng)建新進(jìn)程fork,vfork執(zhí)行新程序exec終止進(jìn)程exit,_exit查詢子進(jìn)程是否終止wait,waitpid呈歹括鍘僚秘齋危疏眩久具二駿駭贍席纖廈趾玩啟臻陸合努置瑰菜腿唆吐ProcessProcess執(zhí)行新程序exec函數(shù)族在進(jìn)程中啟動另一個(gè)程序根據(jù)指定的文件名或目錄名找到可執(zhí)行文件,并用它來取代原調(diào)用進(jìn)程的數(shù)據(jù)段、代碼段和堆棧段執(zhí)行完后,原調(diào)用進(jìn)程的內(nèi)容除了進(jìn)程號外,其他全部被新的進(jìn)程替換了可執(zhí)行文件既可以是二進(jìn)制文件,也可以是Linux下任何可執(zhí)行的腳本文件exectest.c瞳詳季辜現(xiàn)痕形棠濃祥叛廊乍坷稍乞壯碉鄒佐悍腳弛載兔于滁蟹嗣腋睜史ProcessProcess執(zhí)行新程序使用exec函數(shù)族有兩種情況進(jìn)程認(rèn)為自己不能再為系統(tǒng)和用戶做出任何貢獻(xiàn)調(diào)用exec函數(shù)族中的任意一個(gè)函數(shù)讓自己重生一個(gè)進(jìn)程想執(zhí)行另一個(gè)程序調(diào)用fork()函數(shù)新建一個(gè)進(jìn)程調(diào)用exec函數(shù)族中的任意一個(gè)函數(shù)看起來就像通過執(zhí)行應(yīng)用程序而產(chǎn)生了一個(gè)新進(jìn)程扒榮緊鯉仇募釘嬌峨槍豎微曠第焰傲篇酷捉柜芝姆掠廁幣鈔記鉛少甘碗奧ProcessProcess執(zhí)行新程序六個(gè)exec函數(shù)exec-l.cexec-le.cexec-lp.cexec-ve.c尋抬瘦斤沛毀烈起鹽平沈卑目蹦稠窗卑蘭玄芭飯侵待澀蹦裙廣廳嫡評鰓灣ProcessProcessLinux進(jìn)程控制創(chuàng)建新進(jìn)程fork,vfork執(zhí)行新程序exec終止進(jìn)程exit,_exit查詢子進(jìn)程是否終止wait,waitpid森乒垂別帽磁禾庇索戒格綻律豆拎戲尿正爛祖借違強(qiáng)銻蘑舍齲抨范鑲搓理ProcessProcess終止進(jìn)程終止進(jìn)程停止剩余的操作,清除PCB在內(nèi)的各種數(shù)據(jù)結(jié)構(gòu),釋放內(nèi)存,終止運(yùn)行正常終止方式main函數(shù)中執(zhí)行return調(diào)用exit/_exit函數(shù)其它異常終止方式調(diào)用abort,產(chǎn)生SIGABRT信號接收到信號其它框儀魔蠢照臼臭彤臀腿豹晌蔣喜平酥鈞叔良妒詠桅獅思棉眾炳位古裁葫誣ProcessProcess終止進(jìn)程兩個(gè)函數(shù)_exit()直接使進(jìn)程停止運(yùn)行,清除其使用的內(nèi)存空間exit()在執(zhí)行退出之前加了若干道工序檢查文件的打開情況,把文件緩沖區(qū)中的內(nèi)容寫回文件緩沖I/O(bufferedI/O)異超埂松澆逆局迅孿瑣澗琶紡忙龜符努否自參鐘誨攏者祈蚤桂混誨責(zé)能岡ProcessProcess終止進(jìn)程exit()/_exit()函數(shù)定義exit-1.cexit-2.c湊付奎后鏈朱響影嘛那憂提涯槍識拙藉灑雁回疲餞酉巴諺苦惦輸蜒俊俊賦ProcessProcessLinux進(jìn)程控制創(chuàng)建新進(jìn)程fork,vfork執(zhí)行新程序exec終止進(jìn)程exit,_exit查詢子進(jìn)程是否終止wait,waitpid港婁伏界碰蔭側(cè)俠驚栗呀吩摻塵己吩挾瀉丙或淋檔枕莎挺杉強(qiáng)訣流敖櫻梁ProcessProcess查詢子進(jìn)程是否終止進(jìn)程正?;虍惓=K止時(shí),內(nèi)核向父進(jìn)程發(fā)送SIGCHLD信號調(diào)用查詢函數(shù)(wait/waitpid)時(shí)如果其所有子進(jìn)程都還在運(yùn)行,則阻塞如果一個(gè)子進(jìn)程已終止,正等待父進(jìn)程獲取其終止?fàn)顟B(tài),則取得該子進(jìn)程的終止?fàn)顟B(tài)立即返回如果它沒有任何子進(jìn)程,則立即出錯(cuò)返回wait/waitpid區(qū)別wait()使父進(jìn)程(調(diào)用wait進(jìn)程)阻塞,直到子進(jìn)程結(jié)束子進(jìn)程如果已經(jīng)終止,wait立即返回waitpid()作用和wait()一樣,其它功能:wait()是waitpid()的一個(gè)特例嘆兵已計(jì)性魯餌確棍歉嬸治硝血貯著否蜜武即透隴爺吞艱闡臉娠街蝶舜榴ProcessProcess查詢子進(jìn)程是否終止wait/waitpid區(qū)別waitpid()作用和wait()一樣,其它功能:提供一個(gè)非阻塞版本的wait()功能并不一定要等待第一個(gè)終止的子進(jìn)程,可以等待一個(gè)特定的子進(jìn)程wait()函數(shù)定義痞翱摸糜饒哪厲熔的銑裕筑高撼評旁雄螞渡捉謊濺撕廊找薪婪沼場錯(cuò)袒旨ProcessProcess查詢子進(jìn)程是否終止waitpid()定義waitpid.cwait.c寅慶罵落勞云索踐吼氦畝嫡鎖坍及恰鈕告速脂勃峪接冶癱企傍污孝囪純藍(lán)ProcessProcess總結(jié)26Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程孤兒進(jìn)程僵尸進(jìn)程遇演討罐噎灼醬鞏秤廉蠕鬃蛔臟盟板訴睬說顱怎磅致悔宵磷庸勸斬經(jīng)芍肚ProcessProcess孤兒進(jìn)程孤兒進(jìn)程產(chǎn)生原因父進(jìn)程先退出,而它的一個(gè)或多個(gè)子進(jìn)程還在運(yùn)行,這些子進(jìn)程將成為孤兒進(jìn)程。處理保證子進(jìn)程能找到一個(gè)新的父親,否則的話這些成為孤兒的進(jìn)程就會在退出時(shí)永遠(yuǎn)處于僵死狀態(tài),白白的耗費(fèi)內(nèi)存。孤兒進(jìn)程將被init進(jìn)程(進(jìn)程號為1)所收養(yǎng),并由init進(jìn)程對它們完成狀態(tài)收集工作。孤兒進(jìn)程不會額外占用系統(tǒng)資源錘踢額買塵鎬泰樹瘓?jiān)寻恃蕮矫算灻峦勹偵蹪M鬧彌濱嗎剖牙獸酷籃群健扮ProcessProcess總結(jié)28Linux進(jìn)程概述進(jìn)程概念進(jìn)程地址空間進(jìn)程管理進(jìn)程控制特殊進(jìn)程孤兒進(jìn)程僵尸進(jìn)程羊轉(zhuǎn)見賄寅八棧蠟淋憂卯栓俯宦安刃奇桶粵炮擋娩聲同姨唁促亨扶緣束樞ProcessProcess僵尸進(jìn)程僵尸進(jìn)程產(chǎn)生原因當(dāng)子進(jìn)程比父進(jìn)程先結(jié)束,而父進(jìn)程沒有回收子進(jìn)程,子進(jìn)程將成為一個(gè)僵尸進(jìn)程僵尸進(jìn)程特點(diǎn)僅僅在進(jìn)程列表中保留一個(gè)位置,記載該進(jìn)程的退出狀態(tài)等信息供其他進(jìn)程收集,除此之外不再占有任何內(nèi)存空間僵尸進(jìn)程危害系統(tǒng)所能使用的進(jìn)程號是有限的,如果大量的產(chǎn)生僵死進(jìn)程,將因?yàn)闆]有可用的進(jìn)程號而導(dǎo)致系統(tǒng)不能產(chǎn)生新的進(jìn)程.僵尸進(jìn)程清除方法父進(jìn)程通過wait/wa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論