c++ 读取访问权限冲突_中断冲突分析(二)— 参数访问序及冲突场景分析

9852bbd48179abd7fd40ba527e3cf601.png

作者:董燕

1

前言

在上期的《中断冲突分析(一)——基于参数类型访问的中断冲突分析》的说明中,是针对几种参数类型进行一次访问操作过程中引入的数据不同步场景分析。

针对同一个参数的多次访问过程中,如果存在多次访问操作被中断打断的可能时,需要从参数访问序角度分析是否存在访问冲突。本文结合参数访问序的几个典型场景,给出对应的冲突分析,最后给出相关的结论。

2

参数访问序冲突场景分析

一个变量在主程序、各级中断服务子程序中多次进行读写,哪些会在读写过程中引入变量访问冲突呢,在此以中断中有读操作和写操作进行分类,并通过实例加以分析说明。

 part 1 中断写操作时主程序访问序

a.  主程序中有读读操作序

b0bf035e78e47a61e0a591e223549438.png

图1 主程序读-读操作序场景

Fig.1 Main program reading reading-interrupt reading operation order

上述图1代码针对变量rsCount的访问就是主程序进行连续两次读,中断服务子程序中进行一次写的操作。该种形式的访问序会在主程序第一条读语句执行后,第二条读语句执行前,如果产生中断,会导致第二次读出的数值与第一次不同。通过对本实例的分析,两条读语句对应的变量值应该为同一时刻的数值,上述代码存在访问冲突,在此称为“读读之间产生写”,通过该实例可以总结如下:

针对“读读之间产生写”访问序,分析是否发生中断冲突的途径就是确认两次或多次读语句对应该变量值是不是要求为同一时刻的值,如果要求是同一时刻的值,即多次读的过程中不能被中断改写,则该“读读之间产生写”访问序就存在中断访问冲突。

针对两次或多次读语句对应该变量值是不是要求为同一时刻的值,需要结合代码实现逻辑及软件功能进行测试需求分析,一般在同一个模块中连续读操作的访问冲突概率较大。

b.  主程序中有读写操作序<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值