<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          2. 搶占式內(nèi)核體系結(jié)構(gòu)的設(shè)計(jì)

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

          本文引用地址:http://www.ex-cimer.com/article/151227.htm


          圖1 雙內(nèi)核結(jié)構(gòu)

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

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

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

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

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

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

          基于時(shí)間驅(qū)動(dòng)的調(diào)度算法

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

          基于比例共享的調(diào)度算法

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

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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();