在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 學習方法與實踐 > 實時操作系統(tǒng)VxWorks的內(nèi)核任務(wù)調(diào)度研究

            實時操作系統(tǒng)VxWorks的內(nèi)核任務(wù)調(diào)度研究

            作者:羅修波 時間:2008-03-19 來源: 收藏

                  1、引言
               

            本文引用地址:http://www.biyoush.com/article/80294.htm

                   VxWorks操作系統(tǒng)是WindRiver公司開發(fā)的一種高性能的嵌入式實時操作系統(tǒng)。它帶有一個功能強大的集成開發(fā)系統(tǒng)環(huán)境Tornado。

                    VxWorks具有軟件生成代碼小、實時性強及響應(yīng)速度快等特點,特別適合于具有實時和多任務(wù)要求的系統(tǒng)。VxWorks自20世紀80年代問世以來,以其高性能、高可靠性、高實時性等特點成為實時操作系統(tǒng)中最具特色的系統(tǒng)。自1996年登陸中國,短短幾年就已成為國防、工業(yè)自動化、網(wǎng)絡(luò)通信、航空航天、醫(yī)療儀器、狀態(tài)監(jiān)控以及消費電子產(chǎn)品等嵌入式實時領(lǐng)域的首選操作系統(tǒng)。由于嵌入式實時操作系統(tǒng)在內(nèi)核方面具有自身的特點,本文著重對實時內(nèi)核中任務(wù)調(diào)度進行了詳細分析。

                   2、任務(wù)調(diào)度概述

                  2.1 調(diào)度的概念
               

                   構(gòu)成應(yīng)用軟件系統(tǒng)的程序集合中,獨立的、相互作用的程序單元,在其執(zhí)行時稱之為任務(wù)。單個CPU 中,多任務(wù)機制制造了一個多個任務(wù)同時執(zhí)行的假象。其實系統(tǒng)只是根據(jù)一個多任務(wù)調(diào)度算法,將內(nèi)核插入到這些任務(wù)中執(zhí)行。實時系統(tǒng)VxWorks的一個任務(wù)可有多種狀態(tài),但最基本的狀態(tài)有以下四種:

                  1) 就緒態(tài)(Ready):任務(wù)只等待系統(tǒng)分配CUP資源。
                  2) 掛起態(tài)(Pend):任務(wù)需等待某些不可利用的資源而被阻塞。
                  3) 休眠態(tài)(Sleep):如果系統(tǒng)不需要某一個任務(wù)工作,則這個任務(wù)處于休眠狀態(tài)。
                  4) 延遲態(tài)(Delay):任務(wù)被延遲時所處的狀態(tài)。
               

                   當系統(tǒng)函數(shù)對某一個任務(wù)進行操作時,任務(wù)從一種狀態(tài)躍遷到另一種狀態(tài)。處于任一狀態(tài)的任務(wù)都可被刪除。VxWorks的任務(wù)躍遷如圖1所示。

                    任務(wù)由系統(tǒng)內(nèi)核調(diào)度運行一段固定長度的時間,稱為時間片。調(diào)度是指為任務(wù)分配資源和時間,使系統(tǒng)滿足特定的性能要求。調(diào)度算法的目的是在正常情況下,盡可能滿足所有任務(wù)的時限:在峰值負載條件下,保證強實時任務(wù)滿足時限。因為時限是區(qū)分實時系統(tǒng)和非實時系統(tǒng)的關(guān)鍵因素,因此調(diào)度算法是實時系統(tǒng)的基本問題。實時操作系統(tǒng)所具有的運行性能,如吞吐量的大小、周轉(zhuǎn)時間的長短、相應(yīng)的及時性和可預(yù)測性等在很大程度上都取決于實時調(diào)度。

                  2.2調(diào)度的類型
               

                   雖然調(diào)度的主要目的都是為了分配處理機,但在不同的OS中所采用的調(diào)度方式是完全不同的。在執(zhí)行調(diào)度時所采用的調(diào)度算法也可能不同。因此,常按照調(diào)度的層次把調(diào)度分成高級、中級和低級調(diào)度。
               

                   高級調(diào)度又稱長程調(diào)度或作業(yè)調(diào)度,用于決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源,然后再將新創(chuàng)建的進程排在就緒隊列上,準備執(zhí)行。然而在實時系統(tǒng)中,為了能及時響應(yīng),用戶通過鍵盤輸入的數(shù)據(jù)都是直接送入內(nèi)存,因而實時系統(tǒng)通常不需要作業(yè)調(diào)度。
               

                   中級調(diào)度又稱中程調(diào)度,引入它的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。它使那些暫時不能運行的進程不再占用寶貴的內(nèi)存空間,而將它們調(diào)到外存上去等待,此時的狀態(tài)稱為掛起狀態(tài)。當這些進程重新具備運行條件,且內(nèi)存又有空閑,由中級調(diào)度決定,將外存上的那些重新具備運行條件的就緒進程重新調(diào)入內(nèi)存,并使它為就緒狀態(tài),掛在就緒隊列上等待進程調(diào)度。
               

                    低級調(diào)度又稱進程調(diào)度。它決定就緒隊列中的哪個進程將獲得處理機,然后由分派程序執(zhí)行把處理機分配給該進程的操作。進程調(diào)度是最基本的一種調(diào)度,各種OS中都必須配置這級調(diào)度。進程調(diào)度可采用下述兩種方式。

                  1)非搶占方式。

                   采用這種調(diào)度方式,一旦把處理機分配給某進程后,便讓該進程一直執(zhí)行,直到該進程完成或發(fā)生某事件而被阻塞,才再把處理機分配給其他進程,決不允許某進程搶占已經(jīng)分配出去的處理機。顯然它難于滿足緊急任務(wù)的要求,實時系統(tǒng)中不宜采用這種調(diào)度方式。

                  2)搶占方式。

                  允許調(diào)度程序根據(jù)某種原則,去停止某個正在執(zhí)行的進程,將已分配給該進程的處理機,重新分配給另一進程。搶占的原則有:

                   ① 時間片原則。各進程按時間片運行,當一個時間片用完后,便停止該進程的執(zhí)行而重新進行調(diào)度。
                   ② 優(yōu)先權(quán)原則。當一個進程到來時,如果其優(yōu)先級比正在執(zhí)行的進程的優(yōu)先級高,便停止正在執(zhí)行的進程,將處理機分配給優(yōu)先級高的進程,使之執(zhí)行。實時系統(tǒng)中一般采用基于優(yōu)先級的搶占式調(diào)度和輪轉(zhuǎn)調(diào)度的進程調(diào)度和中程調(diào)度相結(jié)合的調(diào)度策略。因此既可具有較大的靈活性,又能獲得極小的調(diào)度延遲。

                 3、任務(wù)調(diào)度分析
               

                   Wind內(nèi)核缺省調(diào)度機制為基于優(yōu)先級的搶占式調(diào)度。采用這種機制時,系統(tǒng)把處理機分配給優(yōu)先級最高的進程,使之執(zhí)行。一旦出現(xiàn)了另一個優(yōu)先級更高的進程時,進程調(diào)度程序剝奪當前任務(wù)的執(zhí)行,將處理機分配給高優(yōu)先級任務(wù)。而在相同優(yōu)先級的多個任務(wù)之間,采用時間片輪轉(zhuǎn)調(diào)度機制。采用這種機制時,當一個任務(wù)到達時,它被排在輪轉(zhuǎn)隊列的后面,等待分配給自己的時間片的到來,如果在時間片內(nèi)沒有結(jié)束,則再等待屬于自己的時間片的到來,直到任務(wù)完成。

                  3.1 優(yōu)先級搶占式
               

                   采用基于優(yōu)先級的搶占式調(diào)度,系統(tǒng)中每個任務(wù)都有一個介于最高0到最低255之間的優(yōu)先級。任一時刻,系統(tǒng)內(nèi)核一旦發(fā)現(xiàn)一個優(yōu)先級更高的任務(wù)轉(zhuǎn)變?yōu)榫途w態(tài),內(nèi)核就保存當前任務(wù)的上下文并把當前任務(wù)狀態(tài)轉(zhuǎn)換為阻塞態(tài),同時切換到這個高優(yōu)先級任務(wù)的上下文執(zhí)行。如圖2,低優(yōu)先級的task1被中優(yōu)先級的task2搶占,task2又被高優(yōu)先級的task3搶占。

                  3.2 輪轉(zhuǎn)調(diào)度算法
               

                    采用輪轉(zhuǎn)調(diào)度算法,系統(tǒng)讓處于就緒態(tài)的優(yōu)先級相同的一組任務(wù)依次輪流執(zhí)行預(yù)先確定長度的時間片。這是一種處理機平均分配的方法。如果不使用輪轉(zhuǎn)調(diào)度算法,優(yōu)先級相同的一組任務(wù)中第一個獲得處理機的任務(wù)將不會被阻塞而獨占處理機,如果沒有阻塞或其他情況發(fā)生,它不會放棄處理機的使用權(quán)。如圖3,相同優(yōu)先級的task1、task2和task3平均分配預(yù)先確定的處理機時間片。

             
                  3.3 搶占調(diào)度與輪轉(zhuǎn)調(diào)度混合方式
               

                   有時,基于優(yōu)先級的搶占式調(diào)度可與輪轉(zhuǎn)調(diào)度相結(jié)合。當優(yōu)先級相同的一組任務(wù)依次輪流平均分配處理機時,若有高優(yōu)先級的任務(wù)轉(zhuǎn)變?yōu)榫途w態(tài)則可搶占該組任務(wù)。直到再一次符合執(zhí)行條件時,該組任務(wù)才可再次共享處理機。如圖4,相同優(yōu)先級的task1、task2和task3輪流占有處理機時,高于該組優(yōu)先級的task4搶占處理機,等task4執(zhí)行結(jié)束,該組任務(wù)再次共享處理機。
             

             
                   為了任務(wù)控制的靈活性,wind內(nèi)核還提供了動態(tài)優(yōu)先級機制,任務(wù)的優(yōu)先級在運行期間可動態(tài)地變化。同時,為了防止優(yōu)先級反轉(zhuǎn),還具有優(yōu)先級繼承機制,通過使用互斥信號量可以防止高優(yōu)先級的任務(wù)被迫等待一段不確定時間,直到一個低優(yōu)先級任務(wù)完成。

                 4、結(jié)論
               

                  任務(wù)是代碼運行的一個映像,從系統(tǒng)的角度來看,任務(wù)是競爭系統(tǒng)資源的最小運行單元。vxworks內(nèi)核使任務(wù)能快速共享系統(tǒng)的絕大部分資源,同時有獨立的上下文來控制個別線程的執(zhí)行。內(nèi)核調(diào)度是一個實時系統(tǒng)的核心,它的好壞直接影響整個系統(tǒng)的好壞,通過對這種內(nèi)核調(diào)度分析,可以更深入的理解實時操作系統(tǒng)設(shè)計的獨到之處。



            關(guān)鍵詞: 實時操作系統(tǒng) VxWorks

            評論


            相關(guān)推薦

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

            關(guān)閉