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

操作系统帮我们协调多个程序之间的耦合关系,比如我们需要将串口的接收到的数据显示在一块LCD上。传统做法是如图1所示 :
图1.无操作系统流程
该流程中当串口接收到数据再调用LCD显示程序将数据显示出来,而图2展示了一种基于操作系统的方法。在该方法中串口接收数据和LCD显示程序均以为自己独占CPU,各自都只是执行自己相关部分的工作,而什么时候显示到LCD屏幕,什么时候又继续接收串口数据这个协调工作将由操作系统完成。
图2 操作系统流程 
从以上比较可以看出操作系统协调了不同功能程序以让他们共同完成同一个工作。同时操作系统又隔离了各个功能程序让它们的耦合程度降低。这样就方便设计人员编写各个功能模块,同时整个系统的结构也更加清晰。特别是系统逻辑结构复杂,功能模块较多的情况下操作系统的这一优点体现的更加明显。
2.操纵系统让每一个任务都认为自己独占CPU,方便代码编写。
同样采用上边的例子,无操作系统情况下我么需要在适当的时候分别调用串口接收数据程序和LCD显示程序,而有操作系统时我们只需要完成两个功能模块代码然后加入到操作系统就可以了。两个功能代码都是以无限循环的方式执行,结构显得就很简单。
3.操作系统增加代码的移植性。
这一点我认为在ucOS系统上体现得并不明显,对于其他系统例如android,linux等系统可以这样讲,因为他们基本上应该算是一个中等复杂系统,而ucOS是一个简单嵌入式系统。对于一个中等复杂系统它的底层硬件设备是有一定要求的,例如android设备,根据系统特性它就需要有GPS支持,显示屏支持,电子罗盘支持,摄像头支持这些支持都被列入android设备的系统内,它们以驱动的形式存在。而上层的应用程序通过调用底层的支持进而实现复杂的功能。而ucOS我认为它仅仅只是一个调度器,他的工作就是协调多个应用程序在单个MCU上"同时"运行而已,它几乎是没有驱动这个概念的。

从ucOS谈,为什么需要操作系统?相关推荐

  1. 浅谈架构、操作系统、芯片的理解

    浅谈架构.操作系统.芯片的理解 序言 架构篇 操作系统篇 芯片篇 序言 从事物联网行业,总是会有一些概念上的疑惑,对此网上查阅了资料,结合自己理解,做了一些汇总,方便自己以后查阅. 架构篇 我们接触架 ...

  2. 基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现

    基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现 在基于STM32的示波器的实现的基础上,在STM32上移植UCOS II嵌入式实时操作系统. 在UCOS II操作系统中将各个功能分发 ...

  3. 浅谈智能手机的操作系统 第一期

    玩手机时间不算太长,从来到大学到如今,短短的三年,不过似乎是着了魔一般,对各种移动设备操作系统很感兴趣,写下此篇也算是回忆吧. 自己接手的第一部智能手机是诺基亚的5530xm,相信在三四年前,当诺基亚 ...

  4. 百度之后阿里也谈小程序“操作系统”,但开放不能只是说说而已

    文|曾响铃 来源|科技向令说(xiangling0815) 小程序的"开放"竞争趋势越来越显现. 4月2日,阿里巴巴CTO张建锋在接受媒体专访时表示阿里将持续加码小程序,并声称其小 ...

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

    今天早一些的时候,Google发布了新一代Android操作系统Android L.让我非常意外的是命名规则的变化,之前外界纷纷猜测会叫Android5.0,同时会给一个甜品的名字命名.因为Andro ...

  6. 计算机与操作系统发展阶段 深谈:Linux操作系统

    计算机的发展阶段: 四个发展阶段: 第一个发展阶段:1946-1956年电子管计算机的时代.1946年第一台电子计算机问世美国宾西法尼亚大 学,它由冯·诺依曼设计的.占地170平方 ,150KW.运算 ...

  7. ucos iii学习笔记——为什么选择ucos iii

    首先我们得先讨论前后台系统和RTOS(Real Time OS)的区别.前后台系统,也即是我们所说的裸机程序,它的结构通常包括一个死循环和若干个中断服务程序,直接上图,我们有一个直观认识: 假如Tas ...

  8. px4原生源码学习二--实时操作系统篇

    /*************************************************************************************************** ...

  9. 挑战安卓会死?华为鸿蒙正为国产操作系统杀出一条路 | 涛滔不绝

    近日,鸿蒙 HarmonyOS 手机应用开发者 Beta 版发布,不仅吸引了业界人士的关注,国人对这个操作系统也寄予厚望.原因无他,只因移动端操作系统被 Android 和 iOS 垄断太久了,鸿蒙 ...

最新文章

  1. 高度不定垂直居中_经典:CSS垂直居中的七种方法
  2. mysql 插入 删除_mysql插入、修改、删除
  3. 第三十五讲:tapestry Ajax zone组件无黄色闪烁的背景
  4. 脱机下载至校验成功的脚本
  5. JSTL标签库中fmt标签,日期,数字的格式化
  6. Java_BigInteger
  7. java用while循环语句输出1-100内的奇数和
  8. ivar layout 相关知识点
  9. Kubernetes 小白学习笔记(16)--集群网络-pod网络、service网络
  10. 【RDKit】Python化学包RDkit的教程
  11. 一个可以把Google Docs变成GDrive的工具
  12. 苹果6性能测试软件,5款iPhone升级iOS13.6性能测试:运行速度有所提升?
  13. Excel快速合并多行数据
  14. 如何让谷歌浏览器支持迅雷下载
  15. Inside Lucene/超人气搜索引擎学习(0.5)-前传
  16. canvas rotate() 中心旋转的实际运用
  17. C termios.h 简单用法
  18. 英语影视台词---绿皮书(2)(利普 我以为你要把那家伙打死了)
  19. 《网络空间内生安全》读书笔记:第七章 动态异构冗余架构
  20. 数字后端入行门槛和条件?附入行进阶必读书籍丨建议收藏

热门文章

  1. 进程互斥的要求与实现方法
  2. 编译过程中,termcap.h 文件找不到路径 licli.a终于生成
  3. Erlang命令行提示符汇总
  4. [原创]RCP项目:数字图像处理软件
  5. 推荐 14 个 GitHub 上优质的原创前端博客文章仓库
  6. 涨姿势了!22 个拓展程序员技术与视野的国外网站,快添加进收藏夹!
  7. SpringBatch适配器详解
  8. hbase hbck命令示例
  9. redis-cli报错:(error) MOVED 12706 (未以集群模式连接)
  10. Go gin web框架介绍