女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]嵌入式Linux實(shí)時性能提高方案

1 引言

  分析了Linux的實(shí)時性,針對其在實(shí)時應(yīng)用中的技術(shù)障礙,在參考了與此相關(guān)研究基礎(chǔ)上,從三方面提出了改善Linux實(shí)時性能的改進(jìn)措施。為提高嵌入式應(yīng)用響應(yīng)時間精度,提出兩種細(xì)化Linux時鐘粒度方法;為增強(qiáng)系統(tǒng)內(nèi)核對實(shí)時任務(wù)的響應(yīng)能力,采用插入搶占點(diǎn)和修改內(nèi)核法增強(qiáng)Linux內(nèi)核的可搶占性;為保證硬實(shí)時任務(wù)的時限要求,把原Linux的單運(yùn)行隊(duì)列改為雙運(yùn)行隊(duì)列,硬實(shí)時任務(wù)單獨(dú)被放在一個隊(duì)列中,并采用MLF調(diào)度算法代替原內(nèi)核的FIFO調(diào)度算法。本文分析了標(biāo)準(zhǔn)Linux在實(shí)時應(yīng)用中的技術(shù)障礙,參考了修改核方法的思想,從內(nèi)核時鐘管理、內(nèi)核的搶占性、內(nèi)核調(diào)度算法三方面論述了改善標(biāo)準(zhǔn)Linux實(shí)時性能的方法。

  2 Linux 在實(shí)時應(yīng)用中的技術(shù)障礙

  2.1 Linux的實(shí)時性分析

  Linux作為一個通用操作系統(tǒng),主要考慮的是調(diào)度的公平性和吞吐量等指標(biāo)。然而,在實(shí)時方面它還不能很好地滿足實(shí)時系統(tǒng)方面的需要,其本身僅僅提供了一些實(shí)時處理的支持,這包括支持大部分POSIX標(biāo)準(zhǔn)中的實(shí)時功能,支持多任務(wù)、多線程,具有豐富的通信機(jī)制等;同時也提供了符合POSIX標(biāo)準(zhǔn)的調(diào)度策略,包括FIFO調(diào)度策略、時間片輪轉(zhuǎn)調(diào)度策略和靜態(tài)優(yōu)先級搶占式調(diào)度策略。Linux區(qū)分實(shí)時進(jìn)程和普通進(jìn)程,并采用不同的調(diào)度策略。

  為了同時支持實(shí)時和非實(shí)時兩種進(jìn)程,Linux的調(diào)度策略簡單講就是優(yōu)先級加上時間片。當(dāng)系統(tǒng)中有實(shí)時進(jìn)程到來時,系統(tǒng)賦予它最高的優(yōu)先級。體現(xiàn)在實(shí)時性上,Linux采用了兩種簡單的調(diào)度策略,即先來先服務(wù)調(diào)度(SCHED-FIFO)和時間片輪轉(zhuǎn)調(diào)度(SCHED-RR)。具體是將所有處于運(yùn)行狀態(tài)的任務(wù)掛接在一個run-queue 隊(duì)列中,并將任務(wù)分成實(shí)時和非實(shí)時任務(wù),對不同的任務(wù),在其任務(wù)控制塊task-struct中用一個policy屬性來確定其調(diào)度策略。對實(shí)時性要求較嚴(yán)的硬實(shí)時任務(wù)采用SCHED-FIFO調(diào)度,使之在一次調(diào)度后運(yùn)行完畢。對普通非實(shí)時進(jìn)程,Linux采用基于優(yōu)先級的輪轉(zhuǎn)策略。

  2.2 Linux在實(shí)時應(yīng)用中的技術(shù)障礙

  盡管Linux本身提供了一些支持實(shí)時性的機(jī)制,然而,由于Linux系統(tǒng)是以高的吞吐量和公平性為追求目標(biāo),基本上沒有考慮實(shí)時應(yīng)用所要滿足的時間約束,它只是提供了一些相對簡單的任務(wù)調(diào)度策略。因此,實(shí)時性問題是將Linux應(yīng)用于嵌入式系統(tǒng)開發(fā)的一大障礙,無法在硬實(shí)時系統(tǒng)中得到應(yīng)用。 Linux在實(shí)時應(yīng)用中的技術(shù)障礙具體表現(xiàn)在:

  (1)Linux系統(tǒng)時鐘精度太過粗糙,時鐘中斷周期為10ms,使得其時間粒度過大,加大了任務(wù)響應(yīng)延遲。

  (2) Linux的內(nèi)核是不可搶占的, 當(dāng)一個任務(wù)通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)運(yùn)行時,一個具有更高優(yōu)先級的進(jìn)程,只有等待處于核心態(tài)的系統(tǒng)調(diào)用返回后方能執(zhí)行,這將導(dǎo)致優(yōu)先級逆轉(zhuǎn)。實(shí)時任務(wù)執(zhí)行時間的不確定性,顯然不能滿足硬實(shí)時應(yīng)用的要求。

  (3) Linux采用對臨界區(qū)操作時屏蔽中斷的方式,在中斷處理中是不允許進(jìn)行任務(wù)調(diào)度的,從而抑制了系統(tǒng)及時響應(yīng)外部操作的能力。

  (4) 缺乏有效的實(shí)時任務(wù)調(diào)度機(jī)制和調(diào)度算法。

  針對這些問題,利用Linux作為底層操作系統(tǒng),必須增強(qiáng)其內(nèi)核的實(shí)時性能,從而構(gòu)建出一個具有實(shí)時處理能力的嵌入式系統(tǒng),適應(yīng)嵌入式領(lǐng)域應(yīng)用的需要。2.3 當(dāng)前增強(qiáng)Linux內(nèi)核實(shí)時性的主流技術(shù)

 

  近年來,人們對于Linux內(nèi)核實(shí)時性改造提出了一些方法和設(shè)想,它們采用了不同的思路和技術(shù)方案。歸納總結(jié),支持Linux的硬實(shí)時性一般有兩種策略[5]:一種是直接修改Linux內(nèi)核,重新編寫一個由優(yōu)先級驅(qū)動的實(shí)時調(diào)度器(Real-time Scheduler),替換原有內(nèi)核中的進(jìn)程調(diào)度器sched.c,KURT是采用這一方案較為成功的實(shí)時Linux操作系統(tǒng);另外一種是在Linux內(nèi)核之外, 以可加載內(nèi)核模塊(Loadable Kernel Module)的形式添加實(shí)時內(nèi)核,確保其高響應(yīng)特性,實(shí)時內(nèi)核接管來自硬件的所有中斷,并依據(jù)是否是實(shí)時任務(wù)決定是否直接響應(yīng)。新墨西哥科技大學(xué)的 RT-Linux,就是基于這種策略而開發(fā)的。以上兩種策略有其借鑒之處,但如果綜合考慮任務(wù)響應(yīng)、內(nèi)核搶占性、實(shí)時調(diào)度策略等幾個影響操作系統(tǒng)實(shí)時性能的重要方面,它們還不能很好的滿足實(shí)時性問題。為了增強(qiáng)嵌入式Linux實(shí)時性能,下文將就內(nèi)核時鐘精度、內(nèi)核的搶占性以及內(nèi)核調(diào)度算法等相關(guān)問題重點(diǎn)研究相應(yīng)的解決方法。

  3 改善嵌入式Linux實(shí)時性能的方法

  針對Linux在實(shí)時應(yīng)用中的技術(shù)障礙,將Linux改造成為支持實(shí)時任務(wù)的嵌入式操作系統(tǒng), 主要從下面三個方面進(jìn)行著手。

  3.1細(xì)化時鐘粒度

  精確的計(jì)時是實(shí)時調(diào)度器正確操作所必須的,調(diào)度器通常要求在一個特定的時刻進(jìn)行任務(wù)切換,計(jì)時的錯誤將導(dǎo)致背離計(jì)劃的調(diào)度,引起任務(wù)釋放抖動。標(biāo)準(zhǔn) Linux系統(tǒng)時鐘精度太過粗糙,時鐘中斷周期為10ms,不能滿足特定嵌入式應(yīng)用領(lǐng)域中對于響應(yīng)時間精度的要求。因此,在實(shí)時Linux應(yīng)用中,需要細(xì)化其時鐘粒度,具體有兩種方式可以解決時鐘粒度問題:一是通過直接修改內(nèi)核定時參數(shù)HZ的初值來細(xì)化時鐘粒度,如將標(biāo)準(zhǔn)Linux中內(nèi)核定時參數(shù)HZ改為10000, 則時鐘粒度可以達(dá)到100us,這種方式雖然會增加一些系統(tǒng)開銷,但在強(qiáng)周期性環(huán)境下,對定時器的設(shè)置只需初始化一次,在一定程度上保證了處理效率;二是通過對可編程中斷定時器8254或先進(jìn)的可編程中斷控制器進(jìn)行編程來改進(jìn)Linux時鐘機(jī)制,以提高其時鐘的分辨率,使毫秒級的粗粒度定時器變成微秒級的細(xì)粒度定時器。

  3.2 增強(qiáng)Linux內(nèi)核的搶占性

  標(biāo)準(zhǔn)Linux內(nèi)核是不可搶占的,導(dǎo)致較大的延遲,增強(qiáng)內(nèi)核的可搶占性能,可提高系統(tǒng)內(nèi)核對實(shí)時任務(wù)的響應(yīng)能力。目前,有兩種方法修改Linux內(nèi)核以提高實(shí)時任務(wù)搶占非實(shí)時任務(wù)的能力:一是在內(nèi)核中增加搶占點(diǎn)的方法;二是直接將Linux內(nèi)核改造成可搶占式內(nèi)核。插入搶占點(diǎn)方法是在Linux內(nèi)核中插入一些搶占點(diǎn),當(dāng)一個系統(tǒng)調(diào)用執(zhí)行到搶占點(diǎn)時,如果有更高優(yōu)先級的實(shí)時進(jìn)程正在等待運(yùn)行,那么正在執(zhí)行系統(tǒng)調(diào)用的內(nèi)核進(jìn)程將會把CPU的控制權(quán)轉(zhuǎn)交給等待運(yùn)行的實(shí)時進(jìn)程;如果沒有更高優(yōu)先級的實(shí)時進(jìn)程等待,則當(dāng)前進(jìn)程將繼續(xù)執(zhí)行,此時系統(tǒng)增加的開銷僅僅是檢測一下調(diào)度標(biāo)志。將Linux內(nèi)核改造成可搶占式內(nèi)核方法的基本思想是產(chǎn)生運(yùn)行調(diào)度器的機(jī)會,縮短任務(wù)發(fā)生到調(diào)度函數(shù)運(yùn)行的時間間隔。這種方法修改了Linux源代碼中的自旋鎖宏以避免競爭,并在其中引入一個稱作搶占鎖計(jì)數(shù)器(PLC)的新的計(jì)數(shù)信號允許內(nèi)核代碼搶占,當(dāng)它為0時,允許搶占;當(dāng)其為大于0的任何值時,禁止搶占。目前,針對這兩種修改 Linux內(nèi)核的方法,已經(jīng)有兩種比較成熟的Linux內(nèi)核補(bǔ)丁被研制出來:搶占式補(bǔ)丁和低時延補(bǔ)丁。其中,搶占式補(bǔ)丁是Monta Vista開發(fā)的,它修改了內(nèi)核代碼中的spinlock宏和中斷返回代碼,使得當(dāng)前進(jìn)程可被安全搶占,當(dāng)自旋鎖釋放或者中斷線程完成時,調(diào)度器就有機(jī)會執(zhí)行調(diào)度;低時延補(bǔ)丁是由Ingo Malnor提出,該方法只是在執(zhí)行時間長的代碼塊上搶占,不采用強(qiáng)制式搶占,因此,如何找到延時長的代碼塊是解決問題的關(guān)鍵。

  3.3 改善Linux內(nèi)核實(shí)時調(diào)度器的調(diào)度策略

  將進(jìn)入系統(tǒng)的所有任務(wù)按實(shí)時性分成三類:硬實(shí)時、軟實(shí)時、非實(shí)時任務(wù)[6]。硬實(shí)時要求系統(tǒng)確保任務(wù)執(zhí)行最壞情況下的執(zhí)行時間,即必須滿足實(shí)時事件的響應(yīng)時間的截止期限,否則,將引發(fā)致命的錯誤;軟實(shí)時是指統(tǒng)計(jì)意義上的實(shí)時,一般整體吞吐量大或整體響應(yīng)速度快,但不能保證特定任務(wù)在指定時期內(nèi)完成。針對不同的實(shí)時性任務(wù),分別采用不同的調(diào)度方法進(jìn)行處理。

  為了嚴(yán)格保證硬實(shí)時任務(wù)的時限要求,改善的Linux內(nèi)核實(shí)時調(diào)度器采用了優(yōu)先級調(diào)度算法,目前最小松弛時間優(yōu)先調(diào)度算法MLF(Minimum- Laxity-First Scheduling Algorithm)是動態(tài)優(yōu)先級調(diào)度最常見的實(shí)時調(diào)度策略。它在系統(tǒng)中為每一個任務(wù)設(shè)定松弛時間(任務(wù)的松弛時間等于任務(wù)的截止期減去任務(wù)執(zhí)行時間、當(dāng)前時間)即: laxity= deadline―current_time―CPU_time_needed,系統(tǒng)優(yōu)先執(zhí)行具有最小松弛時間的任務(wù)。根據(jù)就緒隊(duì)列的各任務(wù)的松弛時間來分配優(yōu)先級,松弛時間最小的任務(wù)具有最高的優(yōu)先級。為了提高Linux的實(shí)時性,我們設(shè)計(jì)了MLF調(diào)度器,并把它作為可加載模塊加入Linux內(nèi)核中,在實(shí)現(xiàn)中需對內(nèi)核進(jìn)行相應(yīng)的修改。為了區(qū)分任務(wù)的類型,對基本Linux的task_struct屬性進(jìn)行改進(jìn),在其中增加SCHED_MLF調(diào)度策略,并按task_struct中的policy的取值來進(jìn)行區(qū)分, 分別用SCHED_MLF,SCHED_RR,SCHED_OTHER來標(biāo)識硬實(shí)時、軟實(shí)時、非實(shí)時任務(wù)。將處于運(yùn)行狀態(tài)的三類任務(wù)放入兩個隊(duì)列,硬實(shí)時任務(wù)放入hard_real_queue隊(duì)列, 采用MLF調(diào)度算法,軟實(shí)時和非實(shí)時任務(wù)放入non_real_queue隊(duì)列(空閑任務(wù)也在其中),沿用原內(nèi)核的RR調(diào)度算法。這兩個隊(duì)列可以用一個 run_queue[2]的指針數(shù)組來指向,如圖1 所示。

  

 

  圖1 雙對列任務(wù)運(yùn)行

  雙隊(duì)列任務(wù)運(yùn)行過程與原內(nèi)核的單運(yùn)行隊(duì)列執(zhí)行流程的主要區(qū)別在:首先,各硬實(shí)時任務(wù)采用了MLF調(diào)度算法代替原內(nèi)核的FIFO調(diào)度,提高了 Linux系統(tǒng)的實(shí)時性能。其次,在判斷是否有軟中斷需要處理之前需判斷硬實(shí)時任務(wù)隊(duì)列是否為空,如果不為空,即使存在中斷的后半部分需要處理,也要先調(diào)度硬實(shí)時任務(wù)投入運(yùn)行,在硬實(shí)時隊(duì)列為空的條件下才去處理中斷的后半部分(因?yàn)橹袛嗟暮蟀氩糠譀]有硬實(shí)時任務(wù)緊急)。最后,如果沒有硬實(shí)時任務(wù)存在,則說明只有run_queue [1]隊(duì)列中有軟實(shí)時或非實(shí)時任務(wù)存在,這時的處理方法和原內(nèi)核對單運(yùn)行隊(duì)列的處理方法相同。這樣改進(jìn)后,可以明顯提高硬實(shí)時任務(wù)的調(diào)度效率,而在沒有硬實(shí)時任務(wù)時,系統(tǒng)性能沒有變化。

  4 結(jié)束語

  本文在分析Linux實(shí)時性的同時,探討了其本身提供的一些支持實(shí)時性的機(jī)制以及在實(shí)時應(yīng)用中的技術(shù)障礙。而后,基于增強(qiáng)Linux內(nèi)核實(shí)時性的主流技術(shù),從細(xì)化時鐘粒度、增強(qiáng)內(nèi)核搶占性及實(shí)時調(diào)度策略三方面入手,提出了改善Linux實(shí)時性能的優(yōu)化方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

