第11課-linux進(jìn)程管理培訓(xùn)課件_第1頁
第11課-linux進(jìn)程管理培訓(xùn)課件_第2頁
第11課-linux進(jìn)程管理培訓(xùn)課件_第3頁
第11課-linux進(jìn)程管理培訓(xùn)課件_第4頁
第11課-linux進(jìn)程管理培訓(xùn)課件_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、LINUX進(jìn)程管理(V2014):本課件及其印刷物、的歸國嵌所有,并保留所力:任何單位或個人動。已經(jīng)取得。國嵌的,應(yīng)在,不得使用該課件及其印刷物、從事商業(yè)、教學(xué)活范圍內(nèi)使用,并注明“來源:國嵌”。上述者,其課程索引1. Linux進(jìn)程要素1.1進(jìn)程與程序程序存放在磁盤上的一系列代碼和數(shù)據(jù)的可執(zhí)行映像,是一個的實(shí)體進(jìn)程是一個執(zhí)行中的程序,它是動態(tài)的實(shí)體1.2進(jìn)程四要素1. 有一供其執(zhí)行。這不一定是某個進(jìn)程所專有,可以與其他進(jìn)程共用。2. 有進(jìn)程的內(nèi)核空間堆棧。在內(nèi)核中有一個數(shù)據(jù)結(jié)構(gòu),即通常所說的“進(jìn)程控制塊”。有了這個數(shù)據(jù)結(jié)構(gòu),進(jìn)程才能成為內(nèi)核調(diào)度的一個基本接受內(nèi)核的調(diào)度。1.2進(jìn)程四要素4.有

2、獨(dú)立的用戶空間。Y有獨(dú)立的用戶空間?進(jìn)程有共享的用戶空間?Y用戶線程N(yùn)內(nèi)核線程1.3 Linux進(jìn)程狀態(tài)1.3 Linux進(jìn)程狀態(tài)1.3 Linux進(jìn)程狀態(tài)1. TASK_RUNNING進(jìn)程正在被CPU執(zhí)行,或者已經(jīng)準(zhǔn)備就緒,隨時可以執(zhí)行。當(dāng)一個進(jìn)程剛被創(chuàng)建時,就處于TASK_RUNNING狀態(tài)。2. TASK_ERRUPTIBLE處于等待中的進(jìn)程,待等待條件為真時被喚醒,也可以被信號或者中斷喚醒。1.3 Linux進(jìn)程狀態(tài)3. TASK_UNERRUPTIBLE處于等待中的進(jìn)程,待資源有效時喚醒,但不可以由其它進(jìn)程通過信號(signal)或中斷喚醒。4. TASK_KILLABLELinux

3、2.6.25新引入的進(jìn)程睡眠狀態(tài),原理類似于TASK_UNERRUPTIBLE,但是可以被致命信號(SIGKILL)喚醒。1.3 Linux進(jìn)程狀態(tài)5. TASK_TRACED正處于被調(diào)試狀態(tài)的進(jìn)程。進(jìn)程退出時(調(diào)用do_exit),所處的狀態(tài)。1.4 Linux進(jìn)程描述在Linux內(nèi)核代碼中,線程、進(jìn)程都使用結(jié)構(gòu)task_struct(sched.h)來表示,它包含了大量描述進(jìn)程線程的信息,其中比較重要的有:_t; /進(jìn)程號e; /進(jìn)程狀態(tài)long sprio; /進(jìn)程優(yōu)先級2.進(jìn)程調(diào)度2.1調(diào)度從就緒的進(jìn)程中選出最適合的一個來執(zhí)行。學(xué)習(xí)調(diào)度需要掌握哪些知識點(diǎn)?1、調(diào)度策略2、調(diào)度時機(jī)3、調(diào)

