国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于比特表實現實時控制系統RTCS的任務調度算法研究

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:張勰,龔龍慶 ? 2020-09-11 17:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

微機控制領域中,許多單片機應用系統是實時控制系統RTCS(Real Time Control System)。在實時控制系統中,為了很好地完成外界信息的實時測量、計算和相應的多種實時控制操作,必須達到兩個設計目標;實時性和并行性。即既要保證系統對外界信息以足夠快的速度進行相應處理,又要同時完成多種任務操作。在這里,多種任務之間的調度是個關鍵。

RTCS 中允許多個實時任務并行地運行。例如,一測控系統中,具有數據采集、數據計算、鍵盤處理、定時打印等任務。在單機系統中,這些任務在宏觀上是同時運行的,但在微觀上只有一個任務運行。在RTCS中每個任務有三種狀態,即運行狀態、就緒狀態和空閑狀態。某個任務一旦建立后即處于這三種狀態之一。處于運行狀態的任務獨占CPU和其它一些資源;就緒狀態是某個任務現在應該運行,但由于其它任務正在運行,故只能暫時等待;當激發某個任務的條件不完備時,此任務就處于空閑狀態。

RTCS中的多個任務依靠任務調度程序來決定系統中哪個任務可以獲得CPU等資源或應暫時退出運行狀態等,從而完成每個任務三態間的轉換。在RTCS中,任務調度算法的優劣直接關系到系統的實時性能與并行性能。

RTCS中較簡單的任務調度算法有“先來先執行的調度算法”、“按時間片循環執行的調度算法”。前者,當實時性比較差的任務長時間占用CPU時,會使得實時性較高的任務得不到及時處理,影響系統的實時性;后者,按照“先入先出”的原則激活某個任務,并分配給它們相等的時間片,從而使得多個任務有平等的享用CPU的權利。當時間片用完時,讓任務“暫時”又處于就緒狀態,并激活下一個任務。這種算法的實時性有一定程序的提高,但由于各任務簡單均勻地循環輪回,從而使得實時性要求較高的任務得不到優先處理。由于各時間片相等且固定,很容易被某些緊急任務打斷。在實時性要求較高而且任務較多的復雜情況下,各個任務的實時性要求不盡相同,不能簡單地均勻分時處理任務。

基于比特表的任務調度算法,關鍵在于將CPU的全部時間化成若干個相等的時隙,同時根據任務的數目制定一張表格,以此來指示某一時刻的任務運行。它把任務按照實時性要求分成中斷級、時鐘級、基本級三類,而且它們的優先級依次遞減。優先級越高,就越處于比特表的頂端位置。比特表是按照任務的優先級排隊的,首先滿足實時性較強的中斷級和時鐘級,而不管實時性最低的基本級任務。這樣,時鐘級任務一定能得到即時有效的處理,其實時性可以得到較好的保障,基本級任務可以沒有時間限制。但是,時鐘級任務的實時性并不是完全能夠得到保障。下面舉例討論比特表算法的不足之處。

假定有表1所示的五種任務,按照常規比特表算法根本無法設計出這樣的比特表。當時鐘級的各級每次運行時間之和沒有達到5ms時,比特表算法能夠很好地滿足系統實時性要求;然而,當中斷級和時鐘級的每次運行時間之和大于或者等于最高級實時性要求,更有甚者,當有一個時鐘級任務的運行時間超過最高級實時性要求時,比特表算法就會失效。因為常規的比特表算法要求,只要激活比特表中安排的中斷級和時鐘級任務就必須一次執行完,否則,如果這個任務被中斷就無法再得到執行。由于圖像處理的運行時間為5ms,加上中斷級任務執行時間,因此設計時隙必須大于5ms;而比特表的設計方法時隙只可能小于等于5ms(中斷級任務和實時性最高的時鐘級任務決定的)。所以,無論安排怎樣的比徨表都無法使任務D滿足實時性要求。基于這兩種情況,本文提出一種用賦有優先權的時間來填充比特表的算法,以改善這兩種情況。

1 比特表的改進算法

這種改進算法的關系在于把各任務劃分為若干時間片,然后再根據實時性要求填入比特表中。根據比特表的設計方法,時隙間隔定為5ms,總時隙數為LCM(10/5,20/5,30/5)=6。把各中斷級和時鐘級任務運行時間的最大公約數定為時間片。即有如下計算公式:

T=GCD{Ti}