一個線程只能屬于一個進(jìn)程,而一個進(jìn)程可以有多個線程,線程是進(jìn)程的一部分,就像工人是工廠的一部分。資源是分配給進(jìn)程的,同一進(jìn)程的所有線程共享該進(jìn)程的全部資源,就像工廠里的工人共享工廠的設(shè)備和場地。處理機(jī)(CPU)則是分給線...

關(guān)鍵字: 進(jìn)程 線程

DXC內(nèi)部新成立的Boomi卓越中心(COE),將成為跨行業(yè)客戶的創(chuàng)新樞紐 DXC與Boomi攜手助力客戶整合AI智能體,為規(guī)?;瘧?yīng)用代理式AI做好準(zhǔn)備 弗吉尼亞州阿什伯恩2025年8月19日 /美通社/ --名列財(cái)...

關(guān)鍵字: 進(jìn)程 AI BSP 自動化

上海 2025年7月9日 /美通社/ -- 據(jù)Gartner最新研究顯示,到2025年全球?qū)⒂?5%的企業(yè)將生成式AI納入核心業(yè)務(wù)流程。這其中,人力資源領(lǐng)域因其天...

關(guān)鍵字: AI BSP 進(jìn)程 CHINA

天津2025年6月25日 /美通社/ -- 2025年6月24日至26日,世界經(jīng)濟(jì)論壇第十六屆新領(lǐng)軍者年會(夏季達(dá)沃斯論壇)在天津舉行。本屆年會以"新時代企業(yè)家精神"為主題,匯聚來自全球1700余位政...

