网站大量收购闲置独家精品文档,联系QQ:2885784924

操作系统原理课件作者周苏教学课件第15章节嵌入式操作系统.ppt

操作系统原理课件作者周苏教学课件第15章节嵌入式操作系统.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
15.3.2 TinyOS的目标 适应硬件升级:硬件是在不断地升级的;应用软件和大部分系统服务必须兼容硬件换代。也就是说,如果功能相同的话,应该可以在升级硬件时没有或者只有很少的软件改变。 支持广泛的应用软件:应用软件在其生命周期、通信、传感等方面展示了很广的需求范围。因此需要模块化、通用的嵌入式操作系统,以便在开发和支持软件时有标准化的方法来节约成本。 支持不同的平台:需要通用的嵌入式操作系统。 可靠性:传感器网络一旦部署,就必须在无人监护的状态下运行数月或数年。理想情况下,单一的系统和整个传感器网络都应该设计冗余备用系统。实际上,两种类型的冗余都需要额外的资源。能够提高可靠性的软件的特点是使用高模块化、标准化的软件组件。 15.3.2 TinyOS的目标 需要详细说明并发的需求。在典型应用中,可能会有几十个、几百个甚至几千个传感器连成一个网络。因为延迟时间的原因,很少使用缓冲。例如,如果每隔5分钟采样一次,并且希望在发送之前缓存4个样本,平均延迟时间就是10分钟。这样的话,信息通常被捕获、处理并发送到网络中去,这一切都完成在一个连续的流中。进一步来说,如果传感器采样产生很大的数据,那么有限的存储器可用空间会限制可被缓存的采样的数目。 15.3.2 TinyOS的目标 虽然如此,在一些应用中,每个流包括很多低级别的事件,这些事件与高级别的处理交叉在一起。一些高级别的处理会扩展为多个实时事件。更进一步讲,网络中的传感器因为传输的低功耗,通常只能在一个短的物理范围内完成操作。从外部传感器来的数据必须经过中间节点传递到一个或多个基站。 15.3.3 TinyOS的组件 一个使用TinyOS构建的嵌入式系统由一系列小模块组成,这些模块称为组件,每个组件完成一个简单的任务或一组任务,每个组件与其他组件和硬件的接口受到一定限制且定义明确。仅有的一个例外是调度程序软件模块。实际上,因为没有内核,也就没有实际的操作系统。但我们可以采用下面的观点。该类嵌入式系统的主要应用领域是无线传感器网络(WSN)。为了满足该应用的软件需求,就需要一个严格的、简化的、包含各种组件的软件架构。 15.3.3 TinyOS的组件 TinyOS的开发团队已经完成了许多开放源码的组件,这些组件为WSN提供了所需的基本函数。这些标准组件的例子包括单跳网络、自组织路由、电源管理、定时器和非易失性存储控制。对于特定的配置和应用,用户构建额外的特殊目的的组件,连接并装入用户应用软件的全部组件中。TinyOS由一系列标准化组件组成。对于任意特定的实现,并非所有的组件都能用得上,何况还有一些用户编写的特定应用的组件。上述实现中的操作系统仅仅是TinyOS套件中标准组件的简单集合。 15.3.3 TinyOS的组件 在TinyOS中的所有组件的配置有着相同的结构组件可以是硬件或软件。软件组件由nesC实现,nesC是C语言的一个扩展,它有两个明显的特征:通过接口与组件进行交互的编程模型,以及带有从运行到完成任务和中断句柄的基于事件的并发模型。 15.3.3 TinyOS的组件 体系结构由分层排列的组件组成。每个组件仅可以连接其他两个组件,一个比它层次低,一个比它层次高。组件向低层组件发出命令并接收来自低层组件的事件信号。类似地,组件接收来自高层组件的命令并对其发送事件信号。最低层是硬件组件,最高层是应用软件组件,该组件可能不是TinyOS标准套装中的一部分,但必须符合TinyOS组件的结构。 15.3.3 TinyOS的组件 软件组件执行一个或多个任务。每个组件内的任务类似于普通操作系统中的线程,但有一些限制。在一个组件内,任务是原子性的:一旦任务开始执行,就要运行到完成。在相同的组件内,不能被别的任务抢占,也没有时间分片。然而,任务可以被事件抢占。任务不能阻塞或自旋等待。这些限制大大简化了组件内的调度和管理。只有一个简单的栈,分配给了当前运行的任务。任务可以完成计算,调用低层次组件(命令),向高层次的事件发送信号,还可以调度其他任务。 15.3.3 TinyOS的组件 命令是不可阻塞的请求。也就是说,任务发送了一条命令,不能在低层次的组件回应上阻塞或者自旋等待。命令一般是让低层次的组件完成某些服务的请求,比如初始化一个传感器的读操作。对于组件的影响来说,接收命令的组件效果是特定于给定命令及运行该命令的任务的。一般情况下,当接收到一条命令时,其后的执行就是调度任务,因为命令不可以抢占当前运行的任务。命令立刻返回,调用组件;稍后,事件将对调用组件发送完成信号。也就是说,在被调用的组件中,命令不会导致抢占,在调用的组件中,命令不会导致阻塞。 15.3.3 TinyOS的组件 TinyOS中的事件可以直接或间接地与硬件事件相关联。最低层的软件组件接口直接对应硬件中

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档