T為時間片,Ti為時鐘級和中斷級任務實時性要求,GCD(Greatest Common Divisor)求最大公約數,LCM(Lowest Common Multiple)求最小公倍數。

本例中的時間片T=GCD{0.5,1,2.5,1,5}=0.5ms。(假設時鐘中斷處理時間為0.5ms)。

時間片的分配,必須遵循以下原則:

①滿足實時性要求;

②確保每一個時隙中所有分配的任務都必須完全運行;

③均衡考慮CPU對各任務的運行,優先考慮時鐘級任務和中斷級任務。

按上述原則,中斷級任務分1個時間片,時鐘級1分配2個時間片,時鐘級2分配3個時間片,時鐘級3分配1個時間片,時鐘級4分配2個時間片,而將每個時隙剩余的時間分配給基本級任務。這樣,即使是在系統最繁忙的時候也有一個時間片分配給基本級任務,從而彌補了比特表算法的不足。

綜上所述,設計圖1所示的比特表。

此比特表的時隙任務安排完全滿足實時性要求。A任務每時隙運行1次,每時隙運行2個時間片。A任務每5ms運行1次。B任務每10ms運行1次,C任務每 20ms運行1次。由此可以得到各任務的啟動順序及執行時間如圖2所示。

圖2 任務的啟動順序和運行時間

圖2中,I表示時鐘中斷處理程序,它的優先級最高。A、B、C、D為時鐘級任務,其中A的優先級較高。將I、A、B、C、D處理完后余下的時間留給基本級E。

2 程序設計值得注意的問題

在任務調度算法中,關鍵是如何確定就緒隊列、任務控制數據塊的數據結構和解決資源沖突。就緒隊列指明了在某一時刻已就緒、可被執行的任務隊列。在數據結構上通常可用位映像的方法來實現。如系統的最多任務為32個,可采用4個字節的每一位來對應人某個任務。若此位為“1”,則表明該任務就緒;若為“0”,則表明任務空閑。并且可規定低位所代表的任務優先級高于高位所指示的任務。

某個任務投入運行時需保護現場數據,這些數據都存入一個地址固定的數據存儲區,稱為任務控制數據塊。需保護的內容應按應用程序的特點來決定。對于常用的 MCS51系列的單片機來說,現場保護數據一般應包括PC、ACC、PSW、SP、DPTR等寄存器內容。任務控制數據塊一般放在外部數據存儲器內。為了查找方便,可以按任務號將各個任務數據塊的首地址編成一個一維表格,表格的每行對應各任務數據塊數據結構首地址,如圖3所示。

在任務調度程序中,還應很好地解決資源的互斥問題,即保證不可共享的資源只被一個任務所訪問。在RTCS中,各任務間并非完全隔絕,它們相互合作、相互競爭。例如,某系統中數據顯示任務要定時顯示某數據區的數據;數據計算任務也要在某種情況下計算、刷新此數據區內容。在這里,數據計算任務在運行時就不允許讓顯示任務中斷計算任務;否則,有可能導致顯示的數據不正確。解決資源競爭的方法往往是在主程序中設置一標志字節或標志位。例如,顯示任務在運行時首先判斷此標志,若發現計算任務尚未完成,則不做任何工作直接退出任務。

3 小結

