[发明专利]一种跨平台的程序指令重排的验证方法在审
| 申请号: | 202210222209.7 | 申请日: | 2022-03-09 |
| 公开(公告)号: | CN114741117A | 公开(公告)日: | 2022-07-12 |
| 发明(设计)人: | 束长栋;廖球 | 申请(专利权)人: | 上交所技术有限责任公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 上海三方专利事务所(普通合伙) 31127 | 代理人: | 吴玮 |
| 地址: | 200131 上海市浦东新*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 平台 程序 指令 重排 验证 方法 | ||
1.一种跨平台的程序指令重排的验证方法,其特征在于将两个应用进程对同一块共享内存读写并发操作,运行时写进程在某地址写数据时,读进程在该地址上追赶到写进程进行读操作;具体方法如下:
写进程程序,主流程中执行两个步骤:
先进行Data变量赋值操作,后进行Flag变量的赋值操作;
读进程程序,主流程中执行两个步骤:
先判断Flag变量是否就绪;就绪后再进行Data变量的读操作,然后检查Data值和上一次读取值preData之差,差值不为1则表示指令重排。
2.如权利要求1所述的一种跨平台的程序指令重排的验证方法,其特征在于所述应用进程中的变量Data和Flag在内存实现中组成程序操作的最小单元,以便读写进程的使用,因此程序中使用结构体将两个变量组合成逻辑上的整体。
3.如权利要求1所述的一种跨平台的程序指令重排的验证方法,其特征在于所述共享内存是一块大小固定且连续的共享内存,形同一块连续的数组。
4.如权利要求2所述的一种跨平台的程序指令重排的验证方法,其特征在于所述的共享内存为首尾相接的环形结构。
5.如权利要求1-4任一所述的一种跨平台的程序指令重排的验证方法,其特征在于所述验证方法,具体如下:
a.写进程负责内存数据的生成,写进程使用写指针操作共享内存,从第一位置开始,将Data和Flag赋一个相同的64位的long long类型值,使用相同的数值用于读进程进行数据判断,赋值完成后,写指针后移一位,同时,下一个位置的赋值递增一;
b.读进程负责内存数据的读取,同时,通过对Flag和Data的数据检查,完成对程序运行状态的验证,判断进程运行过程中CPU操作是否发生了指令重排,读进程使用读指针操作共享内存,在读进程中设置一个变量为preData,初始化为0,该值记录每次读进程获取到的内存位置中的Data值,供读进程进行数据正确性判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上交所技术有限责任公司,未经上交所技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210222209.7/1.html,转载请声明来源钻瓜专利网。





