淺析linux中的進(jìn)程和中斷

淺析linux中的進(jìn)程和中斷

ID:6442889

大小:422.50 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2018-01-14

淺析linux中的進(jìn)程和中斷_第1頁(yè)
淺析linux中的進(jìn)程和中斷_第2頁(yè)
淺析linux中的進(jìn)程和中斷_第3頁(yè)
淺析linux中的進(jìn)程和中斷_第4頁(yè)
淺析linux中的進(jìn)程和中斷_第5頁(yè)
資源描述:

《淺析linux中的進(jìn)程和中斷》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、一進(jìn)程和進(jìn)程調(diào)度1.進(jìn)程1.1什么是進(jìn)程正在執(zhí)行的程序代碼的實(shí)時(shí)結(jié)果,即處于執(zhí)行期的程序及相關(guān)資源。系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單元Linux系統(tǒng)中的進(jìn)程:交互式進(jìn)程shell命令進(jìn)程、文本編輯器批處理進(jìn)程編譯實(shí)時(shí)進(jìn)程視頻應(yīng)用程序1.2Linux下的進(jìn)程結(jié)構(gòu)內(nèi)核將所有進(jìn)程存放在進(jìn)程鏈表,鏈表的每一項(xiàng)的類型為task_struct這個(gè)類型就稱為進(jìn)程描述符,一個(gè)進(jìn)程描述符包含了具體進(jìn)程的所有信息,包括進(jìn)程的狀態(tài)、進(jìn)程標(biāo)識(shí)值、進(jìn)程間的關(guān)系、打開的文件信息等1.進(jìn)程標(biāo)識(shí)內(nèi)核通過(guò)唯一的進(jìn)程標(biāo)識(shí)值PID來(lái)標(biāo)識(shí)每一個(gè)來(lái)標(biāo)志每一個(gè)進(jìn)程PID存放在進(jìn)程

2、描述符中g(shù)etpid()獲得當(dāng)前進(jìn)程的進(jìn)程號(hào)getppid()獲得當(dāng)前進(jìn)程的父進(jìn)程號(hào)2.進(jìn)程的狀態(tài)TASK_RUNNING運(yùn)行狀態(tài)(運(yùn)行就緒、正在運(yùn)行)TASK_INTERRUPTIBLE可中斷的阻塞狀態(tài)TASK_UNINTERRUPTIBLE不可中斷的阻塞狀態(tài)TASK_TRACED跟蹤狀態(tài)TASK_STOPPED暫停狀態(tài)設(shè)置當(dāng)前進(jìn)程的狀態(tài):set_current_state(current,state);進(jìn)程家族樹:Linux系統(tǒng)的進(jìn)程之間存在繼承關(guān)系,所有的進(jìn)程都是PID為1的init進(jìn)程的后代,內(nèi)核在系統(tǒng)啟動(dòng)的最后階段啟動(dòng)ini

3、t進(jìn)程。1.3Linux下進(jìn)程的創(chuàng)建和終止1.創(chuàng)建fork()拷貝當(dāng)前進(jìn)程創(chuàng)建一個(gè)子進(jìn)程exec()讀取可執(zhí)行文件并將其載入地址空間開始運(yùn)行其中,fork()使用寫時(shí)復(fù)制技術(shù),避免拷貝大量用不到的數(shù)據(jù),使系統(tǒng)具有快速執(zhí)行能力2.終止do_exit()釋放與進(jìn)程相關(guān)的資源,進(jìn)程僵死不可運(yùn)行,處于退出狀態(tài)但仍保留了進(jìn)程描述符,此時(shí)進(jìn)程的存在只為父進(jìn)程能獲得它的信息wait()終止進(jìn)程,占用的所有資源被釋放1.4Linux下的進(jìn)程調(diào)度1.進(jìn)程的優(yōu)先級(jí)Linux采用兩種不同的優(yōu)先級(jí)范圍1)nice值-20~+19默認(rèn)值為0值越大優(yōu)先級(jí)越低2)

