Linux進(jìn)程調度分析 Linux進(jìn)程調度分析

Linux進(jìn)程調度分析

  • 期刊名字:電腦知識與技術(shù)
  • 文件大?。?64kb
  • 論文作者:鐘誠,盧衛恒,李德勇
  • 作者單位:江南計算技術(shù)研究所
  • 更新時(shí)間:2020-09-25
  • 下載次數:次
論文簡(jiǎn)介

ISSN 1009- 3044E-mail: infocccc.net.cnComputer Knowiedge and Technology電腦知識'技術(shù)htp://www.dnzs.net.cnVol.7, No.1, January 211.pp.70-717Tel:+86- -51- -5690963 5690964Linux進(jìn)程調度分析鐘誠,盧衛恒,李德勇.(江南計算技術(shù)研究所,江蘇無(wú)錫214083)摘要:Linux系統作為能夠應用于多平臺的多任務(wù)操作系統,它被廣泛應用于嵌入式電子產(chǎn)品中,linux系統的效率就成為電子產(chǎn)品性能的重要因素之一。文章從linux進(jìn)程調度的角度來(lái)分析linux系統的性能,對linux進(jìn)程調度的原理、算法以及過(guò)程進(jìn)行了分析。關(guān)鍵詞:進(jìn)程調度;內核;多任務(wù)中圖分類(lèi)號:TP311文獻標識碼:A文章 編號:1009 -042011)01-0070- -02Linux Process Scheduling AnalysisZHONG Cheng, LU Wei-heng, LI De -yong(iangnan Computing Technology Institute, Wuxi 214083, China)Abstract: The linux system is many task operate systems that can be applied to many platforms, it is extensively been applied to a built- inelectronics product, the efficiency of linux system becomes one of the important factors of electronics product function.The article is fomthe angle that the linux progress adjusted a degree to analyze the function of linux system, adjusted principle, calculate way and process ofdegree to carry on analysis to the linux progress.Key words: process scheduling; kemel; muliusk1概述Linux 操作系統是-一種開(kāi)源、免費.能夠運用于多平臺的多任務(wù)操作系統。多任務(wù)操作系統就是能夠同時(shí)并發(fā)的交互的處理多進(jìn)程任務(wù)的系統,然而多個(gè)進(jìn)程的運行,就不可避免的競爭系統的資源,尤其是在單處理器系統上,進(jìn)程就不可能同時(shí)占用處理器資源,這樣進(jìn)程調度就是Linux內核不可或缺的成員,它是負貴選擇下一個(gè)可以運行的進(jìn)程。進(jìn)程調度程序可以看成在可運行態(tài)進(jìn)程之間分配有限資源的內核子系統,它是多任務(wù)操作系統的基礎.只有通過(guò)調度程序得合理調度,系統資源才會(huì )最大化的發(fā)揮它的作用,多進(jìn)程才會(huì )有并發(fā)執行的效果。2基本原理2.1原則進(jìn)程的運行需要系統上的各種資源,如內存.cpu、各種專(zhuān)用模塊等,因此linux進(jìn)程的調度實(shí)際上就是合理的把這些資源分配給各個(gè)進(jìn)程,而如何分配則是取決于具體的調度算法,不同的應用場(chǎng)合需要的資源存在著(zhù)很多差異,選用什么樣的調度算法要依據具體的資源分配策略。一個(gè)好的調度算法應該注意以下方面:1)高效率:使CPU盡可能的保持忙碌,最大限度地利用處理器的原則是.只要有可以執行的進(jìn)程,那么就總會(huì )有進(jìn)程正在執行。2)公平:保證每個(gè)進(jìn)程得到合理的資源分配時(shí)間.避免一個(gè)進(jìn)程長(cháng)期占用同一個(gè)資源,不存在一一個(gè)進(jìn)程長(cháng)時(shí)間獲得不到資源。3)響應時(shí)間:使進(jìn)程切換或獲取資源時(shí)的相應時(shí)間盡可能的短,以最快的速度進(jìn)人到工作狀態(tài)。4)周轉時(shí)間:使得用戶(hù)等待結果輸出的時(shí)間盡可能矩。5)吞吐量:使得在單位時(shí)間內盡可能多的處理進(jìn)程。2.2調度的依據調度程序在運行時(shí),它主要依據每個(gè)進(jìn)程的tsk struck結構中need. reeched .nice .counter .policy和nt prority各項根據不同的分配策略依靠調度算法決定下-個(gè)要執行的進(jìn)程。1)need. _resched:當進(jìn)程需要進(jìn)行調度的時(shí)候,會(huì )去判斷這個(gè)變量的值.如果為1,則會(huì )調用schedule0。2)counter:時(shí)間片,它表明一個(gè)進(jìn)程處于運行狀態(tài)所能夠持續的時(shí)間,每當-一個(gè)時(shí)鐘中斷到來(lái)時(shí),就會(huì )減1,當它的值減少為0時(shí),會(huì )把need_resched變量置1,此時(shí)進(jìn)程將會(huì )進(jìn)入到調度隊列從而不再運行。調度策略都要給每個(gè)進(jìn)程規定一個(gè)默認的時(shí)間片,這個(gè)時(shí)間片的長(cháng)度要合理的設置,時(shí)間片過(guò)長(cháng),會(huì )導致- -個(gè)進(jìn)程長(cháng)時(shí)間占用資源,這樣進(jìn)程的交互性就差,其它進(jìn)程也難以公平的獲得資源;時(shí)間片過(guò)短,會(huì )使進(jìn)程頻繁的切換,進(jìn)程切換的時(shí)間所占比例增大.從而致使CPU的效率降低。3)nice: 進(jìn)程的靜態(tài)優(yōu)先級,根據優(yōu)先級的高低來(lái)確定不同進(jìn)程的counter的初值。調度算法中最基本的一類(lèi)就是基于優(yōu)先級的調度,它根:據進(jìn)程在系統中的重要程度以及所省的CPU處理時(shí)間而分級.優(yōu)先級高的先執行,低的后執行,同優(yōu)先級的按照輪轉的方式執行。調度程序總是選擇優(yōu)先級最高并且時(shí)間片還沒(méi)有使用完的進(jìn)程首先執行,因此可以通過(guò)修改進(jìn)程的優(yōu)先級控制進(jìn)程的調度。4)t_prority:進(jìn)程的動(dòng)態(tài)優(yōu)先級,一-般每個(gè)進(jìn)程都會(huì )有一個(gè)基本優(yōu)先級.調度程序可以在實(shí)際運行過(guò)程中,根據需要動(dòng)態(tài)提高或降低該值,可以控制進(jìn)程的調度。中國煤化工YHCNMHG收稿日期:2010-11-02作者簡(jiǎn)介:鐘誠(1986-),男,助理工程師,江南計算技術(shù)研究所碩士研究生,主要研究方向為信息安全。70_ .網(wǎng)絡(luò )通訊及安全 .......本欄目責任編輯:馮蕾第7卷第1期(2011年1月)Computer Knowtedge and Technology電訾知識與技術(shù)5)policy:進(jìn)程的調度策略.進(jìn)程分為實(shí)時(shí)進(jìn)程和普通進(jìn)程,它們所采用的調度算法不同,實(shí)時(shí)進(jìn)程對執行的效率要求更高,一般情況下優(yōu)先級都會(huì )高于普通進(jìn)程。對于普通進(jìn)程,選擇進(jìn)程主要依據counter和nice。3調度算法3.1時(shí)間片輪轉調度算法在通常的時(shí)間片輪轉算法中.系統將可以運行的程序按照先后順序加人到一個(gè)等待隊列中.每次分配時(shí)將CPU使用權交給隊列頭部的進(jìn)程.同時(shí)賦予一個(gè)時(shí)間片,隨著(zhù)時(shí)鐘中斷的不斷到來(lái),減少時(shí)間片.當時(shí)間片用完時(shí).系統發(fā)出信號,通知調度程序,調度程序終止該進(jìn)程的執行,并把該進(jìn)程送到隊尾.等待下一次輪詢(xún)。這時(shí)將CPU資源交給隊列苘部的進(jìn)程.同樣根據策略分給它-一個(gè)時(shí)間片,依次循環(huán)。這樣就可以保證每個(gè)進(jìn)程都在較為合理的時(shí)間內獲得資源,不會(huì )出現一個(gè)進(jìn)程獨占的現象。3.2優(yōu)先權調度算法由于各個(gè)進(jìn)程的應用環(huán)境差異,執行的功能有所區別,因此不同的進(jìn)程對于系統的緊迫程度就有所不同.有些進(jìn)程需要進(jìn)入系統后優(yōu)先處理.而有些進(jìn)程則不需要實(shí)時(shí)處理,這便引入了優(yōu)先權調度算法。根據系統對實(shí)時(shí)性要求的情況又可進(jìn)- 步分為非搶占式和搶占式調度算法。非搶占式調度算法,在這種方式下,系統一旦把CPU資源分給優(yōu)先級最高的進(jìn)程之后.在該進(jìn)程結束之前,不會(huì )再次調用調度函數,只有因為該進(jìn)程正常結束或者由于某些事件導致該進(jìn)程放棄CPU時(shí),調度函數才會(huì )把CPU資源重新交給另一個(gè)優(yōu)先級最高的進(jìn)程。這種方式適用于批處理系統等對于實(shí)時(shí)性要求不嚴格的系統中。搶占式調度算法,在這種方式下.系統把CPU資源分給當前隊列中優(yōu)先級最高的進(jìn)程之后,- -旦出現了另一個(gè)優(yōu)先級更高的進(jìn)程,則立刻調用調度雨數把CPU資源交給這個(gè)進(jìn)程。這種調度算法在新進(jìn)程到來(lái)時(shí)都會(huì )與正在執行的進(jìn)程進(jìn)行優(yōu)先級比較,如果高于肖前進(jìn)程就調用調度函數,否則就進(jìn)入等待隊列。搶占時(shí)調度算法更好的滿(mǎn)足緊迫的進(jìn)程,故常用與實(shí)時(shí)性要求較高的系統中。3.3多級反饋隊列調度算法這種調度算法綜合了時(shí)間片輪轉調度算法和優(yōu)先權調度算法的優(yōu)點(diǎn).首先根據等待隊列中進(jìn)程的優(yōu)先級,把時(shí)間片分給優(yōu)先級最高的-批進(jìn)程.在這些進(jìn)程中運行時(shí)間片輪轉調度,當有更高的優(yōu)先級進(jìn)程到來(lái)時(shí),會(huì )優(yōu)先分給時(shí)間片。4Linux進(jìn)程調度過(guò)程分析4.1轉入調度程序的時(shí)機1)進(jìn)程在執行的過(guò)程中遇到狀態(tài)切換的時(shí)候:當進(jìn)程需要進(jìn)人休眠或者終止狀態(tài)時(shí)而調用了相應的進(jìn)程處理函數時(shí),這些函數會(huì )觸發(fā)進(jìn)程調度函數。2)有新的并且符合運行條件的進(jìn)程加入到等待隊列中;3)進(jìn)程從其他系統調用中返回用戶(hù)態(tài)時(shí):進(jìn)程當從系統調用中返回時(shí),都會(huì )對調度標識的檢測.如果調度標識指示需要調度,則調用調度函數進(jìn)行調度。4)當前運行的進(jìn)程不再擁有counter值時(shí);5)設備驅動(dòng)程序:當設備API經(jīng)常調用驅動(dòng)程序時(shí),驅動(dòng)程序會(huì )反復檢測need.,esched值,需要時(shí)調用schedule兩數獲取或放棄CPU資源。4.2調度函數schedule當系統的進(jìn)程符合4.1中所敘述的時(shí)機后,便轉入調度函數。此過(guò)程一般分為三部分內容:調度前的檢查過(guò)程,對當前進(jìn)程的處理.選擇下一個(gè)可以執行的進(jìn)程。1)調度前的檢查過(guò)程:調度函數主要對當前進(jìn)程的地址空間進(jìn)行檢查,如果該進(jìn)程沒(méi)有地址空間可以使用,則必然出錯,檢查是否是中斷服務(wù)程序調用了調度函數.如果是則出錯。2)對當前進(jìn)程進(jìn)行處理:首先檢查當前進(jìn)程的狀態(tài),如果當前進(jìn)程的狀態(tài)為T(mén)ASKZOMBE或是TASK.INTERRUPTIBLE,則直接將該進(jìn)程從運行隊列中刪除;其次,檢查當前進(jìn)程的時(shí)間片,如果是來(lái)用時(shí)間片輪轉調度算法,該值為0則對進(jìn)程重新分配時(shí)間片,再將該進(jìn)程置隊列尾部。3)將資源交給符合條件的新的進(jìn)程:搜索運行隊列中所有進(jìn)程的權值,并與當前進(jìn)程的權值進(jìn)行比較.選撣權值最大的進(jìn)程,如果運行隊列中所有進(jìn)程的權值都降為零時(shí).則表示當前隊列中的進(jìn)程的時(shí)間片都使用光了,需要根據策略重新獲取時(shí)間片。最終選取下一個(gè)可執行的進(jìn)程,將內核地址空間切換至用戶(hù)地址空間。5總結進(jìn)程調度程序時(shí)內核的重要組成部分,這是因為linux系統的運行離不開(kāi)進(jìn)程.而進(jìn)程又都必須占用計算機的唯一資源CPU。然而,進(jìn)程執行的功能,所備的性能差異很大.調度算法很難做到既適合眾多的可運行的進(jìn)程,又具有可伸縮性,還可以在吞吐量與調度周期之間求得平衡,同時(shí)還要滿(mǎn)足各種負載,因此如何最大化的權衡各種告中縣linww講程調度的¥鍵所在。中國煤化工參考文獻:[1]張同光.Linux 2.6內核分析一對 進(jìn)程調度機制的分小長(cháng)春工業(yè)大學(xué)學(xué)YHCNMHG[2]楊嘉,王移芝.Linux內核調度器算法研究與性能分析[I].計算機技術(shù)與發(fā)展2006(3).[3]謝偉毅.Linux調度算法在桌面應用環(huán)境中的改進(jìn)[]計算機工程與應用2006(23).本欄目責任編輯:馮靜.......網(wǎng)絡(luò )遇訊及安全" 71.

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院