電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>單片機>51單片機多任務(wù)操作系統(tǒng)的原理是怎么樣的應(yīng)該如何實現(xiàn)

51單片機多任務(wù)操作系統(tǒng)的原理是怎么樣的應(yīng)該如何實現(xiàn)

2019-06-18 | pdf | 0.18 MB | 次下載 | 1積分

資料介紹

  想了很久,要不要寫這篇文章?最后覺得對操作系統(tǒng)感興趣的人還是很多,寫吧。我不一定能造出玉,但我可以拋出磚。 包括我在內(nèi)的很多人都對51使用操作系統(tǒng)呈悲觀態(tài)度,因為51的片上資源太少。但對于很多要求不高的系統(tǒng)來說,使用操作系統(tǒng)可以使代碼變得更直觀,易于維護,所以在51上仍有操作系統(tǒng)的生存機會。 流行的uCosTiny51等,其實都不適合在2051這樣的片子上用,占資源較多,唯有自已動手,以不變應(yīng)萬變,才能讓51也有操作系統(tǒng)可用。這篇貼子的目的,是教會大家如何現(xiàn)場寫一個OS,而不是給大家提供一個OS版本。提供的所有代碼,也都是示例代碼,所以不要因為它沒什么功能就說LAJI之類的話。如果把功能寫全了,一來估計你也不想看了,二來也失去靈活性沒有價值了。 下面的貼一個示例出來,可以清楚的看到,OS本身只有不到10行源代碼,編譯后的目標(biāo)代碼60字節(jié),任務(wù)切換消耗為20個機器周期。相比之下,KEIL內(nèi)嵌的TINY51目標(biāo)代碼為800字節(jié),切換消耗100~700周期。唯一不足之處是,每個任務(wù)要占用掉十幾字節(jié)的堆棧,所以任務(wù)數(shù)不能太多,用在128B內(nèi)存的51里有點難度,但對于52來說問題不大。這套代碼在36M主頻的STC12C4052上實測,切換任務(wù)僅需2uS.

  一。什么是操作系統(tǒng)?

  人腦比較容易接受“類比”這種表達方式,我就用“公交系統(tǒng)”來類比“操作系統(tǒng)”吧。 當(dāng)我們要解決一個問題的時候,是用某種處理手段去完成它,這就是我們常說的“方法”,計算機里叫“程序”(有時候也可以叫它“算法”)。 以出行為例,當(dāng)我們要從A地走到B地的時候,可以走著去,也可以飛著去,可以走直線,也可以繞彎路,只要能從A地到B地,都叫作方法。這種從A地到B的需求,相當(dāng)于計算機里的“任務(wù)”,而實現(xiàn)從A地到B地的方法,叫作“任務(wù)處理流程” 很顯然,這些走法中,并不是每種都合理,有些傻子都會采用的,有些是傻子都不采會用的。用計算機的話來說就是,有的任務(wù)處理流程好,有的任務(wù)處理流程好,有的處理流程差。 可以歸納出這么幾種真正算得上方法的方法: 有些走法比較快速,適合于趕時間的人;有些走法比較省事,適合于懶人;有些走法比較便宜,適合于窮人。 用計算機的話說就是,有些省CPU,有些流程簡單,有些對系統(tǒng)資源要求低。

  現(xiàn)在我們可以看到一個問題: 如果全世界所有的資源給你一個人用(單任務(wù)獨占全部資源),那最適合你需求的方法就是好方法。但事實上要外出的人很多,例如 10個人(10個任務(wù)),卻只有1輛車(1套資源),這叫作“資源爭用”。 如果每個人都要使用最適合他需求的方法,那司機就只好給他們一人跑一趟了,而在任一時刻里,車上只有一個乘客。這叫作“順序執(zhí)行”,我們可以看到這種方法對系統(tǒng)資源的浪費是嚴重的。 如果我們沒有法力將1臺車變成10臺車來送這10個人,就只好制定一些機制和約定,讓1臺車看起來像10臺車,來解決這個問題的辦法想必大家都知道,那就是制定公交線路。 最簡單的辦法是將所有旅客需要走的起點與終點串成一條線,車在這條線上開,乘客則自已決定上下車。這就是最簡單的公交線路。 它很差勁,但起碼解決客人們對車爭用。對應(yīng)到計算機里,就是把所有任務(wù)的代碼混在一起執(zhí)行。 這樣做既不優(yōu)異雅,也沒效率,于是司機想了個辦法,把這些客戶叫到一起商量,將所有客人出行的起點與終點羅列出來,統(tǒng)計這些線路的使用頻度,然后制定出公交線路:有些路線可以合并起來成為一條線路,而那些不能合并的路線,則另行開辟行車車次,這叫作“任務(wù)定義”。另外,對于人多路線,車次排多點,時間上也優(yōu)先安排,這叫作“任務(wù)優(yōu)先級”。 經(jīng)過這樣的安排后,雖然仍只有一輛車,但運載能力卻大多了。這套車次/路線的按排,就是一套“公交系統(tǒng)”。哈,知道什么叫操作系統(tǒng)了吧?它也就是這么樣的一種約定.

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 651單片機窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費
  13. 751單片機大棚環(huán)境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費