4、實(shí)時(shí)優(yōu)先級(jí)可配置0~99值越大優(yōu)先級(jí)越高內(nèi)核將進(jìn)程分為兩個(gè)級(jí)別:普通進(jìn)程和實(shí)時(shí)進(jìn)程,任何實(shí)時(shí)進(jìn)程的優(yōu)先級(jí)都高于普通進(jìn)程,實(shí)時(shí)優(yōu)先級(jí)和nice?優(yōu)先級(jí)處于互不相交的兩個(gè)范疇1.時(shí)間片進(jìn)程被搶占前持續(xù)運(yùn)行的時(shí)間時(shí)間片過(guò)長(zhǎng)系統(tǒng)對(duì)交互響應(yīng)表現(xiàn)欠佳時(shí)間片過(guò)短明顯增大進(jìn)程切換帶來(lái)的處理器耗時(shí)Linux的CFS調(diào)度器并沒(méi)有直接分配時(shí)間片到進(jìn)程,而是劃分了處理器的使用比,它還會(huì)受到nice值得影響2.Linux下的進(jìn)程調(diào)度Linux的調(diào)度器類主要實(shí)現(xiàn)兩類進(jìn)程調(diào)度算法:實(shí)時(shí)調(diào)度算法和完全公平調(diào)度算法(CFS)1)對(duì)實(shí)時(shí)進(jìn)程的調(diào)度按優(yōu)先級(jí)執(zhí)行,一般不會(huì)被

5、搶占。直到實(shí)時(shí)進(jìn)程執(zhí)行完,才會(huì)執(zhí)行普通進(jìn)程。如果有多個(gè)可執(zhí)行狀態(tài)的同優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程,有兩種調(diào)度策略:a)SCHED_FIFO先進(jìn)先出b)SHED_RR輪轉(zhuǎn)調(diào)度內(nèi)核為實(shí)時(shí)進(jìn)程分配時(shí)間片2)完全公平調(diào)度算法Completely?Fair?SchedulerCFS完全公平調(diào)度針對(duì)普通進(jìn)程的調(diào)度類CFS基于一個(gè)簡(jiǎn)單的理念:所有任務(wù)都應(yīng)該公平的分配處理器。理想情況下,n個(gè)進(jìn)程的調(diào)度系統(tǒng)中,每個(gè)進(jìn)程獲得1/n處理器時(shí)間CFS使用vruntime變量記錄一個(gè)進(jìn)程運(yùn)行多長(zhǎng)時(shí)間以及還應(yīng)該再運(yùn)行多久,它是一個(gè)通過(guò)優(yōu)先級(jí)和系統(tǒng)負(fù)載等加權(quán)過(guò)的時(shí)間,nice

6、值在CFS中被作為進(jìn)程獲得的處理器運(yùn)行比的權(quán)重,越低的nice值(越高的優(yōu)先級(jí))進(jìn)程獲得更多的處理器使用權(quán)重CFS在所有可運(yùn)行進(jìn)程總數(shù)基礎(chǔ)上計(jì)算出一個(gè)進(jìn)程應(yīng)該運(yùn)行多久可運(yùn)行進(jìn)程數(shù)量趨于無(wú)限時(shí),處理器使用比趨于0,為此CFS引入了每個(gè)進(jìn)程時(shí)間片底線,稱為最小粒度,默認(rèn)為1msCFS就是通過(guò)追蹤這個(gè)vruntime來(lái)進(jìn)行任務(wù)調(diào)度,CFS選擇具有最小vruntime值的進(jìn)程作為下一個(gè)可執(zhí)行進(jìn)程,用紅黑樹來(lái)組織調(diào)度實(shí)體,而鍵值就是vruntime。在每個(gè)tick中斷的時(shí)候,會(huì)更新進(jìn)程的信息,并檢查這個(gè)紅黑樹,判斷某些進(jìn)程是不是要被替換掉。那么

7、CFS只要選擇最左葉子節(jié)點(diǎn)作為下一個(gè)可執(zhí)行進(jìn)程即可。實(shí)際上CFS緩存了最左葉子,可以直接選取left_most葉子_pick_next_entity()。二:中斷和中斷處理2.1什么是中斷硬件在需要的時(shí)候向內(nèi)核發(fā)出信號(hào)由于處理器的速度遠(yuǎn)大于外圍硬件設(shè)備的速度,內(nèi)核可以線處理其它事物,等到硬件真正完成請(qǐng)求再對(duì)該請(qǐng)求進(jìn)行處理2.2中斷處理的上半部和下半部為了讓中斷處理既運(yùn)行的快,又完成多工作量,中斷處理程序從概念上分為上半部分(tophalf)和下半部分(bottomhalf),內(nèi)核把上半部和下半部分開處理。1.上半部——登記中斷中斷處理

8、程序收到一個(gè)中斷,它就立即開始執(zhí)行,但只做有嚴(yán)格時(shí)間限制的工作,如對(duì)中斷的應(yīng)答和拷貝數(shù)據(jù)等,應(yīng)該盡量減少上半部的工作量,此時(shí)完全屏蔽中斷,要求快速,否則其它中斷得不到處理1.下半部——可以推遲處理的部分執(zhí)行與中斷處理密切

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

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

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