




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)tinyspos:senspireos上的tinyos运行环境.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文摘要 摘要 t i n y o s 是一个经典的无线传感网络( w s n ) 操作系统,在w s n 发展历程中 发挥了非常重要的作用。当前,许多有关无线传感网络的研究成果都是在t i n y o s 上研究并实现的。s e n s p i r e o s 是浙江大学无线传感网络项目小组丌发的一个新的 w s n 操作系统。在完成s e n s p i r e o sv 1 0 的研究和开发之后,我们面临如何在 s e n s p i r e o s 上继承无线传感网络的已有研究成果的问题,特别是如何继承在 t i n y o s 上取得的有关无线传感网络的研究成果的问题。 本文的工作是设计s e n s p i r e o s 上的t i n y o s 运行环境- - t i n y s p o s 。t i n y s p o s 使用代理技术、中断钩子技术和虚拟时钟技术来构建t i n y o s 虚内核,并f l jt i n y o s 虚内核替代t i n y o s 内核。t i n y o s 虚内核使t i n y o s 应用程序与s e n s p i r e o s 的内 核相连接,使得t i n y o s 应用程序可以无缝移植到s e n s p i e o s 上,而从实现在 s e n s p i r e o s 上继承t i n y o s 上取得的w s n 研究成果的目的。 t i n y s p o s 具有几个特点。首先,t i n y s p o s 采用s e n p s i r e o s 的内核,而为应 用程序提供完备的t i n y o s 的组件和接口。其次,t i n y s p o s 可以无缝移植所有的 t i n y o s 应用程序。第三,t i n y s p o s 可以作为s e n s p i r e o s 上的n e s c 丌发环境使 用。第四,t i n y s p o s 可以实现在s e n s p i r e o s 上扩展n e s c 语言功能的目的。 关键词:无线传感网络,t i n y o s ,s e n s p i r e o s ,t i n y s p o s ,运行环境 a b s t r a c t t i n y o si sac l a s s i co p e r a t i n gs y s t e mf o rw i r e l e s ss e n s o rn e t w o r k s ( w s n s ) i t p l a y sav e r yi m p o r t a n tr o l ei nt h ed e v e l o p m e n tp r o c e s so fw s n a tp r e s e n t al o t0 f r e s e a r c hr e s u l t so nw s na r ea c h i e v e do nt i n y o s s e n s p i r e o si san e wo p e r a t i n g s y s t e mf o rw s n s i tw a sd e v e l o p e db yt h et e a mo ft h ew i r e l e s ss e n s o rn e t w o r k r e s e a r c hp r o j e c ti nz h e j i a n gu n i v e r s i t y w ef i n i s h e dt h ed e v e l o p m e n to fs e n s p i r e o s v 1 0 w eh o p e dt ot r a n s p l a n ta l lr e s e a r c hr e s u l t so ft i n y o st os e n s p i r e o s i nt h i s p a p e r , w ep r o p o s ea r u n t i m ee n v i r o n m e n t ,n a m e dt i n y s p o s ,t or e a l i z ei t t i n y s p o si sar u n t i m ee n v i r o n m e n tf o rt i n y o sa p p l i c a t i o n so ns e n s p i r e o s i t u s e sas c h e d u l e ra g e n t ,s o m ei n t e r r u p th o o k s ,a n dav i r t u a lt i m e rt ob u i l dat i n y o s v i r t u a lk e r n e l t i n y s p o su s et h i sv i r t u a lk e r n e lt or e p l a c et i n y o sk e r n e l a n dt i n y o s v i r t u a lk e r n e ll i n k st i n y o sa p p l i c a t i o n st os e n s p i r e o sk e r n e l i nt h i sw a y , t i n y o s a p p l i c a t i o n sa r et r a n s p l a n t e dt ot i e n s p l r e u 3 一 、几 t i n y s p o sh a ss e v e r a la d v a n t a g e s 1 ti sb u i l to ns e n s p i r e o sk e r n e l ,a n dp r o v i d e s t i n v o si n t e r f a c e st oa p p l i c a t i o n s a i la p p l i c a t i o n so ft i n y o sc a nb et r a n s p l a n t e dt o s e n s p i e r o s b e s i d e s 。i tp r o v i d e s a w a yt od e v e l o pn e wn e s ca p p l i c a t i o n s o n s e n s p i r e o s a n di te x p a n d st h ea b i l i t yo ft h en e s cl a n g u a g e d e v e l o p e r sc a nu s e m u l t i t h r e a dm e c h a n i s ma n dp o s tt a s k sw i t hp r i o r i t i e si nt h en e s cl a n g u a g e k e y w o r d s :w i r e l e s s s e n s o rn e t w o r k ,t i n y o s ,s e n s p i r e o s ,t i n y s p o s ,r u n t i m e e n v i r o n m e n t 浙江大学硕士学位论文图目录 图目录 2 1n e s c 代码编译流程。9 2 2s e n s p i r eo s 调度系统结构1 1 2 3s e n s p i r e o s 中断系统结构1 2 2 4t i n y m o s 系统结构l 列1 5 3 1t i n y s p o s 系统结构2 2 3 2 系统运行状态转换2 4 4 1 调度系统结构2 6 4 2t i n y s p o s 的任务运转流程2 8 4 3s p i 接口数据发送流程3 4 4 4t i n y s p o s 时钟系统结构3 6 4 5v t i m e r 0 运行流程3 8 5 1 中断钩子使用范例4 1 7 1 优先级任务调度使用方法4 8 7 2t i n y o s 下程序执行结果4 9 7 3t i n y s p o s 下程序执行结果4 9 7 4 多线程机制使用方法。5 0 7 5 多线程应用程序运行结果5 0 图图图图图图图图图图图图图图图图图 浙江大学硕士学位论文 表目录 表目录 表4 1v t i m e r 0 与t i m e r 0 的寄存器。3 7 表6 1 编译器整合前后的目录结构4 4 表6 2 编译器设置和使用的环境变量4 5 表7 1 应用程序的移植结果4 8 表7 2 时钟偏差率5 1 i v 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得逝姿盘堂或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文 中作了明确的说明并表示谢意。 学位论文作者签名墨尹 签字日期:沙扩年6 月厂口日 学位论文版权使用授权书 本学位论文作者完全了解逝姿盘鲎有权保留并向国家有关部门或机 构送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权盘垄盘堂 可以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 善孚 导师签名: 签字日期:矿r 吕年易月,莎日 签字日期:沸 多月 cd 日 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得迸江盘鲎或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名: 签字同期: 年月日 学位论文版权使用授权书 本学位论文作者完全了解逝姿盘堂有权保留并向国家有关部门或机构送交本 论文的复印件和磁盘,允许论文被查阅和借阅。本人授权逝姿盘堂可以将学位论文的 全部或部分内容编入有关数据库进行检索和传播,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 导师签名: 签字日期:年 月日签字日期:年月 日 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 课题背景 t i n y o s f l 】,( 2 j 是一个经典的无线传感网络( w s n ) 操作系统,在w s n 发展历 程中发挥了非常重要的作用。当前,许多有关无线传感网络的研究成果都是在 t i n y o s 上取得并实现的。这些成果包括网络协议、能量管理等多个方面。 s e n s p i r e o s l 3 l 是浙江大学的无线传感网络项目小组丌发的一个新的w s n 操作 系统。在完成s e n s p i r e o sv 1 0 的研究和丌发之后,我们面临如何在s e n s p i r e o s 上继承无线传感网络的已有研究成果的问题,特别是如何继承在t i n y o s 上取得 的有关无线传感网络的研究成果的问题。本文介绍的t i n y s p o s 就是为解决此问 题,并构建s e n s p i r e o s 的n c s c l 4 l 语言开发环境而开发的。 1 1 1 无线传感网络 计算机和网络技术发展至今,已经经历了大型机时代和p c 机时代,进入后 p c 时代,并且已经丌始向下一代网络和计算机技术一普适计算 ( u b i q u i t o u s p e r v a s i v ec o m p u t i n g ) 【5 6 】的时代前进。普适计算的思想其实在1 9 9 1 年就已经提出。1 9 9 9 年,i b m 正式提出了普适计算( p e r v a s i v ec o m p u t i n g ) 的概 念。普适计算的思想是指,无所不在的、随时随地可以进行计算的一种方式;无 论何时何地,只要需要,就可以通过某种设备访问到所需的信息【5 j 。i b m 认为, 实现普适计算的基本条件是计算设备越来越小,方便人们随时随地佩带和使用。 无线传感网络的节点具有感知、无线通讯、计算能力,并且具有有限资源和价格 低廉的特点,适合于大范围部署。无线传感网络非常符合普适计算的特点和要求。 在普适计算无所不在的、随时随地可以进行计算的环境中,无线传感网络( w s n ) 必将得到大范围的应用。 无线传感网络( w s n ) 是由计算机技术、网络技术、无线通讯技术等多学科 交叉发展而成一项新兴技术前沿。无线传感网络是由许许多多的有感知、计算、 和无线通信能力的节点组成的新型无线网络系统【7 】,其每个节点就是一个小型的 计算机环境。网络节点具有感知( 数据采集) 能力、数据计算和处理能力、无线 通信能力,其特点就是每个节点都非常的小,价格低廉,但是资源有限。 无线传感网络的应用前景非常广泛,可以应用于国防、环境科学、交通管理、 灾害预测、医疗卫生、城市信息化建设等多个领域。当前,无线传感网络技术的 研究已经是科技界的一个研究热点。 浙江大学硕士学位论文第1 章绪论 w s n 是由许许多多的节点集合而成,其计算能力是通过这些分散节点实现 的。w s n 的节点具有小型的处理器和有限容量的存储设备,是一个小型的嵌入 式系统。这些节点相互协同计算,相互通讯,组成一个功能强大的网络计算系统。 w s n 的节点一般由数据采集模块、数据计算和处理模块、无线通信模块、供电 模块等组成。节点的功能依赖于其硬件设施以及运行于其上的软件系统来完成, 而其软件系统一般又分为节点操作系统、无线网络通信协议、应用程序等部分。 w s n 必须适合于大范围部署,并且其功能和性能不能受环境因素太多的限 制。w s n 一般具有以下几个特点: 1 分布密集广泛:适合于广泛密集地部署是w s n 的设计目标之一。部署 w s n 时,用户可能是用飞机等工具在某一地区大范围密集地喷洒部署, 以达到采集环境数据的目的。 2 有限物理资源:无线传感网络要求其节点必须尺寸小,造价低,功耗低。 在这些限制下,每个w s n 的节点可能只有几k 到几十k 的内存;处理 器的处理能力也非常有限;每个w s n 的节点都必须是自备电池,而且 由于受到体积的限制,节点的电池容量比较小。虽然由于技术的发展, 这些限制会不断降低,但短时问内恐怕难以改变w s n 有限物理资源的 。 特点。 3 强抗干绕能力:w s n 的部署环境千变万化,有的节点可能会被部署在 极其恶劣的环境下,例如受高度污染的环境,或者存在放射性物质的环 境等。w s n 的节点必须在这些环境因素的干扰下依然可以正常工作。 4 高可靠性:w s n 的部署场所可能是超出人的承受能力或对人类有害的 环境中,例如深海海底或者自i 面提到过的被放射性物质高度污染的场 所。部署在这些环境中的w s n 不可能经常更换节点。这要求w s n 的 节点必须有长时间、持续、稳定地工作的能力。 5 强大的网络动态协调能力:不仅w s n 部署环境可能千变万化,而且其 环境可能并不是一成不变的。例如节点可能是部署在一些运行的物体 上,或者由于各种原因有些节点可能会损坏。随着部署环境的变化, w s n 的网络结构也会发生变化。w s n 必须有很高的网络动态协调能力, 以不断适应网络状况的变化。 由于w s n 本身的特点,w s n 的操作系统与普通的计算机操作系统和嵌入 式操作系统有很大的不同。由于w s n 节点的资源非常有限,所以一般的桌面操 作系统和绝大多数的嵌入式操作系统都不能直接作为其节点的操作系统来使用。 2 浙江大学硕士学位论文第1 章绪论 随着无线传感网络研究的兴起,无线传感网络操作系统的研究也成为当前计算机 领域前沿研究的一个热点。 1 1 2 无线传感网络操作系统的特点 由于w s n 必须适合于大范围部署,所以无线传感网络的节点需要非常的小, 而且必须价格低廉。正式由于这个原因,w s n 的节点所拥有的资源非常有限。 例如,每个节点可能只有几k 到几十k 的内存,处理器( m c u ) 的计算能力也 比较小,电池的容量很小等等。由于以上种种原因,w s n 的节点操作系统一般 都具有以下几个特点: 1 低资源消耗:w s n 节点的操作系统必须运行在资源非常有限的硬件设备之 上,特别是内存大小的限制,致使在其操作系统的开发过程中必须非常合理 地利用节点的物理资源。就拿现在比较常用的几款硬件平台来说,m i c a z 和 m i c a 2 只有4 k b 的内存,t e l o s b 也只有1 0 k 的内存。如果操作系统本身占用 太多资源,或者资源管理机制不合理,那么可能这个操作系统根本不能运行 在w s n 节点的物理设备之上;即使操作系统本身可以运行,很多需要较大 资源的应用程序也无法在其上运行起来。 2 高可靠性:w s n 的高可靠性特点必然要求节点操作系统也具有高可靠性。在 运行过程中,如果因为软件设计的问题导致系统崩溃,w s n 节点无法自动重 启,必须手动进行冷启动。然而w s n 节点部署的地点可能不允许由人工完 成这种冷启动操作。所以w s n 的节点操作系统必须具备很高的稳定性和容 错能力。 3 低功耗:w s n 的电池容量通常非常小,而且需要长时间稳定地工作。由于环 境限制等原因,经常性地更换节点的电池也是不可容忍的。基于以上几个原 因,w s n 的节点必须有很好的节能措施。节能效率和低功耗是现今w s n 节 点操作系统研究的一个非常重要的方面。 4 高实时性:w s n 是一个计算网络。它和传统的计算机网络有一个明显的不同, 其运行是由环境和传感器之间的交互来驱动的,而不是由人机交互驱动。节 点与节点之间需要不断的依据环境数据来进行计算和网络通讯。如果没有了 实时性,那么环境数据本身就可能失去了意义,而w s n 的所有工作也就一 钱不值。因此,w s n 的操作系统必须是一个实时操作系统,以保证w s n 的 工作及时有效地完成。实时性是评价一个w s n 节点操作系统的重要指标之 一o 5 并发性:并发性也是评价一个w s n 节点操作系统的重要指标之一。在现实 3 浙江大学硕士学位论文第1 章绪论 中,由环境触发的事件随机出现,而且不同的事件必然有轻重缓急。这要求 w s n 节点操作系统必须可以并发的处理这些事件,否则就很难保证其数据的 有效性和实时性。 6 无系统a p i :现今的w s n 节点的操作系统和传统的操作系统有一个明显的不 同,其运行状态不存在内核级和用户级的区别。也就是所有的软件和操作系 统运行在同一个优先级之上。由于没有内核级和用户级的区别,操作系统提 供给应用程序的不是系统a p i ,而是一套服务接口。应用程序和操作系统也 不是相互独立的。编译器将操作系统和应用程序统一编译成一个可执行映象, 然后下载到节点上运行。 7 可重编程【8 j :w s n 的节点一般要求有可重编程能力,也就是动态更新节点软 件的能力。这要求节点操作系统具有良好的体系结构,可以通过无线通讯动 态地加载或者卸载模块。只有具有了重编程能力后,节点才可以远程地动态 地更新软件。 1 1 3 研究现状和发展趋势 当前,由于无线传感网络的应用前景非常广泛,对无线传感网络的研究已经 成为各国研究的热点。发达国家更是投入了大量的人力物力,希望推动无线传感 网络的技术发展和应用。很多国家的政府和企业已经意识到了无线传感网络技术 未来对经济、社会乃至国家安全的重要性,正在大力推动无线传感网络技术的进 步。美国国防部高级研究署( d a r p a ) 和i n t e l 公司等机构早在1 9 9 8 年开始年就 开始资助加州大学的“s m a r td u s t 9 j ”项目,希望建立一个分布式可扩展的无线传 感网络。2 0 0 4 年,由波士顿大学发起的美国传感器网络协会成立,其成员包括波 士顿大学,该协会还包括b p 、霍尼韦尔( h o n e y w e l l ) 、i n e t c os y s t e m s 、i n v e n s y s 、l - 3 c o m m u n i c a t i o n s 、m i l l e n n i a ln e t 、r a d i a n s e 、s e n s i c a s ts y s t e m s 及t e x t r o ns y s t e m s 等 公司和机构。 在中国,无线传感网络技术的研究也处在快速发展阶段。从2 0 0 6 年9 月起, 国家9 7 3 重点项目“无线传感网络的基础理论及关键技术研究”已经启动。此项目 由上海交通大学、浙江大学、中国科学院、南京大学等7 所院校共同承担,计划2 0 1 1 年8 月完成。本文的工作就是此项目工作的一部分。 当前无线传感网络操作系统主要有t i n y o s 、m a n t i so s l l 伽、c o n t i k i l l l l 、 s o s l l 2 1 、t - k e r n e l l l 3 1 、l i t e o s l l 4 】和n a n o r k 1 5 】等。按照特点他们主要可以分为两类: 一类是事件驱动的操作系统,一类是多线程的操作系统。例女l t m y o s 就是一个事 4 塑垩奎堂婴主兰篁丝茎 兰! 童丝丝 件驱动的操作系纠2 j ;而m a n t i so s 是一个多线程的操作系统【9 】o 还有一些操作 系统是这两类操作系统的融合,也就是既有事件驱动的特性又有多线程的特性。 这类系统采用如此设计的目的是为了兼顾操作系统的效率和用户友好性两方面 的考虑,所以采用了折中的办法。本文所涉及到的s e n s p i r e o s 就是这样的一个系 统。 1 2 本文工作 由于无线传感网络研究的兴起,新的无线传感网络操作系统也不断的出现。 而当一个全新的操作系统的问世后,研发人员们又得重新丌始为这个操作系统编 写新的应用程序。而这些应用程序很多是前人已经写过无数遍的。这大大浪费了 丌发人员的时问和精力,也增加项目研究和开发的丌销。不仅如此,很多操作系 统设计的初衷是针对某些方面的特定需要而设计的。但在其他的应用场合就会表 现出特性和功能上的缺陷。例如t i n y o s 在设计之初就被定义为一个事件驱动的 操作系统,由此t i n y o s 实现了高效率的轻量内树2 j ;但由于其调度系统没有优先 级抢占和多线程机制1 2 j ,t i n y o s 缺失了编程灵活和用户友好的优点。采用添加或 替换操作系统内核组件或其算法实现的方法扩展操作系统的功能( 例如,重写调 度算法,添加任务抢占功能到调度器【1 6 1 ) 可能会使操作系统失去简单、高效的特 点,并且新机制的应用范围仍然有其不可避免的局限性。并且这两种方法实现的 代价都相当的大。 我们项目组在完成了s e n s p i r e o sv 1 0 的丌发之后也遇到了如上述同样的问 题。如果能够研究和实现一种简单、代价低廉的方法,在s e n s p i r e o s 上继承t i n y o s 的应用程序及相关科研成果,那么这将是一件非常有价值的工作。 本文的工作就是要在s e n s p i r e o s 上开发一个t i n y o s 运行环境,使t i n y o s 的 应用程序可以无缝地移植到s e n s p i r e o s 上来运行;并以较低的代价使s e n s p i r e o s 和t i n y o s 的内核可以融合到一起。这样既可以使两个操作系统的内核相互补充, 以达到扩展功能的目的;又可以最大限度地在s e n s p i r e o s 上复用t i n y o s 的应用 程序的代码,达到避免重复劳动,节约开发成本的目的。本文提出使用代理技术、 中断钩子技术和虚拟时钟技术实现s e n s p i e o s 和t i n y o s 相融合。融合后的系统 将采用s e n p s i r e o s 的内核,却为应用程序提供t i n y o s 的组件和接口。我们将此 系统命名为t m y s p o s 。 5 浙江大学硕士学位论文 第1 章绪论 1 3 本文结构 本文第一章描述了无线传感网络的研究背景,以及本文的研究目的和工作内 容。主要是描述了无线传感网络的特点和无线传感网络操作系统的特点,以及无 线传感网络和其操作系统的研究现状和发展趋势。 第二章内容描述了t i n y o s 和s e n s p i r e o s 的结构和特点。然后描述和分析了 实现代码复用的几种方法,并讨论了在s e n s p i r e o s 上复用t i n y o s 的应用程序的 可行方案。 第三章内容在总体上描述了t i n y s p o s 设计目标、系统架构,并分析了此系 统设计的优点和缺点。 第四章内容详细描述了t i n y s p o s 内核的设计和实现。主要是描述如何使用 调度代理、中断钩子、虚拟时钟实现s e n s p i r e o s 和t i n y o s 内核的融合,并分析 了t i n y s p o s 内核设计的关键问题和解决方法。 第五章内容讲述如何在t i n y s p o s 上移植t i n y o s 的n e s c 组件链接库。 第六章内核讲述t i n y s p o s 上的n e s c 编译器1 1 7 l 的设计和实现。 第七章内容讲述了t i n y s p o s 的测试结果,并举例说明其应用方法。 最后,在第八章旱我们总结全文,并对未来的工作提出一些构想。 1 4 本章小结 本章1 1 节介绍了本文的研究背景;本章1 2 节的内容阐述了本文的工作内 容;本章1 3 节的内容介绍了本文的结构。 6 浙江大学硕士学位论文第2 章相关工作 第2 章相关工作 t i n y s p o s 是一个s e n s p i r e o s 上的t i n y o s 运行环境,也是一个n e s c 语言开 发环境,其结构由t i n y o s 和s e n s p i r e o s 融合而成。所以t i n y o s 的架构、s e n s p i r e o s 的架构、n e s c 语言的特点等内容与t i n y s p o s 的设计密切相关。本章内容首先讲 述了t i n y o s 的架构、s e n s p i r e o s 的架构、n e s c 语言的特点等内容;然后,依据 t i n y s p o s 的设计目标,在本章2 4 节分析复用w s n 应用程序代码可以采用的几 种方法;本章2 5 节内容分析了一个与t i n y s p o s 相类似的框架- - t i n y m o s 的设 计,并比较了t i n y s p o s 与t i n y m o s 设计与实现的异同。 2 1t i n y o s t i n y o s 是u cb e r k e l e y ( 加州大学伯克利分校) 在2 0 0 2 年正式发布的一个开 源的无线传感网络操作系统。在2 0 0 6 年,他们又发布了t i n y o s 2 o 【1 】和n e s c 语 言的1 2 版【1 7 1 。 t i n y o s 是在有限资源、灵活、并行性和能量管理四个目标的驱动下设计丌发 的【。其采用完全基于组件( c o m p o n e n t b a s e d ) 的架构设计【。操作系统本身和 其应用程序都由组件构成。组件全部由n e s c 语言编写,采用双向接口【4 】的模式设 计,即一个组件可能需要使用其他组件的接口功能,同时又对外提供一套接口的 功能。组件可以分为两类,一类是模块组件( m o d u l e ) 1 7 j ,另一类是配置组件 ( c o n f i g u r a t i o n ) 1 7 j 。模块组件完成具体的功能,而配置组件通过接口将模块进 行配置,并在编译时进行链接。 编译器按照应用程序的配置和需要链接并编译组件,而组件通过命令 ( c o m m a n d ) 、事件( e v e n t ) 和任务( t a s k ) 相互通讯相互协作1 4 】【1 7 l 。组件经过编 译器的链接和编译后生成可执行映像文件,然后下载到无线传感网络的节点上运 行。这种架构拥有很好的灵活性。编译器在编译时可以判断出哪些是需要的组件, 并将这些组件编译链接成可执行代码,而将不需要的组建剔除。这减小了编译生 成的代码长度,减轻了存储器大小对代码长度的限制。t i n y o s 的组件库包含网络 协议1 1 8 j 、时钟、传感器驱动及数据识别工具等组件i 。 t i n y o s 是一个单线程事件驱动的操作系统,其调度系统器按照不可抢占的 f i f o 的调度策略运行【2 1 。t m y o s 的调度系统没有优先级,不能按照优先级调度, 也不能进行抢占。任务只能按照发布的事件先后顺序保存在调度器的任务队列 7 浙江大学硕士学位论文第2 章相关工作 中,并只能按f i f o 的方式执行。这样的设计导致处于队列前的大任务会长期占 用处理器,而队列后的小任务则被长期阻塞而长期得不到执行。t i n y o s2 0 在组 件s c h e d u l e r b a s i c p 中实现其调度算法。 t i n y o s 的中断系统分散在各个硬件驱动组件中。在这些驱动组件包含中断信 号的处理例程。中断处理例程的优先级比所有的任务的优先级都要高,所以他们 可以对任务执行抢占操作。在t i n y o s 上,绝大多数中断处理例程包括其触发的 事件都是在中断屏蔽的环境中执行。而中断处理例程触发的事件所要完成的工作 却由驱动组件的使用者( 用户组件) 决定。这导致t i n y o s 长时白j 处于中断屏蔽 状态,影响了中断响应和处理的速度,增加了中断延迟时问。 t i n y o s 的并行性由调度系统和中断系统共同完成【1 m l 。虽然t i n y o s 的任务 问不能执行抢占操作,但中断系统可以对任务执行抢占。这是囚为t i n y o s 默认 中断例程的执行优先级比所有的任务都要高。任务可以通过关中断实现原子操作 【2 】 o t i n y o s 的内存管理采用完全静态分配内存的策略1 1 1 。虽然n e s c 语言也支持指针 操作,但t i n y o s 不采用动态分配内存策略。这样的策略有几点好处。首先,动态内 存分配影响系统的稳定性,而完全的静态分配内存策略增强了t i n y o s 系统的稳定性。 其次,静态分配内存简化了t i n y o s 管理内存的难度,提高了程序运行的效率。第三, 静态分配内存提高了t i n y o s 对内存的使用率。动态内存分配策略会冈为内存碎片而 使内存使用率降低。 t i n y o s 采用了几个方法来提高能源使用效率。首先,t i n y o s 编译应用程序时只 链接应川程序需要的组件和硬件设创1 9 1 ,那么对于应川程序无川的硬件设备将处于 休眠状态。这样,t i n y o s 就不会把能源消耗在应用程序末使用的硬件设备上。其次, 在调度器的任务队列为空时,t i n y o s 将使处理器处于节电状态1 1 9 1 ,以达到减少c p u 消耗的电量的日的。第三,t i n y o s 提供了一套设备控制接1 2 1s t d c o n t r o l 。这套接1 2 1 使应朋程序能够依据需要命令功能模块( 以及支持功能模块的子系统) 进行初始化、 启动和停止等控制操作1 1 9 】。t i n y o s 开放的这套接1 2 1 使应用程序能够依据程序运行状 态来调节能源的使用,减少能源的浪费。 t m y o s 的n e s c 语言编译器是一个在a v r g c c 2 0 上改造而来的交叉编译器,主要 由语言转换器、a v r - g c c 和一系列编译脚本组成,并在m a k e 工具帮助下集合成一个编 译系统。n e s c 语言分析转换程序使用c 语言编写,使用l e x 和y a c c 工具制作。 它将n e s c 语言代码转换到c 语言代码。a v r - g c c 将c 语言代码编译成可执行代码。 8 浙江大学硕士学位论文 第2 章相关工作 而脚本文件则将这两个过程衔接起来,并配置这两个过程的启动命令和参数。其 编译流程如图2 1 所示。图中的编译过程可以分为两个阶段:阶段一,n e s c 代码 编译到c 代码;阶段二,c 代码编译到可执行代码。n e s c 代码编译到c 代码阶 段由n e s c 语言编译器完成。c 代码编译到可执行代码主要有a v r - g c c 完成。 【没有 图2 1n e s c 代码编译流程 2 2n e s c 语言 为了实现t m y o s 的组件化开发和事件驱动的设计思想,u cb e r k e l e y ( 加州 大学伯克利分校) 在c 语言的基础上扩展和开发了n e s c 语言及其编译器【4 1 ,并使 用n e s c 语言开发了t i n y o s 操作系统。至今,t m y o s 已经开发了1 0 和2 0 两个 主要版本( 不包括开发过程中形成的很多小版本) 。 9 浙江大学硕士学位论文第2 章相关工作 n e s c 语言支持的编程模式综合地考虑了w s n 特点。其在环境反应能力、并 行性、交互性等方面具有很好的表硎1 1 。它引入了面向对象编程语言中接口和组 建的概念,并将组件的创建和使用相分离【1 7 1 。n e s c 语言开发的程序由不同的组件 链接而成,而组件是可以被重复使用的。这实现了结构化的程序设计思想,大大 提高了代码的可重用能力。 n e s c 语言中的组件采用双向接口的设计模式旧。任意组件可以使用其下层组 件提供的接口,同时通过接口向上层组件提供自己实现的功能。前面已经讲述过, 在n e s c 语言中的组件可以分为两类:模块组件( m o d u l e ) 和配置组件 ( c o n f i g u r a t i o n ) 。m o d u l e 是实现具体功能的组件,刁i 刚的m o d u l e 组件实现的接 口和功能各不相同。但是m o d u l e 组件本身不知道其使用的接口的功能由哪些 m o d u l e 组件实现,它也不关心自己提供的接口山谁使川。c o n f i g u r a t i o n 组件所起 到的作用就将各种m o d u l e 组件相连接,以实现某一具体的功能。c o n f i g u r a t i o n 组 件本身也可以向外提供接口,但是这些接口的功能并不在c o n f i g u r a t i o n 组件本身 的代码中实现,而是由其他m o d u l e 组件链接实现。 接口的作用是进行功能描述。每个接口提供给使用者一个或几个可以使用的 方法( c o m m o n d ) ,或者定义一个或几个使用者必须处理的事件( e v e n t ) 。每套接口 描述一套相对完整的功能。组件则要说明其使用了哪些接口,并提供哪些接口。 2 3s e n s p i r e o s s e n s p i r e o s 是浙江大学的无线传感网络项目小组开发的一个操作系统。它以 可预测、灵活、高效,及提供易于使用的用户接口和网络抽象层为设计目标【引。 可预测是指即使在最差情况下系统的行为和效率也必须可以预测。灵活是指 s e n s p i r e o s 可以广泛地应用到各种无线传感网络环境,并易于被不同背景的开发 人员使用。高效则涉及很多方面,包括能源的使用效率、内存的使用效率等方面。 为实现可预测的目的,设计人员精心设计了s e n s p i r e o s 的内核,包括 s e n s p i r e o s 的调度系统的架构、中断系统的架构等等。这些设计的原则就是提高 系统的响应速度,减少延迟时间,并尽最大可能保证在最差情况下系统的效率。 为实现灵活的目的,s e n s p i r e o s 采用多线程和事件驱动的混合架构模式【3 】设 计其调度系统。这样,习惯事件驱动模式编程和多线程模式编程的开发人员都可 以轻松地开发s e n s p i r e o s 的应用程序。 为实现高效率的目的,s e n s p i r e o s 采用静态内存分配策略来提高内存使用效 1 0 浙江大学硕士学位论文 第2 章相关工作 率;并采用堆栈共享技术来降低多线程机制造成的系统开销【3 1 ,提高系统内核的 运行效率。 2 3 1s e n s p i r e o s 的调度系统 s e n s p i r e o s 的调度系统是一个两层结构。调度系统的上层是事件调度器 ( e v e n ts c h e d u l e r ) 1 3 l ,支持优先级任务调度,并支持任务的优先级抢占。调度系 统的下层是线程调度器( t h r e a ds c h e d u l e r ) 1 3 l ,支持多线程调度和线程的优先级 抢占。所以说,s e n s p i r e o s 是一个任务驱动和多线程相融合的混合模式的操作系 统。事件调度器作为一个调度单位与线程一起被线程调度器调度,并且事件调度 器的执行优先级高于任何线程。s e n s p i r e o s 调度系统结构如图2 2 所示。在同一 个优先级内,事件调度器和线程调度器都是按照f i f o 的方式执行调度。丌始执 行的任务线程都4 i 能破棚l r d 优先级的任务所抢占,相同优先级的线程问也是如 此。 k s 舀:竺k i t h e s要舞;k s _ - 卅f o + 鬻黧 、 1 弋自h r e a d l 图2 2s e n s p i r eo s 调度系统结构 前面提到,为了提高运行效率,s e n s p i r e o s 的调度器采用了堆栈共享技术来 降低多线程机制造成的系统开销。具体的做法是让原始线程( 主线程) 和所有的 任务共享一个堆栈。这样在原始线程和任务间执行运行环境切换时就不需要执行 堆栈切换了。这大大减少了堆栈切换的次数,从而提高了线程切换的效率。 2 3 2s e n s p i r e o s 的中断系统 s e n s p i r e o s 的中断系统是一个两层结构的中断系统,分为上半部( t o p h a l f ) 和下半部( b u t t o nh a l f ) 【3 1 。上半部在中断屏蔽的环境下执行,无法被其他中断所 抢占;下半部运行在开中断的状态下,此时上半部可以抢占下半部运行。中断的 下半部按照优先级从高到低的次序执行【3 1 ,但在低优先级中断的下半部开始执行 后,高优先级的中断的下半部不能对其执行抢占。s e n s p i r e o s 中断系统的结构如 浙江大学硕士学位论文第2 章相关工作 图2 3 所示。 图2 3s e n s p i r e o s 中断系统结构 s e n s p i r e o s 的两层中断系统最大的优点就是将中断处理例程的任务按照紧急 与否进行划分。这样将在编写某个中断的处理例程时,我们就可以将非常紧急的 任务放在上半部执行,而将不是非常紧急的任务放在下半部执行。一般情况下, 上半部只需要做很少的工作,所以上半部的执行速度很快。这大大缩短了中断屏 蔽的时间,提高了中断系统的响应速度。而且下半部是按照优先级从高到低的顺 序执行的,于是高优先级的中断处理例程就能更快的得到执行,这也有助于提高 中断系统的响应速度。 2 4 代码复用方法的分析 在软件丌发过程中,代码复用是绝大多数程序员所期望的,也是现代高级语 言最基本的设计目标之一。代码复用有几个非常明显的好处。第一,代码复用减 少了软件开发过程中的重复劳动,减少了的工作量。第二,复用代码可以优化软 件结构,减少b u g 出现的可能。第三,复用代码可以减少软件测试的复杂程度, 降低软件测试的困难和开销。 2 4 1 代码复用方法的分析 代码复用的方式可以分为两种:模块级的可代码复用和程序级的代码复用。 在模块级的代码复用中,重用代码以模块的形式出现,而不是完整的程序, 不可以独立运行,其只是完成了一定的功能的代码段。此方法一般适用于复用比 较封闭的功能或模块的代码。通常,被复用的模块代码的运行不依赖于模块外部 1 2 浙江大学硕士学位论文第2 章相关工作 的环境,而是通过接口或参数的形式进行配置。面向对象语言中的类,结构化语 言中函数都是属于这个级别的可复用代码。可复用操作系统内核a v r x 2 1 】也是通 过此方法实现的。 应用程序级别的可复用代码是指代码本身已经具备了独立运行的条件。这些 代码直接或经过编译器编译后就可在特定平台上运行。应用程序对外部坏境有很 强的依赖性,因为应用程序总是针对某个平台或操作系统丌发的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高项质量管理讲解
- 湖南体育职业学院《资本论选读》2023-2024学年第二学期期末试卷
- 2025至2031年中国摩托车灯头行业投资前景及策略咨询研究报告
- 2025至2031年中国大扁头自攻自钻钉行业投资前景及策略咨询研究报告
- 《员工培训与成长专题》课件
- 沟通有方法教育有温度-如何做好家校沟通经验分享发言稿
- 2025至2030年中国纬纱传感器数据监测研究报告
- 2025至2030年中国硬质合金可转位铣削刀具数据监测研究报告
- 2025至2030年中国电力调度自动化系统数据监测研究报告
- 2025标准版私人购房合同样式
- 铝加工(深井铸造)企业重点事项解读(米)
- 体育赛事管理课件
- 幼儿游戏与社会性的发展
- 大学生思想政治理论课研究性学习成果
- (医学课件)特应性皮炎
- 2024年安徽合肥文旅博览集团招聘笔试参考题库含答案解析
- 小学各年级 小学一年级 了解自己的优点和弱点 主题班会
- 产后出血预防与处理策略
- 酒店网络营销外文翻译文献
- 咽部肿瘤的诊治
- 情景题心理测试题目及答案
评论
0/150
提交评论