關(guān)鍵字: 人工智能 進(jìn)程 BSP 微軟

新加坡2025年6月4日 /美通社/ -- THE GROWHUB LIMITED(簡稱"The GrowHub"或"該公司")是一家總部位于新加坡的公司,利用區(qū)塊鏈技術(shù),來提升整...

關(guān)鍵字: 人工智能 進(jìn)程 AI 供應(yīng)鏈

南京 2025年5月30日 /美通社/ -- 日前,國際獨(dú)立第三方檢測、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TÜV大中華區(qū)(以下簡稱"TÜV萊茵"...

關(guān)鍵字: 協(xié)作機(jī)器人 進(jìn)程 測試 BSP

愛立信的人工智能(AI)專業(yè)知識將在一項(xiàng)嶄新的、以瑞典為重點(diǎn)的AI基礎(chǔ)設(shè)施中發(fā)揮核心作用。利用該基礎(chǔ)設(shè)施,由瑞典一批大型企業(yè)組成的聯(lián)盟將借助英偉達(dá)的計(jì)算能力,助力推動瑞典的數(shù)字化進(jìn)程。 北京 2025年5月28日 /...

關(guān)鍵字: 愛立信 英偉達(dá) AI 進(jìn)程

線程和進(jìn)程各有其獨(dú)特的優(yōu)缺點(diǎn)。線程執(zhí)行效率高,而進(jìn)程則在安全性和資源管理方面表現(xiàn)出色。在多道程序設(shè)計(jì)環(huán)境中,進(jìn)程的并發(fā)執(zhí)行和資源共享能力得到了充分利用,從而提高了系統(tǒng)的整體效率和資源利用率。

關(guān)鍵字: 線程 進(jìn)程

深圳2025年4月17日 /美通社/ -- 4月16日,戴盟機(jī)器人正式發(fā)布革命性家族產(chǎn)品——全球首款多維高分辨率高頻率視觸覺傳感器 DM-Tac W、多維觸覺感知五指靈巧手 DM-Hand1、便攜穿戴式遙操作數(shù)據(jù)采集系統(tǒng)...

關(guān)鍵字: 進(jìn)程 DM 機(jī)器人 觸覺傳感器

進(jìn)程是操作系統(tǒng)分配資源的基本單位。它是一個正在執(zhí)行的程序的實(shí)例,包含了程序的代碼、數(shù)據(jù)、堆棧以及與操作系統(tǒng)交互的各種資源。一個程序可以運(yùn)行多個進(jìn)程,比如一個瀏覽器可以打開多個標(biāo)簽頁,每個標(biāo)簽頁就是一個獨(dú)立的進(jìn)程。

關(guān)鍵字: 進(jìn)程 線程
關(guān)閉