- 1、本文档共187页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.4.2 系统架构 图6-5 SOS系统体系结构 6.4.2 系统架构 下面讨论SOS架构中的关键设计。 1.模块 在SOS中,模块是可以实现某些功能或者任务的二进制可执行文件,就相当于TinyOS中的组件。 模块可能会同时负责很多部分的功能,包括底层驱动、路由协议、应用程序等。 在SOS中一个实际的应用程序一般由一个模块或者多个的相互交互的模块组成,模块之间,位置独立,主要是通过消息机制或者函数接口来相互联系。 6.4.2 系统架构 2.模块结构 SOS实现了一个定义完整并且优化的带有入口和出口的模块,这一类模块组成一个模块结构,SOS通过这样的一个结构来维护模块性。 模块之间用两种入口机制来相互流通。第一种是通过内核的调度表,另一种是通过被模块注册的对方使用的函数。 6.4.2 系统架构 3.模块交互 模块之间的交互是通过消息机制,调用被模块注册的函数,调用ker_*system(API)访问内核实现的。 消息本身是灵活变化的,并且传递比较缓慢,所以SOS提供一些直接的调用方法,可以被模块注册使用,这些调用方法可以通过调度表为模块提供反应时间短的联系。 6.4.2 系统架构 4.模块的插入和删除 模块的插入是通过分发协议(Distribution Protocol)侦听新的模块在网络中发送的广播来初始化的。 模块的删除是通过模块发送一个final消息触发内核开始进行的。这个消息通知内核释放模块持有的资源。 6.4.2 系统架构 5.动态内存 无线传感网络嵌入式系统一般不支持动态内存。但静态内存会导致存在大量的垃圾内存碎片,可能对公共任务产生复杂的语义。 SOS中的动态内存就解决了这些问题,而且消除了模块加载过程中本来需要对静态内存的依赖。 6.4.1 SOS简介 6.4.2 系统架构 6.4.3 SOS的通信机制 6.4.4 SOS应用程序开发与发布 6.4 SOS操作系统 6.4.3 SOS的通信机制 在SOS操作系统中,一个应用程序包括一个或多个交互的模块。应用程序使用独立的消息通知和功能接口,它包括独立的执行模块,并且通过开发或配置来维护其模块性。 在模块中,消息处理机制通过一种特定的模块处理功能来实现,消息处理句柄通过识别模块的状态来对模块进行处理。 6.4.3 SOS的通信机制 一个独立的代码实体,它的原型如下: #includemodule.h typedef struct{ sos_pid_t pid; ......//模块状态的其他信息 }app_state_t;//定义模块的状态 static int8_t module (void* state, Message * e); //模块声明 6.4.3 SOS的通信机制 下面的模块头定义是模块拥有的唯一全局变量,该结构可以修改: static mod_header_t mod_header SOS_MODULE_HEADER={ mod_id=DFLT_APP_ID0,//模块的ID号 state_size=sizeof(app_state_t), //模块状态占用多少个字节 num_timers=0,//该模块使用定时器的个数 num_sub_func=0,//该模块订阅函数的个数 num_prov_func=0,//该模块提供函数的个数 …… 6.4.3 SOS的通信机制 1.模块通信 SOS提供了两种模块间的通信机制方式,一种是通过模块的功能指针来进行通信,该种方式提供的是同步通信方式,如图6-6所示。 图6-6 SOS模块间通信方式一 6.4.3 SOS的通信机制 SOS的另一种模块间通信方式如图6-7所示,该方式提供异步通信机制。消息机制虽然灵活,但是执行比较慢,消息分发的优先级也较低。 图6-7 SOS模块间通信方式二 6.4.3 SOS的通信机制 在SOS操作中,模块与内核之间也可以进行通信,内核提供系统服务以及上层应用与硬件的接口,如图6-8所示。 图6-8 SOS内核-模块通信方式 6.4.3 SOS的通信机制 2.模块的装载和卸载 在SOS操作中,模块的装载通过SOS服务器来实现,在网络中,节点上的分布式协议监听是否有新的模块发布。 当内核分派了一个Final消息时,模块就开始进行移除操作,移除的过程中,模块的动态内存空间用到
您可能关注的文档
- 云计算基础教程 程克非 罗江华 兰文富 Part Two新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第2章-云计算与大数据的相关技术(楷体) 新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第2章-云计算与大数据的相关技术(微软雅黑) 新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第3章-虚拟化技术 新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第6章-Hadoop—分布式大数据系统新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第8章-Storm—基于拓扑的流数据实时计算系统新.ppt
- 云计算与大数据技术 王鹏 黄焱 安俊秀 张逸琴 第9章-服务器与数据中心 新.ppt
- 中级财务管理 课件 戴书松 1_ 项目评估-(第八讲)新.ppt
- 中级财务管理 课件 戴书松 1_ 项目评估-(第九讲)新.ppt
- 中级财务管理 课件 戴书松 1_ 项目评估-(第六讲)新.ppt
- Unit4WeloveanimalsUnit4PartA(课件)人教PEP版英语三年级上册2(精)5.pptx
- 江苏省马坝高级中学高二上学期期中地理试题(原卷版).docx
- 河北省石家庄市第四十九中学九年级上学期开学练习英语试题.docx
- 八年级英语下册Unit10I'vehadthisbikeforthreeyearsSectionB2课件(完整版)3.pptx
- Unit6Ananimalstory(词汇)(课件)新魔法英语(NewMagic)一年级上册.pptx
- Unit5Topic2SectionB课件初中英语七年级下册.pptx
- Unit1单元语法讲练九年级英语全一册课件(人教版).pptx
- 单细胞生物体七年级上学期精品课件.pptx
- Unit2句型所含知识点练习人教版八年级英语下册.docx
- 八年级英语下册Unit2I’llhelptocleanupthecityparks课件3(完整版)2.pptx
文档评论(0)