任強


【摘要】本文通過對Linux不同版本調度機制的研究,分析對SMP的支持能力。并分析不同版本的調度機制、算法對SMP性能的影響。支持SMP的Linux的逐步完善過程中所積累的經驗及成果,無論在理論上還是實踐上,都為其他嵌入式操作系統實現SMP架構提供了很好的借鑒作用。因此,深入分析Linux SMP系統的實現原理,對后續其他嵌入式操作系統實現SMP架構能夠提供理論支持和實踐依據。
【關鍵詞】Linux;SMP;調度;內核
Linux從2.0版本開始增加對于SMP的支持,最初的實現較為簡單,以后隨著版本更新,SMP的實現也逐步趨于完善。
1. 本文主要對Linux 2.4和2.6版本的內核調度機制進行深入分析
1.1Linux2.2以前的內核中,SMP是在用戶級實現,Linux內核本身并不能因有多個處理器核而得到加速。而在Linux 2.4內核以后,SMP在內核級實現,使用多處理器核可以加快內核的處理速度。目前的Linux 2.6有以下優點:采用時間復雜度為O(1)的調度算法,調度器開銷恒定,與當前系統負載無關,實時性能更好;鎖粒度大幅度減小;優化了計算密集型的批處理作業的調度;系統負載重的情況下,調度器也能發揮良好的性能。這些使得系統性能和實時性都有了很大的改善。
1.2Linux 2.4的調度機制的特點主要有兩個:內核不可搶占以及調度算法簡單高效。在Linux 2.4中,內核是不可搶占的,即進程在內核態執行時,它不能被任意掛起,也不能被另一個進程代替,除非進程自己放棄處理器。一個最典型的例子就是內核進程中如果出現死循環并且進程不調用schedule( )進行任務切換,系統就會失去響應。此時盡管各種中斷(包括時鐘中斷)仍然在響應,但卻不會發生調度,其他進程(包括內核進程)都沒有機會運行。Linux 操作系統內核中負責進程調度的具體函數是schedule( ),它按照不同的調度策略對實時進程和非實時進程進行不同的調度處理。它主要完成兩項工作:遍歷就緒隊列中的所有進程,調用goodness()函數計算每一個進程的權值,從中選擇權值最大的進程投入運行。如果整個運行隊列中的所有進程的時間片都耗盡,重新分配時間片。
1.3Linux的進程用task_struct結構體表示。如圖1所示,系統中的所有進程被組織到以初始化任務init_task為表頭的雙向鏈表中,該鏈表是全系統唯一的,每個處理器核都分別對應了一個idle_task,它們的task_struct指針被組織到init_tasks[NR_CORES]數組中,調度器通過idle_task(cpu)宏訪問這些idle進程。以runqueue_head為表頭的鏈表記錄了所有處于就緒態的進程(當前正在運行的進程也在其中,但idle_task除外),調度器總是從中選取最適合調度的進程投入運行。
1.4由于所有處理器核共享一個運行隊列,需要使用一個運行隊列鎖來保證互斥訪問,因此,在 SMP 系統中,一個核處理器從運行隊列選擇任務就會阻止其他核操作這個隊列。結果是,空閑處理器核需要等待這個處理器核釋放運行隊列鎖,這樣會造成效率的降低。
1.5Linux 2.6在 Linux 2.4的基礎上做出了很大的改進,它能夠更好地發揮SMP的性能。首先,它改變了Linux 2.4中多個處理器核共享一個運行隊列的做法,而是每個處理器核都有自己的運行隊列,這樣就允許同一時刻多個處理器核進行任務調度,而且系統根據所有處理器核的負載進行負載平衡。負載平衡程序由函數load_balance()實現,只要當前的就緒隊列為空,它就會被調用,此外,在系統空閑時每隔1毫秒調用一次,而其他情況下每隔200 毫秒調用一次,以便重新分配任務負載,維持核間的負載平衡。但是由于負載平衡程序的執行開銷較大,而且執行時間具有不確定性,所以一定程度上影響了Linux的實時性和可預測性。
均增加。玄武巖纖維的摻入,提高了混凝土材料抵抗沖擊破壞的能力,最大程度地延緩裂縫的擴展,保證了混凝土材料試件的完整性。
(4)纖維體積率僅為0.10%的混凝土無論是初裂、終裂次數還是破壞能,較空白混凝土均有較大幅度的提高。在試件初裂后,纖維體積率越大,破壞所需的沖擊能均顯著升高,0.30%體積率對應沖擊能達到空白混凝土的10倍以上。
3. 結論
基于纖維增強理論,通過正交試驗分析玄武巖纖維對混凝土性能的作用規律,對纖維參數主次進行區別,并進一步優選評價指標確定配合比中的纖維參數。主要結論包括:
(1)玄武巖纖維與水泥混凝土材料有很好的適應性,進行相關配合比設計是可行的;
(2)利用正交試驗分析方法,得出影響混凝土性能的纖維參數中,體積摻量是主要因素,長徑比是相對次要因素。在配合比設計中,應著重考慮主要因素的選值;
(3)纖維對混凝土的工作性存在較大影響,可摻減水劑解決。與普通混凝土相比,在纖維混凝土的配合比設計中,重點考慮解決混凝土工作性問題。
參考文獻
[1]中華人民共和國行業標準.JTG F30-2003 公路水泥混凝土路面施工技術規范.北京:人民交通出版社,2003.
[2]中華人民共和國行業標準.JTG E30-2005 《公路工程水泥及水泥混凝土試驗規程》.北京:人民交通出版社,2005.
[3]趙玉肖.《玄武巖纖維增強水泥砂漿性能試驗研究》.《中外公路》.2013年10月第33卷第5期.
[作者簡介] 孫俊峰(1973-),男,籍貫:河北省沽源縣人,學歷:本科,職稱:工程師,從事公路工程建設與管理工作。