電子發(fā)燒友App

硬聲App

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

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

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

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

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

資料介紹

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

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

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

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

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

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(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調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  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十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費