欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3488|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

實(shí)時(shí)系統(tǒng)概念

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-23 20:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這幾天邊看電影邊整理的筆記。大家得捧場哈!以后會(huì)經(jīng)常有的。

           首先我們的熟悉實(shí)時(shí)系統(tǒng)的概念,實(shí)時(shí)系統(tǒng)它分為軟實(shí)時(shí)和硬實(shí)時(shí);軟實(shí)時(shí)系統(tǒng)它是指系統(tǒng)的目的是為了使各個(gè)任務(wù)盡快的執(zhí)行,而不要求限定的某一個(gè)任務(wù)在多長時(shí)間內(nèi)完成,也就是該系統(tǒng)超過規(guī)定時(shí)間對系統(tǒng)不會(huì)產(chǎn)生很大的影響,系統(tǒng)依然可以運(yùn)行。而硬實(shí)時(shí)系統(tǒng)則不僅要求任務(wù)執(zhí)行無誤,而且還要做到準(zhǔn)時(shí);也就是說在一到達(dá)規(guī)定的時(shí)間,任務(wù)必須完成,否則會(huì)給系統(tǒng)帶來災(zāi)難性的后果。
           我以前寫的程序很多是沒有嵌系統(tǒng)的,所以它們稱為前/后臺(tái)系統(tǒng)或超循環(huán)系統(tǒng)。那么什么是前臺(tái),什么是后臺(tái)呢?我們的程序中有個(gè)main函數(shù),這個(gè)函數(shù)肯定是一個(gè)無限循環(huán)系統(tǒng),在循環(huán)中調(diào)用相應(yīng)的驅(qū)動(dòng)函數(shù)完成相應(yīng)的功能,這部分可以看成是后臺(tái)行為;一般的系統(tǒng)都是有中斷發(fā)生的,那么中斷服務(wù)處理程序可以看成是前臺(tái)行為;固有這個(gè)說法,后臺(tái)可以成為任務(wù)級,前臺(tái)成為中斷級。這種前/后臺(tái)系統(tǒng)有一個(gè)很大的缺點(diǎn),就是任務(wù)級的響應(yīng)時(shí)間不是固定的,因?yàn)樗茄h(huán)中的一部分,所以取決于循環(huán)運(yùn)行的時(shí)間,所以前/后臺(tái)系統(tǒng)很容易跑飛。
           代碼的臨界段也稱臨界區(qū),指處理時(shí)不可分割的代碼;所以進(jìn)入臨界區(qū)之前必須關(guān)中斷,臨界區(qū)代碼執(zhí)行完后,必須馬上開中斷。
任務(wù),在UCOS-ii實(shí)時(shí)系統(tǒng)中,一個(gè)任務(wù)其實(shí)就是一個(gè)線程,該任務(wù)可以認(rèn)為CPU完全屬于它自己。UCOS-ii中的任務(wù)擁有自己的堆棧和CPU寄存器,并且賦予一定的優(yōu)先級,在UCOS-ii中,它可能處于睡眠、就緒、運(yùn)行、等待、中斷服務(wù)狀態(tài)之一。1)睡眠狀態(tài):它是一個(gè)什么樣的狀態(tài)呢,它其實(shí)是指一個(gè)任務(wù)在內(nèi)存中就占用一部分ROM,它沒有被操作系統(tǒng)分配任務(wù)控制塊,它和其他狀態(tài)下的任務(wù)沒有任何直接聯(lián)系,也就是說不能被內(nèi)核調(diào)度,就好比 我們?nèi)コ燥垼诼飞希?)就緒狀態(tài):它是指操作系統(tǒng)給它分配了任務(wù)控制塊,已經(jīng)在就緒列表中登記中,它此時(shí)不能運(yùn)行是因?yàn)樗膬?yōu)先級不是最高的,就好比我們?nèi)コ燥垥r(shí)在那排隊(duì)一樣;3)運(yùn)行狀態(tài):它 是指一個(gè)任務(wù)正在運(yùn)行,應(yīng)該好理解,就好比食堂工作人員在給我們打飯;4)等待狀態(tài):就是一個(gè)任務(wù)由于一個(gè)的條件沒有滿足,比如說在等待一個(gè)信號量的到來,而被至于等待狀態(tài),就像我們在打飯時(shí),如果工作人員還沒有來,那你沒辦法,你就得等拉;5)中斷服務(wù)狀態(tài):就是在某個(gè)時(shí)刻突然因?yàn)橐粋(gè)中斷到來,那么 這個(gè)任務(wù)就會(huì)馬上被中斷掉,從而處于中斷服務(wù)狀態(tài),比如一個(gè)餓得受不了的人,如果搶你前面,本來該你打飯的,可是你看到他這個(gè)樣子,不忍心,那么你就被中斷了一會(huì),中斷結(jié)束后,中斷掉的任務(wù)才會(huì)被繼續(xù)運(yùn)行,同樣的你才能夠打飯;呵呵,這個(gè)比喻好像損了點(diǎn)。
在操作系統(tǒng)中,內(nèi)核提供的基本服務(wù)就是任務(wù)切換,它實(shí)際上可以說是寄存器內(nèi)容的切換。自然任務(wù)切換是需要時(shí)間的,CPU寄存器越多,負(fù)荷也就越大。
      基于優(yōu)先級的內(nèi)核有兩種:不可剝奪型和可剝奪型。不可剝奪型內(nèi)核它要求每個(gè)任務(wù)互相合作,也稱為合作型內(nèi)核,每個(gè)任務(wù)不會(huì)被其它任務(wù)剝奪去,除非中斷的到來,即便如此,當(dāng)中斷結(jié)束后,還是會(huì)回到原來被中斷的程序,而不會(huì)切換到具有高優(yōu)先級的任務(wù)中去,這樣,高優(yōu)先級的任務(wù)就不能夠及時(shí)得到執(zhí)行,所以它的實(shí)時(shí)性是比較差的。但是它有一個(gè)很重要的特點(diǎn),就是它可以使用不可重入函數(shù),因?yàn)槊總(gè)任務(wù)必須執(zhí)行完,才能釋放CPU,這樣它對其它任務(wù)調(diào)用不可重入函數(shù)沒有影響;同理在大多數(shù)情況下它無須使用信號量來保護(hù)資源。
      對于可剝奪型內(nèi)核,只要高優(yōu)先級任務(wù)一就緒,那它就會(huì)被執(zhí)行,而當(dāng)前正在執(zhí)行的任務(wù)就會(huì)被掛起;正因?yàn)槿绱耍瑢τ谙到y(tǒng)的資源就不能像不可剝奪型那樣去使用,而是在使用前必須檢查是否可以使用,即互斥機(jī)制來保護(hù)臨界資源,如果不用的話,那么如果低優(yōu)先級在使用臨界資源時(shí),突然被高優(yōu)先級把CPU給搶過去了,那么低優(yōu)先級的臨界資源就可能會(huì)被告優(yōu)先級任務(wù)給破壞掉,所以可剝奪型內(nèi)核是不能調(diào)用不可重入函數(shù)的,必須對共享資源通過互斥來訪問。可剝奪型的優(yōu)點(diǎn)是是系統(tǒng)的響應(yīng)時(shí)間得到了優(yōu)化,且是可知的。
