TinyOS论文02:Finding Symbolic Bug Patterns in Sensor Networks
2015-11-21 17:15
435 查看
Abstract
论文提出了一种用于归纳和总结传感网bug的错误诊断算法。多个不同的事件模式由于具有相同的事件属性可能有相同的错误表现,例如:某些系统中,发送方和接收方如果超出2个范围的跳数的话就会出错。特征模式提取技术用于识别和描述传感网的异常行为,用于归纳传感网节点或者信息交换的特征模式
一、Introduce
bug特征模式:传感器网络中那些可能导致bug的实际可观测的消息交互以及结点、角色和信息类型的潜在关系称之为bug特征模式。现有的一些传感网bug调试技术。。。,例如Dustminer使用频繁的序列挖掘技术用于识别交互的bug,论文表明,对基于绝对时间属性值的事件序列分析用户识别交互bug是不充分的。
论文采用特征模式的方法,通过不同事件属性间的关系来捕获导致bug的事件序列,即找出与bug高度相关、包含bug特征模式的关键的代码序列。
二、特征模式模型
特征模式的相关概念介绍:1、logged事件:在运行时执行的任何操作(例如:消息的传输、消息接收和写入写入闪存)
2、logged事件的属性:例如消息传输事件的属性:senderId,senderType、destinationId、msgType
3、logged事件在论文中的定义为:
< EventType,attribute 1 ,attribute 2 ,...attribute n >
例如:单一的事件序列(有3个事件的单一序列):
< msgSent,senderId = 1,msgType = 0,destinationId = 3 > < msgReceived,receiverId = 1,msgType = 1,senderId = 3 > < flashWriteInitiated,nodeId = 1,dataSize = 100 >
高频序列挖掘算法用于提取事件的 高频子序列。(事件的子序列可以不用重复)
不同的模式的定义:有不同“支持”的事件子序列。“支持”指的是发生的次数。
相同特征模式举例:
1、S1和S2的logged序列:
S1 =< msgSent,senderId = 1,msgType = 0 > < msgReceived,receiverId = 2,msgType = 0 > S2 =< msgSent,senderId = 3,msgType = 0 > < msgReceived,receiverId = 5,msgType = 0 >
2、特征模式:
S2 =< msgSent,senderId = X,msgType = 0 > < msgReceived,receiverId = neighbor(X),msgType = 0 >
特征模式提取的任务是:识别满足特关系的高频模式,这个特定关系由用户指定或者从有共同关系的库中选取,并且这些特定关系定义了相同或者不同类型的事件属性,例如邻接关系、识别关系和类型关系。
特征模式提取的步骤
1、使用先验算法生成高频模式;
2、归纳高频模式;
3、最后提出了模式等级方案
三、Related Work
现有的工具对检测分布在多个结点间的bug不是很适用现有的技术都不能自动找出特征模式。
SNMS提供了一种更传统的传感网管理服务,它的做法是通过手机和总结不同类型的测试例如数据包丢失、无线通信能源消耗。但它不会像开发人员提示错误信息;也不会提示为什么出错。
使用机器学习技术去诊断错误也不是最新最好的方法。
四、Overview
1、调试采用特征模式的原因具有普遍性而不是仅针对某些特定场合。
2、特征模式提取算法
特征模式提取的两个步骤:
1、多属性事件转换成但属性事件,一次来减少计算的复杂度。使用序列挖掘算法生成单一属性的事件高频模式,将这种高频模式集合成为基本的高频集合。
2、生成候选特征模式(候选特征模式生成的步骤)
例如:
//基本的高频模式 Seq a = (< E x ,attr 2 = v i >,< E y ,attr 2 = v j >,< E z ,attr 3 = v k >)
//候选特征模式 (< E x ,attr 1 = ∗ >,< E x ,attr 2 = v i >,< E x ,attr 3 = ∗ >) (< E y ,attr 1 = ∗ >,< E y ,attr 2 = v j >) (< E z ,attr 1 = ∗ >,< E z ,attr 2 = ∗ >,< E z ,attr 3 = v k >)
3、Challenges
识别有意义的条件
找出有意义的特征模式关键: 用哪一个“*”属性的子集来替代特征 + 要测试的关系是什么
1、避免无用的检测;
2、提升自动化程度,为了减少人为干预,论文给出了专门适用于无线传感网络应用程序的与定义条件。
3、列举出需要检测的基本条件
4、在头文件中指定属性的类型;
5、任意复杂度条件的组合能够自动生成。
特征模式提取的伪代码:
Input: Set of Good Logs (GL), Set of Bad Logs(BL),similarity measure (δ) Output: Set of discriminative symbolic pattern 1. PatternSetA=GenerateFrequentPatterns(GL) 2. SymbolicPatternSetA=ExtractSymbolicPattern(PatternSetA,GL,δ) 3. PatternSetB=GenerateFrequentPatterns(BL) 4. SymbolicPatternSetB=ExtractSymbolicPattern(PatternSetB,BL,δ) 5. DiscriminativePatternSet=DiffMine(SymbolicPatternSetA,SymbolicPatternSetB) 6. output DiscriminativePatternSet Function: ExtractSymbolicPattern Input: Set of Frequent Pattern(FP),Set of Logs(L),similarity measure (δ) Output: Set of symbolic pattern(SP) 1. SP=Null;/ ∗ setofSymbolicpattern∗ / 2. for each pattern p in FP 2.1 for each checkcondition c 2.1.1 CSP=GenerateCandidateSymbolicPattern(p,c) 2.1.2 if(support(CSP)/support(p)> δ then SP=SP U CSP 2. return SP
相关文章推荐
- svn st 显示的文件状态
- errno 与 perror()/strerror()函数
- 标准IO库函数复习
- 用scala 实现top N 排名
- #Intent的隐式启动和显式启动
- mysql修改密码和设置远程连接
- 【C语言】 实现strncpy,strncat,strncmp
- 又见回文
- 在使用virtualbox安装ubuntu时出现I/Ocache不足的问题
- MBTI测试第一步
- 2015-10-09 Fri 晴 加快进度看书
- 单向链表实现
- 双向链表
- BZOJ2388 : 旅行规划
- mac 终端命令
- ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController
- Rouh set 入门知识2(基础定义篇)
- 家庭作业汇总
- EntityFramework6 版本更变产生的错误
- lseek()函数