音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

RTOS和while(1)系統(tǒng)的實時性哪一個更好?

作者:碧水長天 欄目:嵌入式系統(tǒng)
RTOS和while(1)系統(tǒng)的實時性哪一個更好?
    最近,在應(yīng)用系統(tǒng)中嵌入式RTOS,似乎成為一股潮流,但是還有相當(dāng)多的應(yīng)用系統(tǒng),盡管其任務(wù)相當(dāng)多,系統(tǒng)也很復(fù)雜,對實時性要求也比較高,但是依然采用while(1)系統(tǒng)(在這里我把它等同成前/后臺系統(tǒng))。

   其實“哪一個實時性更好?”的提問方式太過簡單了,準(zhǔn)確地說,在一個對實時性要求比較高的應(yīng)用系統(tǒng)里面,若硬件可滿足采用RTOS的條件,而更優(yōu)異的實時性能成了關(guān)鍵指標(biāo),那么,是選擇RTOS還是傳統(tǒng)的while(1)系統(tǒng)呢(前/后臺系統(tǒng))?

   有或者這樣理解:如何評判RTOS和while(1)的實時性能?

   最近和同事在討論這個問題,我認(rèn)為在中斷頻繁且要求中斷都能及時響應(yīng)的應(yīng)用系統(tǒng)里面,采用while(1)的軟件結(jié)構(gòu)能比RTOS獲得更好的實時性能。

   具體的分析下次再補(bǔ)充,在這里先拋磚引玉,請各位前輩高人談?wù)勛约旱目捶ā?br>

* - 本貼最后修改時間:2005-10-28 11:16:38 修改者:碧水長天

2樓: >>參與討論
AIRWILL
呵呵,本人也頗有同感
其實未必 RTOS 才能完成實時性.合理的軟件安排更關(guān)鍵

3樓: >>參與討論
qjy_dali
其實,合理的軟件安排就帶有RTOS的思想了
也就是說,在使用while(1)的方式中,有些時候仍然能寫出很直觀的程序,很RTOS樣的程序

4樓: >>參與討論
bluearia
看軟件的復(fù)雜性
如果軟件很復(fù)雜,代碼量大,用RTOS更好分配、調(diào)度任務(wù)。
相反,軟件不是很復(fù)雜,考慮一下:如果運行一個大循環(huán)只要數(shù)MS時間,而RTOS的調(diào)度周期是10MS或更長(中斷后產(chǎn)生調(diào)度除外),哪個實時性更好呢?
使用RTOS,主要不在乎實時性,更應(yīng)該是任務(wù)調(diào)度更容易。當(dāng)然相對于那些非實時系統(tǒng)而言,RTOS的實時性當(dāng)然更好了。

* - 本貼最后修改時間:2005-10-31 10:43:54 修改者:bluearia

http://aria.mcublog.com

5樓: >>參與討論
tusimbe
問題很奇怪
如果任務(wù)不能被調(diào)度,哪有什么實時性可言?前后臺系統(tǒng)如果任務(wù)可以被調(diào)度,那就有OS的特征。

6樓: >>參與討論
bjwlgh
前后臺的程序的實時性應(yīng)該高過RTOS
個人認(rèn)為,前后臺的程序的實時性應(yīng)該高過RTOS,但是我認(rèn)為使用RTOS更多的是從軟件的角度來說,提供了多種任務(wù)之間的通訊機(jī)制,方便大型嵌入式軟件模塊話的開發(fā),比如通訊協(xié)議的開發(fā),從這個角度來說RTOS要優(yōu)于前后臺。
  另外的話所有的RTOS都有一個響應(yīng)時間的問題,只要這個響應(yīng)時間在可接收范圍內(nèi)就可以了。

7樓: >>參與討論
publicrtos
我不認(rèn)為是這樣
我認(rèn)為RTOS的實時性要好一些。
原因:

如果一個while(1):

while(1)
{
   if(flag1)task1();
   if(flag2)task2();
   if(flag3)task3();
   if(flag4)task4();
...
}

當(dāng)程序剛剛判斷完后flag1不成立之后,如果正好flag2、flag3、flag4都成立的話,那么task1開始的時間就要延時好長了。就算不會出錯,每個事件的發(fā)生到開始運行處理程序的這段時間每次都很難相等。

如果是RTOS:

if(falg1)wakeup(task1);
...
if(flag1)wakeup(task2);
...

這樣可以使每個任務(wù)都能得到確切時間的響應(yīng),程序可以更清楚的了解自己的系統(tǒng)性能,而且不會出現(xiàn)死鎖的情況。while(1)循環(huán)中加一個任務(wù)或加一段代碼,都要從最壞的條件來仔細(xì)評估每個任務(wù)會不會響應(yīng)不及時。

“實時”的含義是程序員確切知道每個任務(wù)的從觸發(fā)到響應(yīng)的時間。


8樓: >>參與討論
AIRWILL
publicrtos 提到了切實的問題
    大家都要等待,看等待的結(jié)果.