實(shí)時(shí)系統(tǒng)中,中斷優(yōu)先級反轉(zhuǎn)這一問題是出現(xiàn)得最多的,這問題的本質(zhì)其實(shí)也不能理解,就是低優(yōu)先級的任務(wù)占有高優(yōu)先級的任務(wù)所需要的資源,而使高優(yōu)先級不得不等低優(yōu)先級把資源釋放才能執(zhí)行,在UCOS中一樣也存在這問題。不過我們可以人為解決這問題,因?yàn)閁COS中可以動(dòng)態(tài)的修改任務(wù)的優(yōu)先級,那么我們可以通過優(yōu)先級極限法,實(shí)際上就是把低優(yōu)先級的任務(wù)的優(yōu)先級提高為0級;使該任務(wù)不會(huì)被其他任務(wù)所中斷,直到該任務(wù)執(zhí)行完共享資源的代碼后再回到原來的優(yōu)先級。其實(shí)還有一種方法叫優(yōu)先級繼承法,它的含義就是把低優(yōu)先級任務(wù)的優(yōu)先級提高至與要用到該低優(yōu)先級任務(wù)所占用的資源;這要求內(nèi)核能夠允許一個(gè)優(yōu)先級可以對應(yīng)于多個(gè)任務(wù),同時(shí)支持時(shí)間片段輪度調(diào)度;顯然UCOS是不支持它的。更多的請見嵌入式實(shí)時(shí)系統(tǒng)中的優(yōu)先級反轉(zhuǎn)問題
上面提到了互斥,就簡要描述下互斥的條件;互斥我們一般在于共享資源打交道時(shí)經(jīng)常用到,那么我們對這些共享資源要怎么才能做到合理利用而被破壞呢,那就要使當(dāng)時(shí)內(nèi)核的環(huán)境滿足互斥條件:關(guān)中斷、使用測試并置位指令(要求有相應(yīng)的硬件)、禁止做任務(wù)切換、利用信號量。
信號量實(shí)際上是一種約束機(jī)制,熟悉操作系統(tǒng)應(yīng)該都懂它,他有以下作用:1>控制共享資源的使用權(quán)『滿足互斥機(jī)制』2>標(biāo)志某事件的發(fā)生3>使2個(gè)任務(wù)的行為同步。信號量可是01的兩個(gè)值也可以是0nn>2)的計(jì)數(shù)式的信號量;總之內(nèi)核是時(shí)刻跟蹤信號量的『這句話可要好好理解』。一般說信號量只能實(shí)施3種操作:初始化,也可以稱是建立,此時(shí)要初始化信號量的初始值,記住是不能小于0的;等待信號量,這時(shí)等待信號量的任務(wù)一般處于掛起狀態(tài),等待的任務(wù)如果發(fā)現(xiàn)信號量大于0,信號量的值減1,然后繼續(xù)執(zhí)行,如果為0,該任務(wù)就掛起;然后就是發(fā)送信號量,發(fā)送時(shí),信號量會(huì)增一,同時(shí)會(huì)進(jìn)行任務(wù)調(diào)度。
死鎖也稱為抱死,指兩個(gè)任務(wù)無限期的等待對方的資源;防止死鎖的方法:1>先得到全部資源,再做下一步的工作2>用同樣的順序申請多個(gè)資源3>釋放資源是,使用相反的順序。還有就是定義超時(shí)來化解死鎖。
任務(wù)間的信息的傳遞有兩個(gè)途徑:全程變量和發(fā)消息給另一個(gè)任務(wù)。任務(wù)只能通過全程變量和中斷服務(wù)子程序通信。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表