RTCS 中的實時性和并行性是非常重要的,但兩者之間有一定的矛盾。完全實現在兩大特性的重要手段就是,采用有效的任務調度算法程序來協調兩者之間的矛盾,從而保證系統的實時性和并行性。在簡單系統中,“按時間片循環”調度算法已能初步滿足要求;但在較復雜和要求較高的系統中,這顯然不滿足需要。基于BitMap 的調度算法能較好地滿足比較復雜系統的要求,而對于前面講到的系統中要求執行時間長、實時性要求較高的任務而言,單純的BitMap算法無法滿足要求,這個時候我們提出將比特表的時隙細分成時間片進行分配,這比BitMap按照任務進行分配的算法更能解決復雜任務的實時性要求。只要有效地確定任務數目和數據結構,RTCS中的實時性和并行性就能得到有效提高。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670456
  • 控制系統
    +關注

    關注

    41

    文章

    6955

    瀏覽量

    114106
  • 數據采集
    +關注

    關注

    41

    文章

    8041

    瀏覽量

    120924
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文說透了如何實現單片機的多任務并發!

    在嵌入式系統開發中,多任務并發是非常常見的,對于處理復雜的應用場景、提升系統的并發能力、提高系統實時性等方面都有很大好處。在單片機中
    發表于 01-06 06:46

    基于大模型的發射任務調度與過程保障分系統平臺的應用與未來發展

    、智能決策算法及數字孿生等關鍵技術,實現發射任務效率、安全性與可靠性的三重躍升。 ? ?系統軟件供應可以來這里,這個首肌開始是幺伍扒,中間是幺幺叁叁,最后一個是泗柒泗泗,按照數字順序組
    的頭像 發表于 12-24 10:36 ?264次閱讀

    深入Linux內核:進程調度的核心邏輯與實現細節

    在Linux系統中,進程調度就像一位精明的“CPU管理員”——它決定著哪個進程能優先使用CPU,多久切換一次進程,如何平衡系統響應速度與資源利用率。小到桌面應用的流暢點擊,大到服務器的多任務
    的頭像 發表于 12-24 07:05 ?4314次閱讀
    深入Linux內核:進程<b class='flag-5'>調度</b>的核心邏輯與<b class='flag-5'>實現</b>細節

    大模型驅動的發射任務智能調度系統軟件平臺的應用與未來發展

    大模型驅動的發射任務智能調度系統平臺 ? ?作為航天智能化轉型的關鍵支撐,該平臺融合多源數據、動態資源調度與大模型智能決策能力,顯著提升發射任務
    的頭像 發表于 12-19 14:50 ?305次閱讀

    嵌入式基礎知識-系統調度

    完成實時任務,并控制所有實時任務協調一致運行的操作系統。 RTOS屬于多任務系統,與進程切換
    發表于 12-16 08:15

    freertos關閉任務調度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 關閉任務調度 */ void
    發表于 11-17 06:47

    嵌入式實時操作系統的特點

    任務系統實時嵌入式操作系統與傳統的桌面操作系統相比,更注重對實時任務的響應和精確
    發表于 11-13 06:30

    無刷直流電機雙閉環串級控制系統仿真研究

    Madlab進行BLDC建模仿真的方法,并且也提出了很多的建模仿真方案。例如有研究人員提出采用節點電流法對電機控制系統進行分析,通過列寫m函數,建立BLDC控制系統真模型,這種方法實質上是一種整體建模
    發表于 07-07 18:36

    無刷直流電機模糊PI控制系統建模與仿真

    。利用該模型進行了電機動靜態性能的仿真研究,仿真結果與理論分析一致,表明讀方法建立的 BLDCM控制系統仿真模型合理、有效。該模型簡單、直觀、參數易于修改和替換,可方便地用于其他控制算法
    發表于 07-07 18:25

    無刷直流電機磁場定向控制系統研究

    控制策略及實現方法,并建立系統仿真模型,仿真表明基于FOC的BLDCM控制系統性能良好,轉矩脈動小。以STM32FI03B為核心設計了基于FOC策略的 BLDCM
    發表于 06-26 13:31

    三相開關磁阻電機直接轉矩控制系統研究

    分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:三相開關磁阻電機直接轉矩控制系統研究.pdf【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 06-13 09:35

    零延遲響應:安卓工控機如何用實時操作系統(RTOS)賦能工業控制

    在工業4.0時代,工業控制系統實時性的要求已突破毫秒級門檻,傳統操作系統任務調度延遲、中斷響應不確定性等問題,難以滿足精密運動
    的頭像 發表于 06-09 15:49 ?1241次閱讀

    感應電機滑模變結構控制系統的半實物仿真

    結構控制的感應電機電流內環控制策略,在分析半實物仿真機理的基礎上,搭建了滑模變結構控制系統實時仿真模型,實現
    發表于 05-28 15:45

    直流電機控制方法的Matlab仿真研究

    速度控制模型,以提高無刷直流電機速度控制系統的穩定性和抗干擾能力 。使用 Matlab/Simulink 工具箱建立無刷直流電機的仿真模型,研究結果表明,模糊自適應 PID 算法能夠使
    發表于 03-27 12:15

    排水泵站遠程智能控制系統

    排水泵站遠程智能控制系統作為現代城市水務管理的重要組成部分,正逐步改變著傳統泵站運維管理的面貌。該系統通過集成物聯網技術、云計算、數據分析以及邊緣計算算法,對排水泵站的遠程監控、智能調度
    的頭像 發表于 03-21 16:01 ?856次閱讀