日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

嵌入式实时系统的任务设计

發(fā)布時(shí)間:2023/12/1 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式实时系统的任务设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

嵌入式實(shí)時(shí)系統(tǒng)的任務(wù)設(shè)計(jì)主要為任務(wù)函數(shù)的設(shè)計(jì)、任務(wù)優(yōu)先級(jí)的安排、任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),任務(wù)之間的同步與通信設(shè)計(jì)。

一.任務(wù)函數(shù)的設(shè)計(jì)

任務(wù)函數(shù)按任務(wù)結(jié)構(gòu)可分為單次執(zhí)行任務(wù)、周期執(zhí)行任務(wù)和事件觸發(fā)任務(wù),各任務(wù)的主要差異點(diǎn)如下:

單次執(zhí)行任務(wù):執(zhí)行完任務(wù)后進(jìn)入休眠狀態(tài)(一般是從任務(wù)調(diào)度中刪除自己)

周期執(zhí)行任務(wù):執(zhí)行完任務(wù)后進(jìn)入等待狀態(tài),等待時(shí)間為周期時(shí)間(當(dāng)執(zhí)行周期小于一個(gè)時(shí)鐘節(jié)拍或者不是時(shí)鐘節(jié)拍的整數(shù)倍時(shí),可設(shè)計(jì)為定時(shí)器中斷觸發(fā)任務(wù))

事件觸發(fā)任務(wù):等待事件觸發(fā)后再執(zhí)行任務(wù)

?

二.任務(wù)優(yōu)先級(jí)的安排

任務(wù)優(yōu)先級(jí)一般按以下順序由高到低安排:

中斷關(guān)聯(lián)性

緊迫性

關(guān)鍵性

周期性

快捷性

傳遞性

?

實(shí)際優(yōu)先級(jí)設(shè)計(jì)應(yīng)留有余地,以至于將來(lái)做功能擴(kuò)充時(shí)不必對(duì)原有優(yōu)先級(jí)做大幅度調(diào)整。考慮到優(yōu)先級(jí)繼承情況,不應(yīng)將任務(wù)的優(yōu)先級(jí)安排得太緊密。

?

三.任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

任務(wù)的數(shù)據(jù)結(jié)構(gòu)分為與操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu)和與操作系統(tǒng)無(wú)關(guān)的數(shù)據(jù)結(jié)構(gòu),與操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu)可在操作系統(tǒng)配置中進(jìn)行裁剪,與操作系統(tǒng)無(wú)關(guān)的數(shù)據(jù)結(jié)構(gòu)要注意作用域(局部變量還是全局變量)

?

四.任務(wù)之間的同步與通信

在操作系統(tǒng)的管理下,任務(wù)間不允許相互調(diào)用,需通過(guò)同步與通信機(jī)制來(lái)進(jìn)行協(xié)調(diào),可參考多任務(wù)實(shí)時(shí)系統(tǒng)的同步與通信。具體可分為行為同步、資源同步和數(shù)據(jù)通信。

?

對(duì)于任務(wù)調(diào)用的公共函數(shù),有二個(gè)處理方法:

①互斥調(diào)用:執(zhí)行時(shí)間短設(shè)置開(kāi)關(guān)中斷,執(zhí)行時(shí)間長(zhǎng)則配置信號(hào)量

②可重入設(shè)計(jì):不使用全局資源

?

1. 行為同步

①中斷與任務(wù)間的單向同步:通過(guò)信號(hào)量或消息郵箱同步

?

②兩個(gè)任務(wù)間的單向同步:通過(guò)信號(hào)量同步,當(dāng)控制方優(yōu)先級(jí)高于被控制方優(yōu)先級(jí)時(shí),控制方在發(fā)出信息后調(diào)用延時(shí)函數(shù)掛起自身,讓低優(yōu)先級(jí)的被控制任務(wù)得以盡快運(yùn)行

?

③兩個(gè)任務(wù)間的雙向同步:設(shè)立交匯點(diǎn),任務(wù)A在交匯點(diǎn)向B發(fā)送消息,并等待B回復(fù);B到達(dá)交匯點(diǎn)后等待A發(fā)送消息,在收到消息后回復(fù)A。其執(zhí)行過(guò)程如下:

若任務(wù)A優(yōu)先級(jí)高于任務(wù)B,任務(wù)A先運(yùn)行,到達(dá)交匯點(diǎn)后發(fā)送消息給任務(wù)B,等待B回復(fù);在A等待的時(shí)候,B進(jìn)入運(yùn)行狀態(tài),B到達(dá)交匯點(diǎn)后,收到A發(fā)送的消息,B給A回復(fù)消息;高優(yōu)先級(jí)任務(wù)A被激活,離開(kāi)交匯點(diǎn),A被掛起后,B離開(kāi)交匯點(diǎn)。

若任務(wù)A優(yōu)先級(jí)低于任務(wù)B,任務(wù)B先運(yùn)行,到達(dá)交匯點(diǎn)后等待A發(fā)送的消息;在B等待的時(shí)候,A進(jìn)入運(yùn)行狀態(tài),A到達(dá)交匯點(diǎn)后,發(fā)送消息給任務(wù)B并等待B回復(fù);B收到A的消息后給A回復(fù),高優(yōu)先級(jí)任務(wù)B先離開(kāi)交匯點(diǎn),B被掛起后,A收到回復(fù)離開(kāi)交匯點(diǎn)。

?

④兩個(gè)以上任務(wù)同步一個(gè)任務(wù):使用事件標(biāo)志組

?

⑤多個(gè)任務(wù)相互同步:用一個(gè)初始值為0的全局變量作為簽到計(jì)數(shù)器,每個(gè)任務(wù)先從簽到計(jì)數(shù)器的當(dāng)前值判斷是否是最后一個(gè)到達(dá)任務(wù),如果是就清零簽到計(jì)數(shù)器并向其他任務(wù)發(fā)出同步信號(hào),如果不是就通過(guò)將簽到計(jì)數(shù)器加1來(lái)進(jìn)行簽到,然后等待同步信號(hào)(掛起)

?

2. 資源同步

①? 關(guān)中斷

②? 關(guān)調(diào)度

③? 互斥信號(hào)量

④? 計(jì)數(shù)信號(hào)量

?

3. 數(shù)據(jù)通信

①? 全局變量:沒(méi)有行為同步,數(shù)據(jù)量小的情況下

②? 內(nèi)存數(shù)據(jù)塊:沒(méi)有行為同步,數(shù)據(jù)量大的情況下

③? 消息郵箱:有行為同步,通信雙方執(zhí)行頻度相同下適用;在發(fā)送消息方為中斷處理程序時(shí),消息保存有全局變量、靜態(tài)局部變量和將消息內(nèi)容冒充指針發(fā)送的方法,后二種方法較優(yōu)

④? 消息隊(duì)列:適用于以下情況:消息雙方至少一方?jīng)]有穩(wěn)定的執(zhí)行周期;通信雙方執(zhí)行周期不同

轉(zhuǎn)載于:https://www.cnblogs.com/yueze/p/7243750.html

總結(jié)

以上是生活随笔為你收集整理的嵌入式实时系统的任务设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。