在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > Linux在嵌入式系統(tǒng)中有關(guān)進程調(diào)度算法的實時性改進

            Linux在嵌入式系統(tǒng)中有關(guān)進程調(diào)度算法的實時性改進

            作者: 時間:2012-04-06 來源:網(wǎng)絡 收藏

            引言

            作為一種通用的,它最初的設(shè)計是用于桌面系統(tǒng)或者小型服務器。 要將 用于嵌入式系統(tǒng)中,需要對 內(nèi)核作一些改進,使它能更好地為嵌入式系統(tǒng)服務。 在這些改進中,進程管理是相當重要的一塊。

            嵌入式系統(tǒng)的硬件設(shè)備與普通PC 有較大的差別。 由于要節(jié)省成本、降低功耗,嵌入式系統(tǒng)的CPU 可能不帶MMU ,使用的存儲設(shè)備ROM、Flach 、RAM 的容量較小,這些因素決定了需要改變Linux 進程管理,來適應存儲系統(tǒng)方面的變化。進程管理中另一個與嵌入式系統(tǒng)密切相關(guān)的方面就是了。盡管不是所有的嵌入式系統(tǒng)都需要具有實時能力,但確實是嵌入式系統(tǒng)最重要的特點之一。 兩者的關(guān)系如圖1 所示。



            圖1  嵌入式系統(tǒng)與的關(guān)系

            目前市場上商用的嵌入式,如VxWork、pSOS 和QNX 等都具有良好的實時性能。因此本文主要著手討論Linux 實時性方面的改造。

            Linux 在實時應用中的不足之處

            雖然目前Linux 內(nèi)核在實時性方面有所增強,但它仍然不是實時,Linux 內(nèi)核的設(shè)計關(guān)注于應用程序的吞吐量連同內(nèi)核整體設(shè)計的完善。作為提高吞吐量的必然要求,Linux 的調(diào)度器試圖提供一種“公平分配”策略來保證所有的進程可以均衡地享有CPU 的資源。 普通Linux 內(nèi)核提供三種調(diào)度策略,分別為SCHEDRR、SCHEDFIFO、SCHEDOTHER。 其中第一個策略為實時進程的基于優(yōu)先級的輪轉(zhuǎn)法, schedfifo 為實時進程的先進先出算法,schedother 為非實時進程的基于優(yōu)先級的輪轉(zhuǎn)法。前兩種為軟實時策略,后者為普通實時策略。

            普通時分策略保證了每個進程相對于其靜態(tài)優(yōu)先級可以公平地獲取CPU 資源。 由于調(diào)度器按照優(yōu)先級驅(qū)動的方式,因此軟實時進程的優(yōu)先級要高于普通進程,通常軟實時進程的優(yōu)先級在1000 以上而普通進程的優(yōu)先級在0~999之間。 由調(diào)度器調(diào)用的goodness ( ) 函數(shù)保證實時進程先于普通進程獲得CPU。

            函數(shù)goodness() 如下:

            static inline int goodness ( struct task struct 3 p ,int this
            cpu ,struct mm struct 3 this mm)
            int weight ;
            weight=-1;
            if (p->policy SCHED YIELD) goto out ;
            / 3 非實時進程3 /
            if (p=>policy==SCHED OTHER)
            {weight =p->counter ;
            if ( ! weight) goto out ;
            if (p-> mm==this mm !!! p->mm)
            weight+=1 ;
            weight+=20-p->nice ;
            goto out ;
            }
            / 3 軟實時進程3 /
            weight=1000+p->rt priority ;
            goto out ;
            return weight ;
            } -

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

            上一頁 1 2 下一頁

            評論


            相關(guān)推薦

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

            關(guān)閉