从ucOS谈,为什么需要操作系统?

1.操作系统可以显著降低开发难度。

操作系统帮我们协调多个程序之间的耦合关系,比如我们需要将串口的接收到的数据显示在一块LCD上。传统做法是如图1所示 :

图1.无操作系统流程

该流程中当串口接收到数据再调用LCD显示程序将数据显示出来,而图2展示了一种基于操作系统的方法。在该方法中串口接收数据和LCD显示程序均以为自己独占CPU,各自都只是执行自己相关部分的工作,而什么时候显示到LCD屏幕,什么时候又继续接收串口数据这个协调工作将由操作系统完成。

图2 操作系统流程

从以上比较可以看出操作系统协调了不同功能程序以让他们共同完成同一个工作。同时操作系统又隔离了各个功能程序让它们的耦合程度降低。这样就方便设计人员编写各个功能模块,同时整个系统的结构也更加清晰。特别是系统逻辑结构复杂,功能模块较多的情况下操作系统的这一优点体现的更加明显。

2.操纵系统让每一个任务都认为自己独占CPU,方便代码编写。

同样采用上边的例子,无操作系统情况下我么需要在适当的时候分别调用串口接收数据程序和LCD显示程序,而有操作系统时我们只需要完成两个功能模块代码然后加入到操作系统就可以了。两个功能代码都是以无限循环的方式执行,结构显得就很简单。

3.操作系统增加代码的移植性。

这一点我认为在ucOS系统上体现得并不明显,对于其他系统例如android,linux等系统可以这样讲,因为他们基本上应该算是一个中等复杂系统,而ucOS是一个简单嵌入式系统。对于一个中等复杂系统它的底层硬件设备是有一定要求的,例如android设备,根据系统特性它就需要有GPS支持,显示屏支持,电子罗盘支持,摄像头支持这些支持都被列入android设备的系统内,它们以驱动的形式存在。而上层的应用程序通过调用底层的支持进而实现复杂的功能。而ucOS我认为它仅仅只是一个调度器,他的工作就是协调多个应用程序在单个MCU上"同时"运行而已,它几乎是没有驱动这个概念的。

时间: 2024-12-16 20:25:28

从ucOS谈,为什么需要操作系统?的相关文章

浅谈新一代Android操作系统Android L

今天早一些的时候,Google发布了新一代Android操作系统Android L.让我非常意外的是命名规则的变化,之前外界纷纷猜测会叫Android5.0,同时会给一个甜品的名字命名.因为Android操作系统发布了这么多的正式版本,一直是用甜品来命名的,现在直接用了一个L,和以往风格大大不同,让人不太理解.不过好在L非常好记,也非常容易上口. 看了一下官方宣称的Android L的新特性,主要有如下几点: A New UI Design Create a consistent experie

SQL Server代理(8/12):使用SQL Server代理外部程序

SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的上篇文章里,你学习如何使用SQL Server代理作业活动监视器监视作业活动和查看作业历史.对于你的SQL Server代理作业进行实时监视和管理,作业活动管理器是个强大的工具.在这个系列的第8篇文章里,你会回顾SQL Server代理的另一个功能——运行操作系统命令行,在SQL Server外围环境运行程序.一些程序是命令行(

WaaS与LaaS并举,增强国人底气与自信

在微软内部,称Win 10战略为"WaaS"(Windows as a Service).在我们国内,谈起"国产操作系统"就让人泄气,没有自信力.怎么办? 俄罗斯依靠国际化的"Linux Team"(Linux开发团队),在国内组建大型"LaaS"企业集团,向国家与社会提供有偿技术支撑与服务.这种做法值得我们借鉴.什么是"LaaS"? 所谓"LaaS"其实就是"Linux as

chinaOS

从舆论上和政策规定上来推广操作系统,这对国产操作系统而言是好事,还是坏事? 从某种程度上来说,这是好事 运用行政的力量,率先在国家机关中普及国产操作系统确实是件好事,首先是确保了国家信息安全,其次则能帮助国产操作系统进步.是的,系统和软件一样,都是用出来的,只有去用且用的人多,才能不断改进和完善,最终才能形成媲美Windows的生态系统. 初一想是这样,但一细思才发觉这只是表面现象,从舆论和政策上推广系统,看似能促成国产操作系统的普及,实则是害它. 国家推动系统国产出发点是好的,但不是时候 有

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联 总结: 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统.主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能. 微处理器系列: ARM Cortex A系列的处理器

linux内核详解

一.linux的内核管理:对内核的基本认识 我们所谈到的操作系统主要指内核 以上功能据没有涉及实现文本编辑.实现字处理,也没有服务等等. 故,操作系统是一种通用软件,是平台类软件,自己并不做任何工作,只是给其他程序提供了运行环境.除操作系统之外,还有应用程序,为实现某一目的,专门设计的程序. 那么,既然内核有这么多功能,模块化设计?各功能独立成子系统? 显然将功能整合在一起,内核将变得非常复杂. 二.内核的设计流派 说说内核设计的两大流派: 从根本上讲,将一个事情拆成各个小问题,然后每个小问题只

??px4原生源码学习(1/3)-----为什么没main函数!!!!!

本文转自px4原生源码学习-(2)--实时操作系统篇 * 为什么我要谈到实时操作系统? 如果你只是开发一个简简单单的单片机程序,不用考虑以后对于程序的升级与修改,那么你简简单单写个main函数的while循环其实没什么不好.但你要遇到那种开发周期长,系统复杂的产品或者项目,那最好是基于实时操作系统开发.因为这对于代码重用和添加新功能或者新设备来说会方便挺很多,代码的编写程度也会简单很多.像早期的apm飞控也是基于板子的main函数,导致其代码复杂,冗余,后面直接被弃,因为可能每添加一个功能或者设

Linux游戏性能再获提升

导读 谈到Linux操作系统,对其有了解的朋友就会知道Linux在服务器.超级计算机等领域表现出色,但在个人电脑领域就远远不如Windows. 尽管近年来Linux的PC系统图形界面越做越好,甚至国内也出现了不少简单易用的国产Linux,但游戏依然是其短板.不过,如今在多方的努力下,Linux的游戏也可能很快就要崛起了. Linux 就在前些天,全球知名的游戏厂商V社(Valve)就提出要对Linux内核进行修改,以提升其游戏性能,而且还率先在自己的产品作出了相应的改进.多年来,V社一直为了丰富

《深入浅出WPF》学习总结之Binding

一.前言 友好的图形用户界面(Graphics User Interface ,GUI)的流行也就是近十来年的事情,之前应用程序与用户的交互是通过控制台界面(Console User Interface ,CUI)完成的.图形用户界面的操作系统开始在中国流行应该是从Windows 95正式发布开始的,旋即冠以Visual的开发工具(以及Borland公司的一些同类产品)也跟着崭露头角.记得那时候硬件能跑起来Windows 95的就已经相当不错了——图形化的界面还是很消耗硬件资源的. GUI作为新