![實(shí)時(shí)Linux架構(gòu)剖析_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/2ccaa673-8a09-4ff6-b767-9862602002d3/2ccaa673-8a09-4ff6-b767-9862602002d31.gif)
![實(shí)時(shí)Linux架構(gòu)剖析_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/2ccaa673-8a09-4ff6-b767-9862602002d3/2ccaa673-8a09-4ff6-b767-9862602002d32.gif)
![實(shí)時(shí)Linux架構(gòu)剖析_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/2ccaa673-8a09-4ff6-b767-9862602002d3/2ccaa673-8a09-4ff6-b767-9862602002d33.gif)
![實(shí)時(shí)Linux架構(gòu)剖析_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/2ccaa673-8a09-4ff6-b767-9862602002d3/2ccaa673-8a09-4ff6-b767-9862602002d34.gif)
![實(shí)時(shí)Linux架構(gòu)剖析_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/2ccaa673-8a09-4ff6-b767-9862602002d3/2ccaa673-8a09-4ff6-b767-9862602002d35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux?的速度或效率都非常不錯(cuò),只是在一些情況下,這樣的速度還不能滿足 需求。我們需要的是在特定的容差范圍內(nèi)確定性地滿足調(diào)度期限的能力。本文將揭示各種實(shí)現(xiàn)實(shí)時(shí)Linux的可選方案以及它們?nèi)绾螌?shí)現(xiàn)實(shí)時(shí)性一從早期的模 仿虛擬化解決方案的架構(gòu)到如今標(biāo)準(zhǔn) 2.6內(nèi)核中可用的選項(xiàng)。本文探索了一些支持實(shí)時(shí)特性的 Linux架構(gòu),并探討了實(shí)時(shí)架構(gòu) 的含意是什 么。有許多種解決方案賦予Lin ux實(shí)時(shí)能力,本文將對(duì)瘦內(nèi)核(或微內(nèi)核)方 法、超微內(nèi)核方法以及資源內(nèi)核(resource-kernel )方法進(jìn)行考查。最后,描述 了標(biāo)準(zhǔn)2.6內(nèi)核的實(shí)時(shí)功能,并向您示范如何啟用并使用這種功能。實(shí)時(shí)的定義及要求下列
2、實(shí)時(shí)的定義為探討實(shí)時(shí)Linux架構(gòu)提供了基礎(chǔ)。定義由 Donal Gillies在Realtime Computing FAQ 中提出(參見 參考資料 的鏈接)。實(shí)時(shí)系統(tǒng)指系統(tǒng)的計(jì)算正確性不僅取決于計(jì)算的邏輯正確性,還取決于產(chǎn)生結(jié)果的時(shí)間。如果未滿足系統(tǒng)的時(shí)間約束,則認(rèn)為系統(tǒng)失效。換句話說,系統(tǒng)面對(duì)變化的負(fù)載(從最小到最壞的情況)時(shí)必須確定性地保證滿 足時(shí)間要求。注意,上述定義并未提到性能,原因是實(shí)時(shí)性與速度關(guān)系不大:它 與可預(yù)見性有關(guān)。例如,使用快速的現(xiàn)代處理器時(shí),Linux可以提供20卩微秒的典型中斷響應(yīng),但有時(shí)候響應(yīng)會(huì)變得很長(zhǎng)。這是一個(gè)基本的問題:并不是 Linux不夠快或效率不夠高,而
3、是因?yàn)樗荒芴峁┐_定性。一些例子將演示全部這些內(nèi)容的含意。圖1顯示的是中斷延遲指標(biāo)。當(dāng)中斷到達(dá)時(shí)(eve nt ),CPU發(fā)生中斷并轉(zhuǎn)入中斷處理。執(zhí)行一些工作以確定發(fā)生了什 么事件,然后執(zhí)行少量工作分配必需的任務(wù)以處理此事件( 上下文切換)。中斷 到達(dá)與分發(fā)必需任務(wù)之間的時(shí)間(假設(shè)分配的是優(yōu)先級(jí)最高的任務(wù)) 稱為響應(yīng)時(shí) 間。對(duì)于實(shí)時(shí)性要求,響應(yīng)時(shí)間應(yīng)是確定的并應(yīng)當(dāng)在已知的最壞情況的時(shí)間內(nèi)完 成。1 1rX<OtherResponseTask responseactivitytimeto evnt丿J圖1.中斷延遲和響應(yīng)時(shí)間EventResponse上下文切換發(fā)生中斷后分配新任務(wù)的過 程中
4、隱含著上下文切換。這 個(gè)過程在中斷時(shí)存儲(chǔ)CPU 的當(dāng)前狀態(tài),然后恢復(fù)一項(xiàng) 給定任務(wù)的狀態(tài)。上下文切 換依賴于操作系統(tǒng)及底層的 處理器架構(gòu)。Time有關(guān)這個(gè)過程的一個(gè)例子就是目前汽車中使用的氣囊。當(dāng)報(bào)告車輛碰撞的傳感器中斷CPU后,操作系統(tǒng)應(yīng)快速地分配展開氣囊的任務(wù),并且不允許其他非實(shí)時(shí) 處理進(jìn)行干擾。晚一秒鐘展開氣囊比沒有氣囊的情況更糟糕。除為中斷處理提供確定性外,實(shí)時(shí)處理也需要支持周期性間隔的任務(wù)調(diào)度??紤]圖2。本圖演示了周期性任務(wù)調(diào)度。大量控制系統(tǒng)要求周期性采樣與處理。某個(gè) 特定任務(wù)必須按照固定的周期(P)執(zhí)行,從而確保系統(tǒng)的穩(wěn)定性??紤]一下汽 車的防抱死系統(tǒng)(ABS??刂葡到y(tǒng)對(duì)車輛的每個(gè)
5、車輪的轉(zhuǎn)速進(jìn)行采樣(每秒最 多20次)并控制每個(gè)制動(dòng)器的壓力(防止它鎖死)。為了保持控制系統(tǒng)的正常 工作,傳感器的采樣與控制必須按照一定的周期間隔。 這意味著必須搶占其他處 理,以便ABS任務(wù)能按照期望的周期執(zhí)行。圖2.周期性任務(wù)調(diào)度U硬實(shí)時(shí)與軟實(shí)時(shí)系統(tǒng)能夠在指定的期限完成實(shí)時(shí)任務(wù)(即便在最壞的處理負(fù)載下也能如此)的操作系 統(tǒng)稱為硬實(shí)時(shí) 系統(tǒng)。但并不是任何情況下都需要硬實(shí)時(shí)支持。如果操作系統(tǒng)在 平均情況下能支持任務(wù)的執(zhí)行期限,則稱它為軟實(shí)時(shí)系統(tǒng)。硬實(shí)時(shí)系統(tǒng)指超過 截止期限后將造成災(zāi)難性后果(例如展開氣囊過晚或制動(dòng)壓力產(chǎn)生的滑行距離過 長(zhǎng))的系統(tǒng)。軟實(shí)時(shí)系統(tǒng)超過截止期限后并不會(huì)造成系統(tǒng)整體失?。?/p>
6、如丟失視頻 中的一幀)?,F(xiàn)在您已經(jīng)對(duì)實(shí)時(shí)性要求有了一些深入了解,讓我們查看一些實(shí)時(shí)Lin ux架構(gòu)各支持哪個(gè)級(jí)別的實(shí)時(shí)性以及如何做到這一點(diǎn)。回頁首瘦內(nèi)核方法瘦內(nèi)核(或微內(nèi)核)方法使用了第二個(gè)內(nèi)核作為硬件與Lin ux內(nèi)核間的抽象接口(見圖3 )。非實(shí)時(shí)Linux內(nèi)核在后臺(tái)運(yùn)行,作為瘦內(nèi)核的一項(xiàng)低優(yōu)先級(jí)任 務(wù)托管全部非實(shí)時(shí)任務(wù)。實(shí)時(shí)任務(wù)直接在瘦內(nèi)核上運(yùn)行。圖3.硬實(shí)時(shí)的瘦內(nèi)核方法U&er space(Non real-time tasks)Linux kernei Non real-time Real-time taaksThin kernelHardware瘦內(nèi)核主要用于(除了托管實(shí)時(shí)
7、任務(wù)外)中斷管理。瘦內(nèi)核截取中斷以確保非實(shí) 時(shí)內(nèi)核無法搶占瘦內(nèi)核的運(yùn)行。這允許瘦內(nèi)核提供硬實(shí)時(shí)支持。雖然瘦內(nèi)核方法有自己的優(yōu)勢(shì)(硬實(shí)時(shí)支持與標(biāo)準(zhǔn)Lin ux內(nèi)核共存),但這種方法也有缺點(diǎn)。實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)是獨(dú)立的,這造成了調(diào)試?yán)щy。而且,非 實(shí)時(shí)任務(wù)并未得到Linux平臺(tái)的完全支持(瘦內(nèi)核執(zhí)行稱為瘦的一個(gè)原因)。使用這種方法的例子有 RTLinux (現(xiàn)在由 Wind River Systems專有),實(shí)時(shí)應(yīng) 用程序接口( RTAI)和Xenomai?;仨撌壮?nèi)核方法這里瘦內(nèi)核方法依賴于包含任務(wù)管理的最小內(nèi)核, 而超微內(nèi)核法對(duì)內(nèi)核進(jìn)行更進(jìn) 一步的縮減。通過這種方式,它不像是一個(gè)內(nèi)核而更像
8、是一個(gè)硬件抽象層 (HAL。超微內(nèi)核為運(yùn)行于更高級(jí)別的多個(gè)操作系統(tǒng)提供了硬件資源共享 (見圖4)。因 為超微內(nèi)核對(duì)硬件進(jìn)行了抽象,因此它可為更高級(jí)別的操作系統(tǒng)提供優(yōu)先權(quán), 從 而支持實(shí)時(shí)性。圖4.對(duì)硬件進(jìn)行抽象的超微內(nèi)核法User-space (Non real-time tasks)User-space (Non real-limeReal-time tacksKernelKernelReal-time kernelNano-kemel i Intenupt dispatcherHa«lware注意,這種方法和運(yùn)行多個(gè)操作系統(tǒng)的虛擬化方法有一些相似之處。使用這種方法的情況下,超微內(nèi)
9、核在實(shí)時(shí)和非實(shí)時(shí)內(nèi)核中對(duì)硬件進(jìn)行抽象。這與hypervisor從客戶(guest)操作系統(tǒng)對(duì)裸機(jī)進(jìn)行抽象的方式很相似。更多信息參見參考資 料。關(guān)于超微內(nèi)核的示例是操作系統(tǒng)的 Adaptive Doma in En viro nment for Operating Systems (ADEOS)。ADEOS支持多個(gè)并發(fā)操作系統(tǒng)同步運(yùn)行。當(dāng)發(fā)生 硬件事件后,ADEOS對(duì)鏈中的每個(gè)操作系統(tǒng)進(jìn)行查詢以確定使用哪一個(gè)系統(tǒng)處理 事件?;仨撌踪Y源內(nèi)核法另一個(gè)實(shí)時(shí)架構(gòu)是資源內(nèi)核法。這種方法為內(nèi)核增加一個(gè)模塊,為各種資源提供 預(yù)留(reservation )。這種機(jī)制保證了對(duì)時(shí)分復(fù)用(time-multiple
10、xed )系統(tǒng) 資源的訪問(CPU網(wǎng)絡(luò)或磁盤帶寬)。這些資源擁有多個(gè)預(yù)留參數(shù),如循環(huán)周 期、需要的處理時(shí)間(也就是完成處理所需的時(shí)間),以及截止時(shí)間。資源內(nèi)核提供了一組應(yīng)用程序編程接口(API),允許任務(wù)請(qǐng)求這些預(yù)留資源(見圖5 )。然后資源內(nèi)核可以合并這些請(qǐng)求,使用任務(wù)定義的約束定義一個(gè)調(diào)度, 從而提供確定的訪問(如果無法提供確定性則返回錯(cuò)誤)。通過調(diào)度算法,如 Earliest-Deadli ne-First (EDF),內(nèi)核可以處理動(dòng)態(tài)的調(diào)度負(fù)載。圖5.實(shí)現(xiàn)資源預(yù)留的資源內(nèi)核法Real -time tatktUser spacereaMime tasksResourceunux kern
11、elkernelHarctware資源內(nèi)核法實(shí)現(xiàn)的一個(gè)示例是 CMU公司的Linux/RK,它把可移植的資源內(nèi)核集 成到Linux中作為一個(gè)可加載模塊。這種實(shí)現(xiàn)演化成商用的TimeSys Linu x/RT 產(chǎn)品?;仨撌讟?biāo)準(zhǔn)2.6內(nèi)核中的實(shí)時(shí)目前探討的這些方法在架構(gòu)上都很有趣,但是它們都在內(nèi)核的外圍運(yùn)行。然而, 如果對(duì)標(biāo)準(zhǔn)Linux內(nèi)核進(jìn)行必要的修改使其支持實(shí)時(shí)性,結(jié)果會(huì)怎么樣呢? 今天,在2.6內(nèi)核中,通過對(duì)內(nèi)核進(jìn)行簡(jiǎn)單配置使其完全可搶占(見圖 6), 您就可以得到軟實(shí)時(shí)功能。在標(biāo)準(zhǔn) 2.6 Linux 內(nèi)核中,當(dāng)用戶空間的進(jìn)程執(zhí)行 內(nèi)核調(diào)用時(shí)(通過系統(tǒng)調(diào)用),它便不能被搶占。這意味著如果低
12、優(yōu)先級(jí)進(jìn)程進(jìn) 行了系統(tǒng)調(diào)用后,高優(yōu)先級(jí)進(jìn)程必須等到調(diào)用結(jié)束后才能訪問 CPU。新的配置選 項(xiàng)CONFIG_PREEMP改變了這一內(nèi)核行為,在高優(yōu)先級(jí)任務(wù)可用的情況下(即使 此進(jìn)程正在進(jìn)行系統(tǒng)調(diào)用),它允許進(jìn)程被搶占。Real -time processUser spacereaMime process圖6允許搶占的標(biāo)準(zhǔn)2.6 Linux 內(nèi)核Linux kernel(preemptibleReal -time taskNon real-ume taskHarctware但這種配置選項(xiàng)也是一種折衷。雖然此選項(xiàng)實(shí)現(xiàn)了軟實(shí)時(shí)性能并且即使在負(fù)載條 件下也可使操作系統(tǒng)順利地運(yùn)行,但這樣做也付出了代價(jià)。代
13、價(jià)就是略微減低了 吞吐量以及內(nèi)核性能,原因是CONFIG_PREEMPi項(xiàng)增加了開銷。這種選項(xiàng)對(duì)桌新的O(1)調(diào)度程序2.6內(nèi)核中新的O(1)調(diào)度 程序?qū)π阅苡泻艽蟮奶嵘?即使存在很多任務(wù)的情況下 也是如此。不管需要運(yùn)行的 任務(wù)有多少個(gè),新的調(diào)度程 序都會(huì)在有限的時(shí)間內(nèi)運(yùn) 行。您可以在參考資料一 節(jié)中找到這種調(diào)度的更多信 息以及它如何進(jìn)行工作。面和嵌入式系統(tǒng)而言是有用的,但并不是在任何 場(chǎng)景下都有用(例如,服務(wù)器)。在2.6內(nèi)核中另一項(xiàng)有用的配置選項(xiàng)是高精度 定時(shí)器。這個(gè)新選項(xiàng)允許定時(shí)器以1卩s的精度 運(yùn)行(如果底層硬件支持的話),并通過紅黑樹 實(shí)現(xiàn)對(duì)定時(shí)器的高效管理。通過紅黑樹,可以使 用大量的定時(shí)器而不會(huì)對(duì)定時(shí)器子系統(tǒng)(O(log n)的性能造成影響。只需要一點(diǎn)額外的工作,您就可以通過PREEMPT_R補(bǔ)丁實(shí)現(xiàn)硬實(shí)時(shí)。PREEMPT_R補(bǔ)丁 提供了多項(xiàng)修改,可實(shí)現(xiàn)硬實(shí)時(shí)支持。其中一些 修改包括重新實(shí)現(xiàn)一些內(nèi)核鎖定原語,從而實(shí)現(xiàn) 完全可搶占,實(shí)現(xiàn)內(nèi)核互斥的優(yōu)先級(jí)繼承,并把中斷處理程序轉(zhuǎn)換為內(nèi)核線程以 實(shí)現(xiàn)線程可搶占?;仨撌捉Y(jié)束語Linux不僅是一個(gè)實(shí)驗(yàn)和描述實(shí)時(shí)算法的理想平臺(tái),目前在標(biāo)準(zhǔn)的 2.6內(nèi)核中 也實(shí)現(xiàn)了實(shí)時(shí)功能。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程施工合同索賠流程及賠償標(biāo)準(zhǔn)規(guī)范文本
- 2025年度電子工程師研發(fā)項(xiàng)目合作合同
- 2025年度酒店物業(yè)管理合同規(guī)范文本
- 遼寧2024年渤海大學(xué)附屬高級(jí)中學(xué)招聘人筆試歷年參考題庫附帶答案詳解
- 菏澤2025年山東菏澤醫(yī)專附屬醫(yī)院招聘精神科住院醫(yī)師2人筆試歷年參考題庫附帶答案詳解
- 湖南2025年湖南省住房和城鄉(xiāng)建設(shè)廳所屬事業(yè)單位選調(diào)筆試歷年參考題庫附帶答案詳解
- 溫州2024年浙江溫州蒼南縣質(zhì)量技術(shù)監(jiān)督檢測(cè)院招聘食品檢測(cè)工作人員筆試歷年參考題庫附帶答案詳解
- 浙江浙江省國(guó)際經(jīng)濟(jì)貿(mào)易學(xué)會(huì)招聘筆試歷年參考題庫附帶答案詳解
- 2025年中國(guó)宮燈罩市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)半自動(dòng)內(nèi)圓切片機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 《豐收之歌》精選教學(xué)課件
- 山西省國(guó)土空間規(guī)劃(2020—2035年)
- 【青島版《科學(xué)》】四年級(jí)下冊(cè)第一單元1 《運(yùn)動(dòng)與力》 教學(xué)設(shè)計(jì)
- 加氣站安全管理(最新)精選PPT課件
- 47《心經(jīng)》圖解PPT課件(50頁P(yáng)PT)
- 污水管線鋪設(shè)施工工藝方法
- 維修保運(yùn)車間崗位職責(zé)
- 液堿生產(chǎn)工序及生產(chǎn)流程敘述
- 三年級(jí)學(xué)生《成長(zhǎng)記錄》模板
- 好書推薦——《三毛流浪記》
- 方菱F2100B中文系統(tǒng)說明書
評(píng)論
0/150
提交評(píng)論