ucOS学习笔记(1)——为什么需要操作系统
2014-04-11 13:35
363 查看
1.操作系统可以显著降低开发难度。操作系统帮我们协调多个程序之间的耦合关系,比如我们需要将串口的接收到的数据显示在一块LCD上。传统做法是如图1所示 :
图1.无操作系统流程该流程中当串口接收到数据再调用LCD显示程序将数据显示出来,而图2展示了一种基于操作系统的方法。在该方法中串口接收数据和LCD显示程序均以为自己独占CPU,各自都只是执行自己相关部分的工作,而什么时候显示到LCD屏幕,什么时候又继续接收串口数据这个协调工作将由操作系统完成。
图2 操作系统流程 从以上比较可以看出操作系统协调了不同功能程序以让他们共同完成同一个工作。同时操作系统又隔离了各个功能程序让它们的耦合程度降低。这样就方便设计人员编写各个功能模块,同时整个系统的结构也更加清晰。特别是系统逻辑结构复杂,功能模块较多的情况下操作系统的这一优点体现的更加明显。
2.操纵系统让每一个任务都认为自己独占CPU,方便代码编写。同样采用上边的例子,无操作系统情况下我么需要在适当的时候分别调用串口接收数据程序和LCD显示程序,而有操作系统时我们只需要完成两个功能模块代码然后加入到操作系统就可以了。两个功能代码都是以无限循环的方式执行,结构显得就很简单。
3.操作系统增加代码的移植性。这一点我认为在ucOS系统上体现得并不明显,对于其他系统例如android,linux等系统可以这样讲,因为他们基本上应该算是一个中等复杂系统,而ucOS是一个简单嵌入式系统。对于一个中等复杂系统它的底层硬件设备是有一定要求的,例如android设备,根据系统特性它就需要有GPS支持,显示屏支持,电子罗盘支持,摄像头支持这些支持都被列入android设备的系统内,它们以驱动的形式存在。而上层的应用程序通过调用底层的支持进而实现复杂的功能。而ucOS我认为它仅仅只是一个调度器,他的工作就是协调多个应用程序在单个MCU上"同时"运行而已,它几乎是没有驱动这个概念的。
图1.无操作系统流程该流程中当串口接收到数据再调用LCD显示程序将数据显示出来,而图2展示了一种基于操作系统的方法。在该方法中串口接收数据和LCD显示程序均以为自己独占CPU,各自都只是执行自己相关部分的工作,而什么时候显示到LCD屏幕,什么时候又继续接收串口数据这个协调工作将由操作系统完成。
图2 操作系统流程 从以上比较可以看出操作系统协调了不同功能程序以让他们共同完成同一个工作。同时操作系统又隔离了各个功能程序让它们的耦合程度降低。这样就方便设计人员编写各个功能模块,同时整个系统的结构也更加清晰。特别是系统逻辑结构复杂,功能模块较多的情况下操作系统的这一优点体现的更加明显。
2.操纵系统让每一个任务都认为自己独占CPU,方便代码编写。同样采用上边的例子,无操作系统情况下我么需要在适当的时候分别调用串口接收数据程序和LCD显示程序,而有操作系统时我们只需要完成两个功能模块代码然后加入到操作系统就可以了。两个功能代码都是以无限循环的方式执行,结构显得就很简单。
3.操作系统增加代码的移植性。这一点我认为在ucOS系统上体现得并不明显,对于其他系统例如android,linux等系统可以这样讲,因为他们基本上应该算是一个中等复杂系统,而ucOS是一个简单嵌入式系统。对于一个中等复杂系统它的底层硬件设备是有一定要求的,例如android设备,根据系统特性它就需要有GPS支持,显示屏支持,电子罗盘支持,摄像头支持这些支持都被列入android设备的系统内,它们以驱动的形式存在。而上层的应用程序通过调用底层的支持进而实现复杂的功能。而ucOS我认为它仅仅只是一个调度器,他的工作就是协调多个应用程序在单个MCU上"同时"运行而已,它几乎是没有驱动这个概念的。
相关文章推荐
- Kafka是什么,JMS是什么,常见的类JMS消息服务器,为什么需要消息队列(来自学习笔记)
- Python学习笔记--为什么需要使用__name__=='__main__'
- 自动垃圾回收学习笔记-我们为什么需要自动垃圾回收
- ucos实时操作系统学习笔记——任务间通信(队列)
- ucos实时操作系统学习笔记——操作系统在STM32的移植
- Python3学习笔记(二):编码为什么python2升级到python3时就遇到需要再加.encode()
- ucos实时操作系统学习笔记——内核结构和任务创建
- ucos iii学习笔记——为什么选择ucos iii
- ucos实时操作系统学习笔记——任务间通信(消息)
- ucos实时操作系统学习笔记——任务间通信(互斥锁)
- uCOS-II学习笔记之- uCOS-II实时操作系统的特点
- uCOS-II学习笔记:实时操作系统(一)
- 从ucOS谈,为什么需要操作系统?
- ucos iii学习笔记——为什么选择ucos iii
- webpack学习笔记-0-为什么需要webpack
- ucos实时操作系统学习笔记——任务间通信(互斥锁)
- 操作系统学习笔记(11)--makefile的$@
- RTOS实时操作系统学习笔记之qnx嵌入式系统qnx系统
- 操作系统精髓与设计原理学习笔记三:进程描述和控制
- 操作系统学习笔记(19)--贴一个内存设置的代码