while(1) 做好了,大概能達(dá)到的就是非占先式 RTOS 的特性,當(dāng)然效率應(yīng)該會比其高些. 所以,軟件里如何安排是關(guān)鍵的問題,也是軟件設(shè)計者水準(zhǔn)的表達(dá).

9樓: >>參與討論
zhuph
同意AIRWILL
關(guān)鍵要看目標(biāo)要求,達(dá)到要求即可!

10樓: >>參與討論
fineamy
os的歷史!
      在計算機(jī)剛誕生時,那時的電腦編程沒有操作系統(tǒng),大家各行其事,真是八仙過海,各顯神通,軟件編程非常講究技巧(就像現(xiàn)在的單片機(jī))。后來硬件的提升,以及軟件的復(fù)雜化,這種編程方法越來越不能適應(yīng)這種變化的發(fā)展。于是操作系統(tǒng)誕生了,它簡化了軟件的復(fù)雜性,使得軟件模塊化,利于多人合作。(當(dāng)然不止這些憂點)。(這時有點像嵌入式了),后來隨著硬件進(jìn)步提升,外設(shè)增多,沒有操作系統(tǒng)已經(jīng)是不可能了。。!
     操作系統(tǒng)幾乎是軟件技術(shù)的結(jié)晶,它帶動了軟件技術(shù)的發(fā)展,而軟件技術(shù)的方展反過萊又促進(jìn)了os的發(fā)展,由于不同的目的又出現(xiàn)了所謂分時操作系統(tǒng),分布式操作系統(tǒng),并行操作系統(tǒng)等等。這些都代表著軟件技術(shù)的發(fā)向。
     隨著計算機(jī)技術(shù)的發(fā)展,我們的單片機(jī)出現(xiàn)了,潛入式出現(xiàn)了,既然軟件技術(shù)已經(jīng)取得了這么多的成就,這些成就自然而然的就會在我們開發(fā)這些系統(tǒng)中或多或少的應(yīng)用,無論你是有意或是無意,你都可能從那些軟件技術(shù)中或多或少獲益,并應(yīng)用于開發(fā)中。
      然而,現(xiàn)在,我們開始討論到底用while(1)結(jié)構(gòu)rt好,還是用rtos好,到底哪個好,這個問題并不能一概而論,但是可以肯定的是:隨著任務(wù)的增多,軟件復(fù)雜性的提高,rtos的優(yōu)越性就會凸顯。拿一些單任務(wù)或較少任務(wù)的程序來對兩者進(jìn)行比較對rtos是不公平的。

    當(dāng)然我們不排除有高手對于大量任務(wù)編程不用rtos也是得心應(yīng)手,就像我不排除計算機(jī)剛誕生時依然有復(fù)雜軟件系統(tǒng)一樣。




11樓: >>參與討論
forest_j
安排比較好的前后臺系統(tǒng)
其實已經(jīng)自覺不自覺地引入了RTOS的思想。
如果將主循環(huán)的周期固定為數(shù)十個毫秒,那就有OS的雛形,只是放在定時中斷外來調(diào)度任務(wù)了。

12樓: >>參與討論
athlon64fx
基本同意樓主所言
相對來說, RTOS任務(wù)實時性高, 中斷實時性低.

實時不是全部.

13樓: >>參與討論
elelab
RTOS的響應(yīng)時間是確定的,不隨任務(wù)數(shù)變化
while(1),響應(yīng)時間隨任務(wù)數(shù)變化,前邊的帖子說過了

一般RTOS給出的響應(yīng)時間是最壞值,和while(1)結(jié)構(gòu)比較時要注意這個可比前題

感覺兩者沒有結(jié)構(gòu)上的可比性,因為差別太大了,不是誰好誰壞的問題

14樓: >>參與討論
gouki_s
實時性?任務(wù)響應(yīng)速度?
樓主要搞清楚任務(wù)響應(yīng)速度的問題。
也就是說,數(shù)據(jù),信號,事件等東西,用中斷接受保存或置標(biāo)志位都是很快的,但是什么時候處理就有區(qū)別了。

呵呵,當(dāng)然你可以完全用匯編做,實時性最高。因為匯編的話,你知道從一個任務(wù)切換到另一個任務(wù)需要對那些東西加以保護(hù)。

15樓: >>參與討論
AIRWILL
有些不是很贊同
    也許,匯編的執(zhí)行效率比C會高些, 但不會是主要因素, 我覺得我們更需要關(guān)注的是人的因素.
    實時性,響應(yīng)速度更關(guān)鍵的在于對系統(tǒng)的分析和最合理乃至最優(yōu)化安排和分配(cpu資源).

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
SPWM的問題,不知這里有沒有人幫忙!
請教cs8900工作在16位模式下
嵌入式操作系統(tǒng)選擇的求問。!
誰知道哪里能買到柯達(dá)的CCD?
我用SMALL RTOS 沒辦法進(jìn)入串行中斷
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號