<output id="yn1pw"></output>
    <wbr id="yn1pw"></wbr>

    <form id="yn1pw"><legend id="yn1pw"></legend></form>

  1. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    細談:嵌入式技術在物聯網中的應用

    • 發布:達內
    • 來源:網絡
    • 時間:2015-07-04 15:04

    一、引言

    linux本身為分時操作系統,其系統目標為較好的平均響應時間和較高的吞吐量,而實時系統則主要考慮任務的按時完成、盡量減少進程運行的不可預測性等。但與商業嵌入式操作系統相比linux遵循gpl,具有源代碼開放、定制方便、支持廣泛的計算機硬件等優點,所以,近年來嵌入式linux成為嵌入式系統方向上的一個研究熱點。本文首先分析了實時系統的特點和linux內核在實時應用方面的不足,然后針對影響操作系統實時性能的若干方面進行研究,提出解決方案,最后總結全文。

    二、實時系統的分類

    實時系統最重要的特點就是實時性,即系統的正確性不僅僅依賴于計算的邏輯結果的正確性,還取決于輸出結果時間的及時性。從這個角度看,實時系統是“一個能夠在指定或者確定的時間內完成系統功能和對外部環境做出響應的系統”。按對實時性能要求的程度,實時系統可分為兩

    類:

    (1) 硬實時系統:要求可確定性強,具有明確的實時約束,在某個限定的時刻之前不能完成任務將造成災難性的后果。

    (2) 軟實時系統:也對時間敏感,但偶爾發生不能滿足嚴格實時要求的情況也是允許的。

    三、linux在實時方面存在的不足

    linux雖然符合posix1003.1b關于實時擴展部分的標準,例如:支持sched_fifo和sched_rr實時調度策略,鎖內存機制 (memorylocking),實時信號等功能,但是由于其最初的設計目標為通用分時操作系統,因此作為一個實時操作系統,linux仍然存在如下缺陷:

    (1) linux的內核本身是非搶占的。Linux下分用戶態和核心態兩種模式,當進程運行在用戶態時,可被優先級更高的進程搶占,但當它進入核心態時,其他用戶態進程優先級再高也不能搶占它。

    (2) linux雖然給實時進程提供了較高的優先級,但是沒有加入時間限制。例如:完成的最后期限、應在多長時間內完成、執行周期等等。同時,其他大量的非實時進程也可能對實時進程造成阻塞,無法確保實時進程的響應時間。

    (3) 時鐘粒度粗糙。時鐘管理是操作系統的脈搏,任務的執行和中止在很多情況下都是由時鐘直接或間接喚起的,它還是進程調度的重要依據。Linux的周期模式定時器頻率僅為100hz,遠不能滿足實時應用的要求。

    四、改進內核實時性的分析與研究

    從中斷軟件模擬、可搶占式內核體系結構、實時任務的調度策略這三個方面對嵌入式linux內核進行研究,并給出了相應的提高實時性的方法。

    1. 響應時間的分析及解決方法

    任務的響應時間被定義為一個事件的發生和任務響應這一事件開始執行之間的間隔時間,通常有以下幾個因素影響任務的響應時間。

    (1) 中斷分配時間idt(interruptdispatchtime):當一個中斷產生時,在調用中斷處理程序占用cpu以前,操作系統用來保存所有的寄存器中的內容和系統中其他的關于這一任務狀態的時間。

    (2) 中斷服務時間:ist(interruptservicetime):中斷服務程序用來從硬件設備讀取信息或從操作系統收集信息所用的時間。

    (3) 內核搶占時間kpt(kernelpreemptiontime):在操作系統意欲搶占當前進程與搶占實際上發生之間的時間間隔。

    (4) 調度延遲sd(scheduledelay):調度程序用來調度另一個線程投入運行的時間。

    (5) 進程切換時間cst(contestswitchingtime):當前線程用來保存寄存器和系統狀態的時間與將要運行的線程恢復寄存器中的內容和系統狀態的時間總和。

    (6) 系統調用返回時間rst(returnfromsystemcall):處于內核態的線程在它返回用戶態之前檢查一些狀態所用的時間。

    以上這些時間中,sd、cst和rst總是固定不變的,如果linux內核設計得當的話,idt、ist和kpt可以有效的減少。在實時應用的環境中,若干個中斷同時發生的情況是完全可能存在的。這時任務的響應時間最多將包含n(idt+ist),n為中斷數。

    中斷軟件模擬被用來解決多個中斷同

    時發生的情形。當一個硬件中斷發生時,系統只是簡單的在時間表中報告這一時間的發生,然后立即將cpu的控制權返回給操作系統,完全略過了查中斷向量表并執行相應的中斷服務程序。系統在linux內核之前截獲了所有應中斷信號,并根據當前實時任務的需要,由軟中斷模擬機制處理或掛起該中斷(例如:ibmpc中的8259中斷控制器)。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:無所不在的嵌入式系統
    下一篇:嵌入式系統硬件電路設計時需要考慮的基本問題

    單片機:寫1清零,寫0清零,有什么區別?

    嵌入式工程師一定不要亂用全局變量

    嵌入式培訓靠譜嗎?就業怎么樣?

    新手如何學習單片機?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    高清在线不卡一区二区_2019最新国产高清不卡a_亚洲欧洲日本aⅴ 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>