从ucOS谈,为什么需要操作系统?
生活随笔
收集整理的這篇文章主要介紹了
从ucOS谈,为什么需要操作系统?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.操作系統(tǒng)可以顯著降低開發(fā)難度。
操作系統(tǒng)幫我們協(xié)調多個程序之間的耦合關系,比如我們需要將串口的接收到的數(shù)據(jù)顯示在一塊LCD上。傳統(tǒng)做法是如圖1所示?:
圖1.無操作系統(tǒng)流程
該流程中當串口接收到數(shù)據(jù)再調用LCD顯示程序將數(shù)據(jù)顯示出來,而圖2展示了一種基于操作系統(tǒng)的方法。在該方法中串口接收數(shù)據(jù)和LCD顯示程序均以為自己獨占CPU,各自都只是執(zhí)行自己相關部分的工作,而什么時候顯示到LCD屏幕,什么時候又繼續(xù)接收串口數(shù)據(jù)這個協(xié)調工作將由操作系統(tǒng)完成。 圖2 操作系統(tǒng)流程? 從以上比較可以看出操作系統(tǒng)協(xié)調了不同功能程序以讓他們共同完成同一個工作。同時操作系統(tǒng)又隔離了各個功能程序讓它們的耦合程度降低。這樣就方便設計人員編寫各個功能模塊,同時整個系統(tǒng)的結構也更加清晰。特別是系統(tǒng)邏輯結構復雜,功能模塊較多的情況下操作系統(tǒng)的這一優(yōu)點體現(xiàn)的更加明顯。
2.操縱系統(tǒng)讓每一個任務都認為自己獨占CPU,方便代碼編寫。 同樣采用上邊的例子,無操作系統(tǒng)情況下我么需要在適當?shù)臅r候分別調用串口接收數(shù)據(jù)程序和LCD顯示程序,而有操作系統(tǒng)時我們只需要完成兩個功能模塊代碼然后加入到操作系統(tǒng)就可以了。兩個功能代碼都是以無限循環(huán)的方式執(zhí)行,結構顯得就很簡單。
3.操作系統(tǒng)增加代碼的移植性。 這一點我認為在ucOS系統(tǒng)上體現(xiàn)得并不明顯,對于其他系統(tǒng)例如android,linux等系統(tǒng)可以這樣講,因為他們基本上應該算是一個中等復雜系統(tǒng),而ucOS是一個簡單嵌入式系統(tǒng)。對于一個中等復雜系統(tǒng)它的底層硬件設備是有一定要求的,例如android設備,根據(jù)系統(tǒng)特性它就需要有GPS支持,顯示屏支持,電子羅盤支持,攝像頭支持這些支持都被列入android設備的系統(tǒng)內(nèi),它們以驅動的形式存在。而上層的應用程序通過調用底層的支持進而實現(xiàn)復雜的功能。而ucOS我認為它僅僅只是一個調度器,他的工作就是協(xié)調多個應用程序在單個MCU上"同時"運行而已,它幾乎是沒有驅動這個概念的。
圖1.無操作系統(tǒng)流程
該流程中當串口接收到數(shù)據(jù)再調用LCD顯示程序將數(shù)據(jù)顯示出來,而圖2展示了一種基于操作系統(tǒng)的方法。在該方法中串口接收數(shù)據(jù)和LCD顯示程序均以為自己獨占CPU,各自都只是執(zhí)行自己相關部分的工作,而什么時候顯示到LCD屏幕,什么時候又繼續(xù)接收串口數(shù)據(jù)這個協(xié)調工作將由操作系統(tǒng)完成。 圖2 操作系統(tǒng)流程? 從以上比較可以看出操作系統(tǒng)協(xié)調了不同功能程序以讓他們共同完成同一個工作。同時操作系統(tǒng)又隔離了各個功能程序讓它們的耦合程度降低。這樣就方便設計人員編寫各個功能模塊,同時整個系統(tǒng)的結構也更加清晰。特別是系統(tǒng)邏輯結構復雜,功能模塊較多的情況下操作系統(tǒng)的這一優(yōu)點體現(xiàn)的更加明顯。
2.操縱系統(tǒng)讓每一個任務都認為自己獨占CPU,方便代碼編寫。 同樣采用上邊的例子,無操作系統(tǒng)情況下我么需要在適當?shù)臅r候分別調用串口接收數(shù)據(jù)程序和LCD顯示程序,而有操作系統(tǒng)時我們只需要完成兩個功能模塊代碼然后加入到操作系統(tǒng)就可以了。兩個功能代碼都是以無限循環(huán)的方式執(zhí)行,結構顯得就很簡單。
3.操作系統(tǒng)增加代碼的移植性。 這一點我認為在ucOS系統(tǒng)上體現(xiàn)得并不明顯,對于其他系統(tǒng)例如android,linux等系統(tǒng)可以這樣講,因為他們基本上應該算是一個中等復雜系統(tǒng),而ucOS是一個簡單嵌入式系統(tǒng)。對于一個中等復雜系統(tǒng)它的底層硬件設備是有一定要求的,例如android設備,根據(jù)系統(tǒng)特性它就需要有GPS支持,顯示屏支持,電子羅盤支持,攝像頭支持這些支持都被列入android設備的系統(tǒng)內(nèi),它們以驅動的形式存在。而上層的應用程序通過調用底層的支持進而實現(xiàn)復雜的功能。而ucOS我認為它僅僅只是一個調度器,他的工作就是協(xié)調多個應用程序在單個MCU上"同時"運行而已,它幾乎是沒有驅動這個概念的。
總結
以上是生活随笔為你收集整理的从ucOS谈,为什么需要操作系统?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中断、DMA区别
- 下一篇: Java中用户向系统传递参数的三种基本方