久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品

探析實時嵌入式系統(tǒng)互斥方法

來源:期刊VIP網(wǎng)所屬分類:光電技術(shù)時間:瀏覽:

  摘要:多任務(wù)系統(tǒng)中當(dāng)一個共享地址空間簡單地用于數(shù)據(jù)交換時,為避免競爭,需要對內(nèi)存的訪問上鎖,以保證訪問互斥進(jìn)行。實現(xiàn)資源互斥訪問的方法很多,不同之處僅在于互斥的范圍和程度。這些方法包括禁止中斷,禁止搶占和使用信號量等對資源上鎖。

  關(guān)鍵詞:多任務(wù),任務(wù)優(yōu)先級,搶占,調(diào)度時機(jī),調(diào)度器

  1 引言

  互斥機(jī)制最強(qiáng)有力的方法是禁止中斷,這種上鎖保證了對CPU的獨占訪問。在互斥期間,即使外部事件產(chǎn)生而引發(fā)相應(yīng)的中斷,系統(tǒng)也不會切換到相應(yīng)的中斷服務(wù)程序(ISR),也能保證任務(wù)之間的互斥。因此在上鎖期間,它可能造成系統(tǒng)對外部事件反應(yīng)遲鈍。這對于大多數(shù)實時系統(tǒng)而言,系統(tǒng)的實時性也就得不到保證,因而不適合作為一種通用的互斥方法。然而當(dāng)涉及到任務(wù)和中斷服務(wù)程序共享數(shù)據(jù)時,中斷上鎖又是唯一的方法。但是在任何情況下,應(yīng)該使中斷上鎖時間盡量短,這也是所有實時系統(tǒng)的基本要求。

  從本質(zhì)上講,信號量機(jī)制比禁止中斷或禁止搶占提供更精確的互斥粒度,但是在使用時需要注意優(yōu)先級繼承,刪除安全性和遞歸使用等問題,并且當(dāng)一個任務(wù)需要同時獲取多個信號量時更要注意避免系統(tǒng)的死鎖問題。因此,一般實時嵌入式操作系統(tǒng)都會為用戶提供多種互斥手段,以適應(yīng)不同的使用場合。但對于禁止搶占(禁止調(diào)度)這種方法而言,有些系統(tǒng)支持,如UC/OS--II,VxWorks等,而有些系統(tǒng)未必支持,如PSOS等,為了達(dá)到禁止搶占這種效果,并且不受具體系統(tǒng)的約束,本文提出了一種新的禁止搶占方法——最高優(yōu)先級法。

  2 禁止搶占的基本原理

  如果任務(wù)不與中斷服務(wù)子程序共享變量或數(shù)據(jù)結(jié)構(gòu),可以使用先禁止然后允許任務(wù)切換的手段。此時雖然任務(wù)切換禁止了,但中斷還是開著的。如果這時中斷來了,中斷服務(wù)子程序會在這一臨界區(qū)內(nèi)立即執(zhí)行。中斷服務(wù)子程序結(jié)束時,即使有更高優(yōu)先級的任務(wù)已經(jīng)進(jìn)入就緒態(tài),內(nèi)核還是返回到原先被中斷了的任務(wù),直到執(zhí)行完給任務(wù)切換開鎖函數(shù),內(nèi)核再看看有沒有優(yōu)先級更高的任務(wù)被中斷服務(wù)子程序激活而進(jìn)入就緒態(tài),如果有則做任務(wù)切換。此種機(jī)制比中斷上鎖要弱一些。

  3 最高優(yōu)先級法

  3.1最高優(yōu)先級法的基本原理

  在實時嵌入式系統(tǒng)中,各個應(yīng)用任務(wù)依據(jù)實時性.重要性被賦予了不同的優(yōu)先級,內(nèi)核嚴(yán)格按照優(yōu)先級的高低來調(diào)度任務(wù),高優(yōu)先級的任務(wù)能搶占低優(yōu)先級的任務(wù)以滿足實時性的要求。另外,實時嵌入式操作系統(tǒng)一般都提供了動態(tài)更改任務(wù)優(yōu)先級的系統(tǒng)調(diào)用。我們可以將系統(tǒng)中的最高優(yōu)先級(HiPriority)預(yù)留下來,當(dāng)某任務(wù)需要禁止搶占時,將該任務(wù)的優(yōu)先級提升到最高優(yōu)先級(PriorityProtect),在該任務(wù)將其自身的優(yōu)先級設(shè)回原優(yōu)先級(UnPriorityProtect)之前,系統(tǒng)中的其它任務(wù)不會搶占該任務(wù),該任務(wù)可以放心地完成臨界區(qū)的操作。使用這種方法也可以選擇基于優(yōu)先級的時間片輪轉(zhuǎn)調(diào)度。輪轉(zhuǎn)調(diào)度可以使優(yōu)先級相同處于就緒態(tài)的任務(wù)公平地分享使用CPU。按照優(yōu)先級調(diào)度的原理,考察我們的最高優(yōu)先級法:當(dāng)任務(wù)處于最高優(yōu)先級時即使時間片到期任務(wù)也不會切換出去,因為就緒隊列里優(yōu)先級最高(為HiPriority)的任務(wù)只有一個,不管它是否用完時間片,其它低優(yōu)先級的任務(wù)都無法搶占它。

  3.2最高優(yōu)先級法的普通實現(xiàn)

  我們先來分析下面的一種在實際開發(fā)工作中會遇到的情況,任務(wù)A中有一段臨界區(qū)代碼,并且假設(shè)該臨界區(qū)代碼不包含因等待資源而不得不讓出CPU的可能:

  PriorityProtect();

  ……//代碼1

  Func();//函數(shù)調(diào)用

  ……//代碼2

  UnPriorityProtect();

  而函數(shù)Func()如下定義:

  Func()

  {

  ……//代碼3

  PriorityProtect();

  ……//代碼4

  UnPriorityProtect();

  ……//代碼5

  }

  當(dāng)Func()執(zhí)行完時,任務(wù)A的優(yōu)先級被設(shè)回了原先的優(yōu)先級,代碼2將受不到保護(hù)!因此,我們需要對函數(shù)PriorityProtect()和UnPriorityProtect()進(jìn)行改造:函數(shù)PriorityProtect()需返回設(shè)置最高優(yōu)先級之前任務(wù)的優(yōu)先級,而函數(shù)UnPriorityProtect()卻不一定總是設(shè)置任務(wù)原先的優(yōu)先級,它設(shè)置的是與之配對的PriorityProtect()返回的優(yōu)先級。這兩個函數(shù)都是成對使用的,不管嵌套使用了多少次都不會出錯,舉例如下:

  OldPriority=PriorityProtect();

  ……//代碼1

  Func();//函數(shù)調(diào)用

  ……//代碼2

  UnPriorityProtect(OldPriority);

  而函數(shù)Func()如下定義:

  Func()

  {

  int OldPriority;

  ……//代碼3

  OldPriority =PriorityProtect();

  ……//代碼4

  UnPriorityProtect(OldPriority);

  ……//代碼5

  }

  這樣在函數(shù)Func()執(zhí)行完后任務(wù)仍處于最高優(yōu)先級狀態(tài),代碼2仍受到保護(hù),符合程序員的意圖,程序員不必?fù)?dān)心會發(fā)生意外。但是這種方法的效率有點低下,執(zhí)行Func()時已經(jīng)是最高優(yōu)先級狀態(tài)了,卻還要再設(shè)置,浪費了CPU時間,在嵌套次數(shù)較多時效率問題將更加嚴(yán)重。另一方面我們不能輕易將函數(shù)Func()中的互斥手段去掉,因為這要考慮在其它沒提供互斥手段的情況下調(diào)用Func()。基于上述原因,我們引入一種高效的方法——嵌套計數(shù)法。

  3.3最高優(yōu)先級法的嵌套計數(shù)實現(xiàn)

  先來定義操作規(guī)則:COUNT為系統(tǒng)中的全局變量,初始化為0。

  PriorityProtect()

  {

  if(!COUNT) ……(1)

  利用具體的系統(tǒng)調(diào)用把當(dāng)前任務(wù)設(shè)成最高優(yōu)先級 ……(2)

  COUNT++; ……(3)

  }

  UnPriorityProtect()

  {

  COUNT--;……(4)

  if(!COUNT) ……(5)

  利用具體的系統(tǒng)調(diào)用把當(dāng)前任務(wù)設(shè)成原先的優(yōu)先級……(6)

  }

  再來分析一下這種方法的安全性。COUNT是全局變量,對它的訪問要防止競爭條件。但巧妙的是一旦我們把任務(wù)用操作系統(tǒng)原語調(diào)用設(shè)成最高優(yōu)先級后,對COUNT的訪問將是獨占的;一個任務(wù)首次調(diào)用PriorityProtect()時在語句(1)處有競爭條件,但一次只能有一個任務(wù)通過(2)處的原語成為最高優(yōu)先級,只要我們正確地配對使用這兩個函數(shù),當(dāng)這個任務(wù)最終退出最高優(yōu)先級狀態(tài)時COUNT必為0,并不影響其它任務(wù)在(1)處的判斷。這種方法的高效性也是明顯的,在嵌套使用的里層僅僅進(jìn)行嵌套計數(shù)的計算,并不用進(jìn)行優(yōu)先級的設(shè)置。

  4 結(jié)論

  盡管不同的實時嵌入式操作系統(tǒng)給用戶提供的系統(tǒng)調(diào)用接口不盡相同,但是它們所準(zhǔn)遵循的基本原理都是相同的。上述關(guān)于禁止任務(wù)搶占的普通實現(xiàn)以及嵌套計數(shù)實現(xiàn)提供的都是實現(xiàn)思想,在實際應(yīng)用中很容易結(jié)合所使用的具體的操作系統(tǒng)寫出PriorityProtect()和UnPriorityProtect()的實現(xiàn)代碼。

  [1] Labrosse Jean J,uc/OS-II-源碼公開的實時嵌入式操作系統(tǒng),邵貝貝譯,北京:中國電力出版社,2001.

  [2] 孔祥營等,嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado,北京:中國電力出版社,2001.

