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