[发明专利]一种控制多线程程序冗余执行的方法和装置在审
| 申请号: | 202111564357.9 | 申请日: | 2021-12-20 |
| 公开(公告)号: | CN114238023A | 公开(公告)日: | 2022-03-25 |
| 发明(设计)人: | 韩首魁;潘传幸;张高举;李昂 | 申请(专利权)人: | 郑州昂视信息科技有限公司 |
| 主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/50;G06F9/54 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 鲁丽美 |
| 地址: | 450001 河南省郑州市高新技术产*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 控制 多线程 程序 冗余 执行 方法 装置 | ||
1.一种控制多线程程序冗余执行的方法,其特征在于,包括:
监控主变体的线程级系统调用;
确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用;其中,所述主变体和所述从变体分别包括相同数量的多个线程;
若是,对所述线程级系统调用进行记录处理,以更新对所述主变体的系统调用记录;所述系统调用记录包括:所述主变体的每个线程对应的按时间线发生的需同步至从变体的各系统调用构成的系统调用序列;
将所述系统调用记录重放至从变体端,以使从变体的各线程执行与主变体的对应线程一致的系统调用序列。
2.根据权利要求1所述的方法,其特征在于,所述监控主变体的线程级系统调用,包括:
通过拦截所述主变体的线程级系统调用指令,对所述主变体的线程级系统调用进行监控。
3.根据权利要求2述的方法,其特征在于,在确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用之后,还包括:
若否,停止对所述线程级系统调用的拦截,以使所述主变体的程序继续运行。
4.根据权利要求1所述的方法,其特征在于,所述确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用,包括:
确定所述线程级系统调用是否为会影响多线程冗余执行结果导致执行结果发生变化的系统调用;
若是,确定所述线程级系统调用为需在从变体进行同步的系统调用;
若否,确定所述线程级系统调用为无需在从变体进行同步的系统调用。
5.根据权利要求1所述的方法,其特征在于,在主变体或从变体执行过程中,主变体或从变体的前后系统调用采用互斥锁使用共享资源;且对于需要同步的系统调用,一个变体同时只能有一个线程执行系统调用。
6.根据权利要求2所述的方法,其特征在于,采用判决模块拦截所述主变体的线程级系统调用,并判定拦截的线程级系统调用是否为需在从变体进行同步的系统调用。
7.根据权利要求6所述的方法,其特征在于,所述判决模块支持x86框架的Linux多变体执行环境的指令拦截及判决,能够部署于跨平台的执行变体。
8.根据权利要求1所述的方法,其特征在于,采用缓冲区同步模块对所述线程级系统调用进行记录处理;
其中,所述缓冲区同步模块开辟缓冲区,向开辟的缓冲区记录主变体的线程级系统调用、主变体的线程级系统调用所属的线程,并维护主变体不同线程的不同系统调用的执行顺序,以及将记录的系统调用顺序同步到从变体,以使从变体的各线程按相同顺序执行在主变体所对应线程的各个系统调用。
9.根据权利要求1所述的方法,其特征在于,所述主变体与所述从变体相互独立且功能等价、结构不同。
10.一种控制多线程程序冗余执行的装置,其特征在于,包括:
监控单元,用于监控主变体的线程级系统调用;
确定单元,用于确定监控到的线程级系统调用是否为需在从变体进行同步的系统调用;其中,所述主变体和所述从变体分别包括相同数量的多个线程;
记录单元,用于在所述确定单元为是的情况下,对所述线程级系统调用进行记录处理,以更新对所述主变体的系统调用记录;所述系统调用记录包括:所述主变体的每个线程对应的按时间线发生的需同步至从变体的各系统调用构成的系统调用序列;
重放单元,用于将所述系统调用记录重放至从变体端,以使从变体的各线程执行与主变体的对应线程一致的系统调用序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州昂视信息科技有限公司,未经郑州昂视信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111564357.9/1.html,转载请声明来源钻瓜专利网。





