中断驱动型程序数值性质的静态分析技术

来源 :国防科学技术大学 | 被引量 : 1次 | 上传用户:loveagle
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
中断驱动型程序在嵌入式软件中是一类常见的并发实现方式,并且中断驱动程序广泛应用于一些对安全和稳定性要求极高的领域(包括航空航天、汽车电子、医疗设备等)。因此,针对中断驱动型程序的静态分析研究对于提高嵌入式软件的可靠性具有重要意义。  已有静态分析技术主要面向顺序程序或通用多线程程序,但是中断驱动型程序有自身的特点,比如:中断与任务之间的打断非对称,中断程序往往具有较强的实时性要求,中断程序的同步方式比较特殊等。使用已有的面向顺序程序的分析方法对中断程序进行分析可能会导致分析结果不可靠。另一方面,使用已有的多线程程序的分析方法对中断程序进行分析,可能会导致分析结果不精确。因此,亟需研究专门针对中断驱动型程序并适合其应用特点的自动化分析方法和工具。  本文主要研究面向中断驱动型程序的静态分析,研究目标包括:研究中断驱动型程序的顺序化方法,使得顺序化后的中断驱动型程序适合于静态分析;面向顺序化后中断驱动型程序的特点,设计新的抽象域以实现对顺序化后中断程序的分析精度和分析效率取得较好的折衷;针对顺序化后中断驱动型程序的特点,优化过程间分析的效率。本文的主要工作如下:  1)提出了一种基于数据流依赖的中断驱动型程序的顺序化方法,该方法考虑了中断驱动型程序的特点,即中断与任务之间抢占执行的非对称性,将中断与任务在一个栈中执行,从而实现对中断驱动型程序的顺序化。同时为了尽可能少的引入中断,本文定义了中断之间的数据流依赖,并在需要考虑中断影响的语句处仅考虑对该语句产生影响的中断的集合,从而实现在保证顺序化程序的可靠性前提下,尽可能少的引入中断函数。另外,由于中断驱动型程序中往往使用中断屏蔽字寄存器(IMR)对中断与任务的执行进行同步,本文使用轻量级的位向量抽象域对中断驱动型程序的各个程序点处的IMR取值进行了分析,并利用该分析结果指导实际的中断驱动型程序的顺序化,同时考虑IMR对数据流依赖的影响,确保顺序化后的程序的可靠性。  2)设计了两个针对中断驱动型程序特征的抽象域:标志量抽象域和语法等价抽象域,以提高分析顺序化后中断驱动型程序的精度。本文针对中断驱动型程序中存在的一类特殊中断:一次发生中断,即一次任务周期内至多发生一次的中断,考虑对该中断的发生情况进行状态划分,以实现对这类中断程序的更精确分析。另外,由于中断驱动型程序中包含有一类代码模式,这类模式会导致使用已有的非关系型抽象域会得到不精确的分析结果。已有的(弱)关系型抽象域能够对该类代码模式得到较为精确的分析结果,但由于其计算代价较高,而在实际大规模程序中并不适用,因此本文基于程序中存在的语法等价关系,设计了能够发现顺序化后的中断程序中存在的语法等价关系,并利用该语法等价关系提升数值分析的精度。  3)提出了一种面向顺序化后中断驱动型程序的过程间分析优化技术,以提高分析顺序化后中断驱动型程序的可扩展性。顺序化后的中断驱动型程序往往包含大量的中断函数的调用,已有的分析方法对于这些大量函数调用会产生较差的分析效率。为了解决此类问题,本文针对顺序化后中断驱动型程序包含较多中断函数调用的特点,对过程间分析方法进行优化,主要思想是针对不同类型的中断使用不同的过程间分析方法,如复杂中断处理函数使用基于缓存的过程间分析方法,而对于简单中断处理函数则使用基于输入划分的过程间分析方法。以实现在保证一定分析精度的前提下,尽可能的提高分析的效率。  本文提出的中断驱动型程序数值性质分析方法,在分析精度和分析效率间都做了不同的权衡,可以适用于不同类型的中断程序。目前这些技术已经在抽象解释分析工具框架中得以实现,已在工业界应用中发现多个真实错误。
其他文献
随着现代卫星技术的迅速发展和应用普及,由多颗小卫星组成的卫星星座在军事、政治、经济和文化等各个领域都扮演着越来越重要的角色,逐渐成为人们日常中不可或缺的一环,其涉
随着人机交互技术的发展,用户界面经历了批处理、命令行、图形用户界面的变迁。基于WIMP范式的图形用户界面由于其所见即所得的直接操作方式,成为并且仍是主流用户界面。然而,随
随着互联网、物联网等技术的迅速发展,特别是web2.0等数据密集型技术的应用,产生了大量数据,海量数据的存储需求催生了云存储技术。开源云管理平台OpenStack的Swift对象存储使用
安全漏洞对当今的互联网造成巨大威胁,研究漏洞挖掘与安全评估技术可以用于发现漏洞并规避漏洞带来的威胁。模糊测试是目前较为先进的自动化挖掘漏洞的方法,使用模糊测试能够方
随着IP网络技术的不断发展,IP网络从单一传送数据的网络向可传送数据、语音、图像等多媒体的网络转变。与此同时,用户对于网络服务质量(QoS, Quality of Service)的要求也越
图标(Logo)是一种代表组织机构或产品身份的图形符号。它传递了特定的文化内涵和价值信息,因此对识别其所代表的对象来说具有十分重要的意义。基于上述内容,图标识别成为当今研
多核学习算法能够有效地解决单核学习不能很好处理的数据固有特征异构、属性分布不规则,样本分布不平坦等问题;另外由于其灵活性好,能够较好地诠释数据固有特性而受到越来越多
伴随着现代经济的发展和科学技术的日新月异,呼叫中心已经成为企业重要的组成部分。现代的企业都顺应时代的发展趋势,坚持以客户为中心来面对日益激烈的竞争,为了更好的提供
现如今,随着三网融合进程的不断推进和移动互联网的迅速发展,更加自由发展和危机感更强的互联网企业不断地从技术上和商业模式等方面提高改变自身以适应移动互联网的大潮,互
“深度神经网络”是近年来在大数据和图形处理单元(Graphical Processing Unit,GPU)两股力量的推动下再次兴起的一个研究领域。当下火热的“深度学习”,其本质便是深度神经网络