您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linux操作系統實時性學習示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
一、實時系統基本概念
什么是實時系統,POSIX作了這樣的定義:指能夠在限定的響應時間內提供所需水平服務的系統。另個一被Donald Gillies提出定義為:一個實時系統是指計算的正確性不僅取決于程序的邏輯正確性,也取決于結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。實時系統對響應時間有嚴格要求。
實時操作系統(RTOS,RealTime Operation System)是指能夠在給定的截止時間前對內部或者外部的異常事件做出正確響應的操作系統。在實時操作系統中,進程的執行結果的正確與否不僅與邏輯運算或數學計算結果的正確性相關,還與進程運行結束得出結果的時間有關,也就是說,如果一個進程的運算結果是正確的,但是由于它完成時間已經超出了系統給定的***期限,在實時系統中,這個結果就是毫無意義的。
根據系統對響應時間約束條件的強弱可將實時操作系統分為兩大類:硬實時系統(HRT,HardReal-Time System)和軟實時系統(SRT,SoftReal-Time System)。
軟實時操作系統:軟實時操作系統對時間的限制不是十分苛刻,響應的時間可以相對延遲,即未超過***規定時間太多的范圍內,其結果都是可以接受的,不會產生嚴重的后果。
硬實時操作系統:對于硬實時操作系統而言,不僅要求各個任務能夠運行得到正確的結果,同時還必須在限定的時間內完成,這個時間是由系統本身確定的,這比軟實時操作系統的時間約束條件嚴格了許多。例如,在航天領域的嵌入式實時操作系統中,如果在規定的時間內未能得出所希望的運算結果,其產生的后果將是十分嚴重的。
二、Linux操作系統實時性
1、Linux系統框架
宏觀上,Linux的框架如圖1:
圖1 Linux框架圖
為了更加直觀,更加便于理解,Linux框架圖1,可以抽象成下圖2。
圖2
2、標準Linux內核制約實時性的因素
Linux中有大量不可搶占的區域
在Linux2.6中,內核己經可以搶占,因而實時性得到了加強"但是內核中仍有大量的不可搶占區域,如由自旋鎖(SPinlock)保護的臨界區。
時鐘粒度粗糙
Linux2.6內核雖然把時鐘頻率提高到1000 赫茲,定時精度達到了1ms,但遠不能滿足實時系統要求的微秒級定時精度,如數控系統要求50us 的定時精度。
關閉中斷
系統調用和中斷服務程序中,為了保護臨界區資源,Linux會長時間關閉中斷"有些系統調用和中斷服務程序的時間還很長,這樣會加大中斷延遲時間。
缺乏有效的實時任務調度機制和調度算法
Linux系統是按照分時系統的目標設計的,以達到系統較好的平均性能,強調平衡各進程之間的響應時間來保證公平的CPU時間占用。通常采用固定時間片的分時調度算法,內核不能搶占,而實時系統的行為更多的取決于復雜的不可預知的情況。這些原則不能滿足實時系統短的響應時間和確定的執行行為的要求。
優先級反轉的問題
當一個低優先級的進程占用了某種資源,導致同樣需要這個資源的高級進程無法運行,并且此時有一個優先級在他們之間的就緒進程獲得了CPU 的控制權,這樣就使得高級別的任務需要等待比他優先級別低的任務,這種現象就叫做優先級反轉。在Linux中,由于資源是不可搶占的,并且不支持優先級繼承等策略,所以優先級反轉現象可能會發生,這影響了系統的實時性能。
3、改進Linux實時性的方案
從前文可以看出,標準Linux內核有許多制約實時性的因素,要將Linux系統用于實時環境,必須對其進行改進。目前改進Linux實時性的方案有兩種:直接修改內核法、雙內核法。
直接修改內核法,通過對Linux 原理與源代碼的分析,通過對內核的進程調度、中斷服務程序等代碼進行修改與優化,提高系統的實時性能,并且為了保證系統的通用性,需要按照POSIX
的相關標準來進行改動。利用這種方法可以獲得較好的性能提升,并且因為與標準的Linux 內核使用相同的應用程序接口,所以有良好的兼容性。目前,采用修改內核方法改進Linux 實時性的產品很多,如 Kurt-Linux、TimesysLinux 和 Ingo's RT patch 等。
雙內核法,通過在Linux 內核與硬件中斷之間增加一個可搶先的實時內核,把標準的Linux 內核作為該實時內核的一個優先級***的進程來調度,它可以被實時進程搶斷,正常的
Linux 進程仍可以在 Linux 內核上運行,這樣既可以使用標準分時操作系統即Linux 的各種服務,又能提供低延時的實時環境。RT-Linux 是采用雙內核法改造Linux 實時性的典型代表。
上述內容就是Linux操作系統實時性學習示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。