摘要:
近几年来,随着无线通信技术、微电子技术的不断进步,无线传感网络得到了快速发展。然而,随着越来越多的WSN程序被部署到实际应用中,这些应用也常常因为软件质量问题而产生不可预知的故障。TinyOS系统是WSN节点级编程事实上的标准平台。由于TinyOS程序复杂的系统并发模型,并发缺陷成为TinyOS程序中常见却难以检测的缺陷。WSN程序主要的功能包括对数据进行采集、转发和处理,需要大量事件处理过程实例的协同工作以完成这些功能。事件处理过程实例是并发交织地执行的,包括执行对共享变量读写和对共享信道的使用等。而事件处理过程实例对这些共享资源的交织访问都可能导致传感网程序产生并发错误。本文研究TinyOS程序中事件处理过程实例交织访问共享资源所引起的并发错误,包括因共享内存位置和共享信道引起的并发错误。本文提出了一组描述这些并发错误特征的错误模式,用以传感网程序并发错误的动态检测。本文实现了检测这两类并发错误模式的算法,可以在TinyOS程序运行时实时地识别所出现的并发错误。本文基于此算法实现了一个TinyOS并发错误的动态测试工具,能可视化地报告被测程序的错误模式和错误语句。在被测程序运行时,该工具追踪各个共享变量的访问序列以及共享信道的使用情况,从而识别错误模式,并报告确定性的或可疑的并发错误。对于每一个特定的错误模式,此工具还能定位错误到其所在的源码语句行。
展开