爸爸缓慢有力送女儿的句子| www.av在线.com| 免费观看电视剧全集在线播放高清| 1000部精品久久久久久久久| 人妻夜夜爽天天爽欧美色院| 国产AV无码专区亚洲AV| 亚洲VA中文字幕无码久久不卡| 国内外精品激情刺激在线| 宅男66LU国产在线观看| AAA少妇高潮大片免费看| 国内偷自第一区二区三区| 中文字幕肉感巨大的乳专区| 舌头伸进去添的我好爽高视频| 久久99精品久久久久久国产| 幼儿稀缺区超清幼儿做的网站 | 精品视频一区二区三区在线观看 | 野花高清完整版免费观看视频大全| 欧美肥胖老太大喷水| 国产精品国产自线拍免费软件| 99精品国产一区二区三区不卡| 忘忧草日本在线播放WWW| 女人露P毛视频·WWW| 久久久久精品国产四虎1 | 三个人换着躁B一PL| 国内精品伊人久久久久777| 37大但文体艺术A级都市天气 | 啊轻点都日出水来了| 亚洲AV无码久久精品色欲| 人与动人物XXXX毛片在线播放| 久久精品国产免费播| 国产成人无码精品XXXX| 97夜夜澡人人爽人人喊A| 亚洲夜夜性无码国产盗摄| 波多野结衣系列18部无码观看A | 国产SM鞭打折磨调教视频| 99精品视频九九精品视频| 亚洲高清成人AV电影网站| 日日摸夜夜添狠狠添欧美| 欧美成人免费一区| 色欲丰满熟妇人妻AV无码| 欧美XXXX做受欧美88HD| 国产午夜亚洲精品午夜鲁丝片| 成人乱码一区二区三区AV| 伊人久久大香线蕉AV网| 色婷婷AV一区二区三区| 内射人妻无码色AV麻豆去百度搜| 国产私人尤物无码不卡| 公在客厅里吃我的奶涨奶视频| 不什么不什么的成语| 部长的夫人的味道中字| 91麻豆精品无码一区二区三区| 阳台顶着岳刘晓莉的肥臀| 亚洲精品中文字幕无码专区| 亚洲精品乱码久久久久久自慰| 日韩综合亚洲色在线影院| 人妻无码一区二区| 女人天堂亚洲AⅤ在线观看| 精品午夜人成一区| 精品人妻AV区乱码| 老外免费CSGO交易网站下载| 男生裸睡勃起流出液体| 日本丰满熟妇×××××乱| 熟妇高潮一区二区精品de| 人人人妻人人澡人人爽| 甜性涩爱在线播放| 亚洲成A人片在线观看中文无码| 亚洲国产精品第一区二区| 一本一本久久A久久精品综合麻豆 一本一本久久A久久精品综合 | 18禁黄网站男男禁片免费观看| 亚洲综合日韩久久成人AV| 亚洲国产成人久久精品软件| 亚洲AV日韩精品一区二区三区 | 性少妇VIDEOXXX欧美69| 亚洲精品美女久久7777777| 亚洲精品无码不卡在线播放 | 麻花豆传媒剧国产MV在线| 日本入室强伦姧在线观看| 亚洲精品无码久久久久Y| JAPANESE人妻少妇HD| 国产情侣露脸高清在线| 国产精品毛片无遮挡高清| 国产成人亚洲精品无码VR| 国产办公室沙发系列高清| 囯精产品一品二品国精| 国产麻豆MD传媒视频| 韩国三级日本三级美三级| 精品久久久久久无码专区| 久久精品女人天堂AV麻| 女班长给我看她小积积作文| 日本高清在线视频WWW色| 天天躁日日躁狠狠躁午夜剧场| 欲しがる人妻 波多野结衣| 性一交一乱一性一在线观看| 亚洲最大AV无码网址| Chinese国产HD精品实拍| 成熟老年妇女毛茸茸| 国产揄拍国产精品| 拧花蒂尿用力按凸起喷水尿视频| 日本乱妇乱子视频网站-百度| 亚洲成AV人片在线观看无 | 丰满少妇女人A毛片视频| 国产精品美女久久久久久2018| 精品成人免费一区二区| 男生女生一起相差差差30| 欧美成人少妇人妻精品视频| 三上悠亚SSNI452内衣模特| 亚洲AV成人无码一二三| 2021自拍偷在线精品自拍偷 | 18禁免费无码无遮挡不卡网站| FREE性欧美精品VIDEOS| 久久久久久久久久久精品| 亚洲A级成人片在线观看| 在公交车上弄到高C了| 精品人妻系列无码专区| 亚洲AV无码一区二区高潮| 国产精品夜色一区二区三区| 天天躁日日躁狠狠躁性色AVQ| 丰满人妻一区二区三区免费视频| 日本三级强乳伦姧| 波多野结衣无内裤护士| 人妻人人添人人爽夜夜欢视频| 97AV麻豆蜜桃一区二区| 男人的又粗又长又硬有办法吗| 真实国产乱子伦精品一区二区三区| 久久青草免费福利资源站| 一本一道AV中文字幕无码| 久久久亚洲熟妇熟女ⅩXXXHD| 亚洲色偷偷色噜噜狠狠99网| 精品无码一区二区三区水蜜桃| 亚洲国产欧美在线综合| 精品无码AV一区二区三区少妇| 亚洲人成未满十八禁网站| 久久精品国产亚洲AVAPP下载| 亚洲性色成人AV天堂| 久久无码人妻一区二区三区| 中国CHINESE老熟女| 女被男狂揉吃奶胸60分钟视频| 97无码免费人妻超级碰碰碰碰| 欧美人与禽XOXO牲伦交| 爆乳3把你榨干哦OVA在线观看 | FREEZEFRAME丰满老妇| 人妻AV资源先锋影音AV资源| 成人18禁在线播放| 天堂√最新版在线| 国产午夜精华无码网站| 亚洲国产精品第一区二区| 久久久久久精品毛片A级蜜桃| 玉蒲团之极乐宝鉴| 欧美精品久久久久久精品爆乳| 爆乳无码AV一区二区三区小说| 上到少妇叫爽TUBE| 国产免费福利在线视频| 亚洲国产AV玩弄放荡人妇系列| 久久久久精品精品6精品精品| 111111少妇影院| 欧美整片欧洲熟妇色视频| 欧洲站高端8码特大码47| 夜夜爽77777妓女免费看| 女人被弄高潮视频免费| 餐桌下手指噗呲噗呲| 少妇午夜啪爽嗷嗷叫视频| 国产婷婷丁香五月缴情成人网| 亚洲精品中文字幕无码蜜桃| 绿帽娇妻在卧室疯狂的呻吟| 啊哈~给我~啊(H)| 无码人妻丰满熟妇区五十路在线 | 麻豆视传媒官方直接进入| 锕锕锕锕锕锕锕锕好疼小视频软件| 舌尖伸入湿嫩蜜汁呻吟| 狠狠色狠狠色综合久久| 中国丰满少妇性BBBBBBBB| 人人妻人人狠人人爽| 国产精品日日摸夜夜添夜夜添| 亚洲精品无码永久在线观看你懂的 | 两人做人爱视频在线观看| 把腿张开老子臊烂你的漫画| 无码欧美毛片一区二区三在线视频| 精品久久久中文字幕人妻 | 男女无遮挡XX00动态图1| 大乱东京道一本热大交乱| 亚洲AV永久无码精品网站| 男男黄Gay片免费网站www| 成熟人妻换╳╳╳╳Ⅹ| 亚洲国产精品无码中文在线| 欧美VA亚洲VA日韩VA| 国产精华液和欧美的精华液的区别| 亚洲精品无码寂寞少妇AV| 欧美人与动牲交XXXXBBBB| 国产手机在线精品| 中文字幕人妻无码一区二区三区| 色五月丁香六月欧美综合| 久久国产精品99久久人人澡| CAOPORN免费公开视频| 午夜性色一区二区三区不卡视频| 久久一本加勒比波多野结衣| 成人无码A级毛片免费| 亚洲日本VA中文字幕| 日韩人妻无码一区二区三区久久| 精品人妻AV区乱码| 吃瓜网51CG7爆料|