Page 12 - 《软件学报》2021年第10期
P. 12

2984                                 Journal of Software  软件学报 Vol.32, No.10, October 2021






















                                         (a)                                          (b)
                                   Fig.8  Translation from a non-pure linear arithmetic logic to a DNF
                                           图 8   非标准线性算术逻辑展开为析取范式

                 2.3   基于干扰变量的中断驱动程序顺序化

                    中断驱动是嵌入式软件设计常用的模式,由主程序和多个中断服务程序共同构成.在航天嵌入式软件中,通
                 常利用中断服务程序完成遥测数据采集、信息通信、遥控指令处理等功能.在中断驱动型程序中:中断机制具
                 有不确定性,即中断服务程序能够发生在主程序执行过程中的任一时刻,当中断发生后,会打断主程序正在执行
                 的操作转而执行中断服务程序;同时,中断机制还具有并发性,即主程序与中断服务程序之间交替执行.
                    针对第 1.2 节中断使用分析中提到的一类中断驱动程序,本文提出一种基于干扰变量的顺序化方法,该方
                 法的关键是采用抽象解释、摘要机制对中断函数特征表示,并基于干扰变量分析保证顺序化后的程序包含尽可
                 能少的中断函数.
                 2.3.1    中断驱动程序模型
                    中断驱动机制引起整数溢出错误主要是由于在中断服务程序中,对变量的操作影响了主程序中该变量的
                 取值.本文将中断驱动程序抽象为 4 类中断驱动程序模型,分别为 R-R 模型、W-R 模型、R-W 模型、W-W 模型
                 (如图 9 所示),并基于中断驱动程序模型分析中断服务程序对变量取值的影响.其中,x 表示程序 P 和中断向量号
                 为 i 的中断 ISR i 之间的共享数据单元,初值为 v 0 ;s i =v k ,l j 表示变量 x 在当前程序下的状态,即变量 x 在位置 l j 的
                 取值为 v k ;READ:x 表示当前程序位置下对变量 x 执行读操作;WRITE:x:=v i 表示当前程序位置下对变量 x 执行写
                 操作,将 v i 写入 x.
                       R-R 模型:表示在 P 中对变量 x 执行读操作,在 ISR i 中对变量 x 执行读操作.此时,P 和 ISR i 执行路径中
                        每个状态上变量 x 的取值均为 v 0 ,说明在 R-R 模型中 ISR i 的执行并不影响 P 中变量 x 的取值;
                       W-R 模型:表示在 P 中对变量 x 执行写操作,在 ISR i 中对变量 x 执行读操作.此时,P 执行路径上在 WRITE
                        前变量 x 的取值为 v 0 ,在 WRITE 后变量 x 的取值为 v 1 .ISR i 中并不改变变量 x 的取值,说明在 W-R 模型
                        中 ISR i 的执行并不影响 P 中变量 x 的取值;
                       R-W 模型:表示在 P 中对变量 x 执行读操作,在 ISR i 中对变量 x 执行写操作.此时,由于在 ISR i 中对变
                        量 x 执行 WRITE 操作,使得 P 执行路径中状态 s 1 s 4 、s 5 s 8 上变量 x 的取值发生改变.说明在 R-W 模
                        型中,ISR i 的执行影响 P 中变量 x 的取值.进一步来说,对于 R-W 模型中的共享数据单元 x,P 中每次
                        READ 操作都要考虑 ISR i 中 WRITE 操作的影响;
                       W-W 模型:表示在 P 中对变量 x 执行写操作,在 ISR i 中对变量 x 执行写操作.此时,虽然在 ISR i 中对变
                        量 x 执行 WRITE 操作,使得 P 执行路径中状态 s 1 s 4 上变量 x 的取值发生改变,但是 P 中通过 WRITE
   7   8   9   10   11   12   13   14   15   16   17