<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux分時(shí)操作系統的實(shí)時(shí)性分析

Linux分時(shí)操作系統的實(shí)時(shí)性分析

作者: 時(shí)間:2010-12-12 來(lái)源:網(wǎng)絡(luò ) 收藏

2. 搶占式內核體系結構的設計

為了解決實(shí)現硬實(shí)時(shí)的最大障礙,使內核成為完全可被搶占實(shí)時(shí)內核,典型的實(shí)現方案是雙核結構。使用實(shí)時(shí)核來(lái)運行實(shí)時(shí)任務(wù),內核來(lái)運行非實(shí)時(shí)任務(wù)。例如:對于實(shí)時(shí)數據采樣而言,利用實(shí)時(shí)內核運行一個(gè)實(shí)時(shí)任務(wù)來(lái)完成數據采集,另一個(gè)實(shí)時(shí)任務(wù)完成數據和控制輸出功能;同時(shí)利用Linux內核上運行的界面來(lái)進(jìn)行數據顯示。如圖1所示。

本文引用地址:http://dyxdggzs.com/article/151227.htm


圖1 雙內核結構

在Linux內核和硬件之間加個(gè)小的實(shí)時(shí)核,由它管理中斷,提供一些必要的功能,如底層任務(wù)創(chuàng )建、中斷服務(wù)程序,并且為底層任務(wù)、ISR和Linux進(jìn)程之間進(jìn)行通信排隊;而Linux內核本身則成為優(yōu)先級最低的Idletask。

要求強的應用編寫(xiě)成實(shí)時(shí)任務(wù),在實(shí)時(shí)內核上直接運行。Linux內核可以被優(yōu)先級更高的實(shí)時(shí)任務(wù)搶占。對于Linux內核的修改主要集中在三方面:(1) 在Linux內核中影響的地方增加控制點(diǎn),使內核在控制點(diǎn)可以被搶占,減少內核搶占延遲;(2) 將執行時(shí)間較長(cháng)的系統劃分為幾個(gè)甚至是十幾個(gè)較小的塊分別執行,使實(shí)時(shí)任務(wù)隨時(shí)中斷非實(shí)時(shí)任務(wù);(3) 根據實(shí)際需要,增加部分功能。

隨著(zhù)嵌入式應用的深入,特別是在數字通信和網(wǎng)絡(luò )中的應用,多核結構的處理器也陸續上市。如:Motorola公司研發(fā)的MPC8260PowerQUICC||融合了兩個(gè)CPU-嵌入式PowerPC內核和通信處理模塊(CPM);Infineon公司推出的TC10GP和增強型TC1130都是三核(TriCore)結構的微處理器,這些處理器的產(chǎn)生對于Linux應用中的都大有幫助。 3. 實(shí)時(shí)調度的算法研究

常用的實(shí)時(shí)調度算法有:基于優(yōu)先級的調度算法(priority-drivenscheduling,PD);基于時(shí)間驅動(dòng)的調度算法(time-drivenscheduling,TD);基于比例共享的調度算法(share-drivensched2uling,SD)?;趦?yōu)先級的調度算法 調度器以?xún)?yōu)先級作為尋求下一個(gè)任務(wù)執行的依據??煞譃槿缦聝煞N類(lèi)型:

(1) 靜態(tài)優(yōu)先級調度算法:該算法給系統中所有進(jìn)程都靜態(tài)的分配一個(gè)優(yōu)先級。靜態(tài)優(yōu)先級的分配可以根據應用的屬性來(lái)進(jìn)行,例如任務(wù)的周期、用戶(hù)優(yōu)先級或者其他預先確定的策略。RM(RateMonotonic)是一種典型的靜態(tài)優(yōu)先級調度算法,它根據任務(wù)執行周期的長(cháng)短來(lái)決定調度優(yōu)先級,執行周期小的任務(wù)具有較高的優(yōu)先級。

(2) 動(dòng)態(tài)優(yōu)先級調度算法:這種算法根據任務(wù)的資源需求來(lái)動(dòng)態(tài)的分配任務(wù)的優(yōu)先級。EDF(earliestdeadlinefirst)算法是一種典型的動(dòng)態(tài)優(yōu)先級調度算法,該算法根據就緒隊列中各個(gè)任務(wù)的截止期限來(lái)分配優(yōu)先級,具有最近截止期限的任的優(yōu)先級最高。

基于時(shí)間驅動(dòng)的調度算法

該算法本質(zhì)上是一種設計時(shí)就確定下來(lái)的離線(xiàn)的靜態(tài)調度方法。在系統的設計階段,在明確系統中所有處理的情況下,對于各個(gè)任務(wù)的開(kāi)始、切換以及結束時(shí)間等事先組出明確的安排和設計。

基于比例共享的調度算法

這是一種越來(lái)越受到關(guān)注的實(shí)時(shí)調度模式,基于GPS(generalprocessorscheduling)的算法,其基本思想就是按照一定的權重(CPU使用的比例)對一組需要調度的任務(wù)進(jìn)行調度,使其執行時(shí)間與權重完全成正比??梢酝ㄟ^(guò)兩種方法來(lái)實(shí)現比例共享調度算法:(1)是調節各個(gè)就緒進(jìn)程出現在當前調度隊列隊首的頻率,并調度隊首的進(jìn)程執行;(2)是逐次調度就緒隊列中的各個(gè)進(jìn)程投入運行,但根據分配的權重調節分配給每個(gè)進(jìn)程的運行時(shí)間片。比例共享算法包括輪轉法、公平共享法、公平隊列法和彩票調度法等幾類(lèi)。

每一種調度策略都有自己的優(yōu)越性和不足。在這里我們提出了一種宏觀(guān)調度結構,通過(guò)設計和構造多屬性和多調度器的選擇機制,使三種實(shí)時(shí)調度策略的應用都得到支持,相對于只對單種調度策略提供支持的方案,拓展了系統的可使用范圍。宏觀(guān)調度結構如圖2所示。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>