進(jìn)程管理ppt課件.ppt

進(jìn)程管理ppt課件.ppt

ID:59429681

大?。?13.50 KB

頁數(shù):31頁

時間:2020-09-18

進(jìn)程管理ppt課件.ppt_第1頁
進(jìn)程管理ppt課件.ppt_第2頁
進(jìn)程管理ppt課件.ppt_第3頁
進(jìn)程管理ppt課件.ppt_第4頁
進(jìn)程管理ppt課件.ppt_第5頁
資源描述:

《進(jìn)程管理ppt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Linux進(jìn)程管理1主要內(nèi)容進(jìn)程內(nèi)存空間1進(jìn)程控制塊及進(jìn)程組織2進(jìn)程調(diào)度進(jìn)程相關(guān)系統(tǒng)調(diào)用432一、進(jìn)程內(nèi)存空間進(jìn)程管理與內(nèi)存管理密不可分,進(jìn)程的建立過程就直接涉及內(nèi)存空間的問題思考以下名詞:虛擬地址空間內(nèi)核空間用戶空間進(jìn)程332位平臺上線性地址是4GB大小虛擬地址空間也可以說就是程序員看到的內(nèi)存空間。32位linux虛擬地址空間的大小就是4GB。41.虛擬地址空間虛擬地址空間:一個程序編譯、連接后形成的地址空間就是一個虛擬地址空間。每個進(jìn)程可以擁有4GB的虛擬地址空間(虛擬內(nèi)存)linux內(nèi)核將4GB空間的高1GB供內(nèi)核使用,

2、稱內(nèi)核空間低3GB供各個進(jìn)程使用,稱用戶空間(地址空間)理解:用戶空間各自獨(dú)立,每個進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核,所以內(nèi)核空間是進(jìn)程共享的?參看課本第4章4.1回顧:IA32內(nèi)存尋址、虛擬地址、線性地址、物理地址(第2章)5內(nèi)核空間(1GB)進(jìn)程1的用戶空間3GB進(jìn)程2的用戶空間3GB?進(jìn)程n的用戶空間3GB虛擬地址空間、內(nèi)核空間和用戶空間圖解0xFFFFFFFF1G0xC0000000-------------------0xBFFFFFFF3G0x00000000內(nèi)核程序虛擬地址編址都從0xC0000000開始0xFFFFFF

3、FF內(nèi)存------------內(nèi)核0x00000000注意,在虛擬地址空間中內(nèi)核在高地址部分,而在實(shí)際內(nèi)存中,內(nèi)核被映射到低地址部分物理地址=虛擬地址x-0xC0000000虛擬地址空間用戶程序虛擬地址編址都從0x00000000開始,3G范圍內(nèi)62.內(nèi)核空間內(nèi)核代碼和數(shù)據(jù)稱為“內(nèi)核映象”。內(nèi)核被編譯連接形成內(nèi)核的虛擬地址,占用的是虛擬地址空間中從3G到4G的高1G的線性空間。內(nèi)核虛地址到物理地址的映射關(guān)系簡單物理地址=虛擬地址-0xC0000000(PAGE_OFFSET)實(shí)際上內(nèi)核也有自己的內(nèi)核頁目錄項(xiàng)和頁表,可理解為頁

4、從內(nèi)存0塊開始正好一一對應(yīng),映射效果等價于上式7從不同進(jìn)程的角度看3G到4G的線性空間是有著同樣的內(nèi)核頁目錄項(xiàng)和頁表的,從而對應(yīng)同樣的物理內(nèi)存空間。不同的進(jìn)程通過系統(tǒng)調(diào)用可以訪問內(nèi)核空間;而不同進(jìn)程中訪問該空間的虛擬地址對應(yīng)的內(nèi)容一樣,所以可說3G到4G的內(nèi)核空間是所有進(jìn)程共享的。進(jìn)程之間的差異體現(xiàn)在0到3G用戶空間所對應(yīng)的頁目錄項(xiàng)和頁表。83.進(jìn)程的用戶空間進(jìn)程的用戶空間中存放的是用戶程序的代碼和數(shù)據(jù)。每個進(jìn)程最大擁有3G字節(jié)私有虛存空間利用分頁機(jī)制,根據(jù)每個進(jìn)程的頁表進(jìn)行用戶空間的內(nèi)存映射。9每個進(jìn)程經(jīng)編譯、鏈接后形成的二

5、進(jìn)制映像文件有一個代碼段和數(shù)據(jù)段進(jìn)程運(yùn)行時須有自己獨(dú)占的堆棧空洞部分:進(jìn)程運(yùn)行時調(diào)用malloc()動態(tài)分配的空間——堆進(jìn)程的整個用戶空間并不全部裝入,而是通過請頁機(jī)制,部分映射裝入堆棧段空洞數(shù)據(jù)段代碼段進(jìn)程的用戶空間(3G)創(chuàng)建進(jìn)程兩個關(guān)鍵問題:空間、PCB10二、進(jìn)程控制塊及其組織1.結(jié)構(gòu)的定義進(jìn)程控制塊:對進(jìn)程進(jìn)行全面描述的數(shù)據(jù)結(jié)構(gòu)Linux中把對進(jìn)程的描述結(jié)構(gòu)叫做task_struct:task_struct{longstate;/*進(jìn)程狀態(tài)*/intpid,uid,gid;/*一些標(biāo)識符*/structtask_st

6、ruct*parent,*child,*o_sibling,*y_sibling/*一些親屬關(guān)系*/…}11狀態(tài)信息-描述進(jìn)程動態(tài)的變化。鏈接信息-描述進(jìn)程的父/子關(guān)系。各種標(biāo)識符-用簡單數(shù)字對進(jìn)程進(jìn)行標(biāo)識。進(jìn)程間通信信息-描述多個進(jìn)程在同一任務(wù)上協(xié)作工作。時間和定時器信息-描述進(jìn)程在生存周期內(nèi)使用CPU時間的統(tǒng)計(jì)、計(jì)費(fèi)等信息。調(diào)度信息-描述進(jìn)程優(yōu)先級、調(diào)度策略等信息。文件系統(tǒng)信息-對進(jìn)程使用文件情況進(jìn)行記錄。虛擬內(nèi)存信息-描述每個進(jìn)程擁有的地址空間。處理器環(huán)境信息-描述進(jìn)程的執(zhí)行環(huán)境(處理器的寄存器及堆棧等)可下載一個內(nèi)核版

7、本,對照看看。結(jié)構(gòu)體定義所在的頭文件:linux/include/sched.h不同的內(nèi)核版本,對此結(jié)構(gòu)體的定義會不同122.控制塊的存放建立新進(jìn)程時linux為新進(jìn)程分配一個task_struct結(jié)構(gòu),然后將指針保存在task數(shù)組中。數(shù)組長度就是linux最多并發(fā)進(jìn)程數(shù)。task_struct實(shí)際保存位置是進(jìn)程的內(nèi)核棧的底端。通過棧寄存器ESP可訪問到當(dāng)前進(jìn)程的PCB信息為了節(jié)省內(nèi)核空間,棧底也可能只保存task_struct的一個屬性thread_info,其他struct信息通過指針thread_info::task保存

8、在棧外。13C語言聯(lián)合結(jié)構(gòu)表示這樣一個混合結(jié)構(gòu):uniontask_union{structtask_structtask;unsignedlongstack[2408];};Linux調(diào)用alloc_task_struct()函數(shù)分配8KB的task_union內(nèi)存區(qū),調(diào)用

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。