4、度步驟2.1調(diào)度策略SCHED_NORMAL(SCHED_OTHER):普通的分時進(jìn)程SCHED_FIFO :先入先出的實(shí)時進(jìn)程時間片輪轉(zhuǎn)的實(shí)時進(jìn)程SCHED_BATCH:批處理進(jìn)程SCHED_IDLE:行的進(jìn)程只在系統(tǒng)空閑時才能夠被調(diào)度執(zhí)2.2調(diào)度時機(jī)什么時候發(fā)生調(diào)度?即schedule()函數(shù)什么時候被調(diào)用?2.2調(diào)度時機(jī)-主動式在內(nèi)核中直接調(diào)用schedule()。當(dāng)進(jìn)程需要等待資源等而暫時停止運(yùn)行時,會把自己的狀態(tài)置于掛起(睡眠),并主動請求調(diào)度,讓出CPU。范例:1.2.current-sschedule();e = TASK_ERRUPTIBLE;2.2調(diào)度時機(jī)-式式調(diào)度又名:搶占

5、式調(diào)度。分為:用戶態(tài)搶占(Linux2.4、Linux2.6)和內(nèi)核態(tài)搶占(Linux2.6)。2.2調(diào)度時機(jī)-用戶態(tài)搶占用戶搶占發(fā)生在:從系統(tǒng)調(diào)用返回用戶空間。從中斷處理程序返回用戶空間。內(nèi)核即將返回用戶空間的時候,如果need_resched標(biāo)志被設(shè)置,會導(dǎo)致schedule()被調(diào)用,即發(fā)生用戶搶占。當(dāng)某個進(jìn)程耗盡它的時間片時,會設(shè)置need_resched標(biāo)志當(dāng)一個優(yōu)先級更高的進(jìn)程進(jìn)入可執(zhí)行狀態(tài)的時候,也會設(shè)置need_resched標(biāo)志。2.2調(diào)度時機(jī)-內(nèi)核態(tài)搶占用戶態(tài)搶占缺陷進(jìn)程/線程一旦運(yùn)行到內(nèi)核態(tài),就可以一直執(zhí)行,直到它主動放棄或時間片耗盡為止。這樣會導(dǎo)致一些非常緊急的進(jìn)程或線

6、程將長時間得不到運(yùn)行,降低整個系統(tǒng)的實(shí)時性。改進(jìn)方式允許系統(tǒng)在內(nèi)核態(tài)也支持搶占,更高優(yōu)先級的進(jìn)程/線程可以搶占正在內(nèi)核態(tài)運(yùn)行的低優(yōu)先級進(jìn)程/線程。2.2調(diào)度時機(jī)-內(nèi)核態(tài)搶占內(nèi)核搶占可能發(fā)生在:中斷處理程序完成,返回內(nèi)核空間之前。當(dāng)內(nèi)核代碼再一次具有可搶占性的時候,如及使能軟中斷等。2.2調(diào)度時機(jī)-內(nèi)核態(tài)搶占在支持內(nèi)核搶占的系統(tǒng)中,某些特例下是不允許搶占的:內(nèi)核正在運(yùn)行中斷處理。內(nèi)核正在進(jìn)行中斷上下文的Bottom Half(中斷的底半部)處理。硬件中斷返回前會執(zhí)行軟中斷,此時仍然處于中斷上下文中。進(jìn)程持有自旋鎖、讀寫鎖等當(dāng)持有這些鎖時,不應(yīng)該被搶占,否則由于搶占將可能導(dǎo)致其他進(jìn)程長期得不到鎖,而讓系統(tǒng)處于死鎖狀態(tài)。內(nèi)核正在執(zhí)行調(diào)度程序Scheduler。搶占的原因就是為了進(jìn)行新的調(diào)度,沒有理由將調(diào)度程序搶占掉再運(yùn)行調(diào)度程序。2.2調(diào)度時機(jī)-搶占計數(shù)為保證Linux內(nèi)核在以上情況下不會被搶占,搶占式內(nèi)核使用了一個變量preempt_count,稱為內(nèi)核搶占計數(shù)。這一變量被設(shè)置在進(jìn)程的thread_info結(jié)構(gòu)每當(dāng)內(nèi)核要進(jìn)入以上幾種狀態(tài)時,變量preempt_count就加1,指示內(nèi)核不允許搶占。每當(dāng)內(nèi)核從以上幾種狀態(tài)退出時,變量pr

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論