发明名称 |
一种并发分析方法及装置 |
摘要 |
本发明公开了一种并发分析方法及装置,包括:获取程序控制流图,其中,在所述程序控制流图中,线程创建节点为所述线程创建节点所创建的线程的开始节点的直接前驱节点,计算程序控制流图中每个线程的开始节点的初始并发节点集合、每个线程创建节点的直接后继节点的初始并发节点集合、以及每个线程终止节点的直接后继节点的初始无法并发节点集合,初始化程序控制流图的首节点的并发节点集合,从程序控制流图的首节点开始向下遍历,在遍历过程中,根据继承规则计算出遍历到的每个节点的并发节点集合,由于一次遍历即得到每个节点的并发节点集合,运算简单且运算量小,实现了提高并发分析效率的目的。 |
申请公布号 |
CN104679484A |
申请公布日期 |
2015.06.03 |
申请号 |
CN201310617816.4 |
申请日期 |
2013.11.27 |
申请人 |
华为技术有限公司;中国科学院计算技术研究所 |
发明人 |
陈聪明;霍玮;李丰;冯晓兵 |
分类号 |
G06F9/44(2006.01)I;G06F17/30(2006.01)I;G06F11/36(2006.01)I |
主分类号 |
G06F9/44(2006.01)I |
代理机构 |
深圳市深佳知识产权代理事务所(普通合伙) 44285 |
代理人 |
王仲凯 |
主权项 |
一种并发分析方法,其特征在于,包括:获取程序控制流图,其中,在所述程序控制流图中,线程创建节点为所述线程创建节点所创建的线程的开始节点的直接前驱节点;计算所述程序控制流图中每个线程的开始节点的初始并发节点集合、每个所述线程创建节点的直接后继节点的初始并发节点集合、以及每个线程终止节点的直接后继节点的初始无法并发节点集合;其中,所述每个线程的开始节点的初始并发节点集合包括用于创建所述开始节点所在线程的线程创建节点之后的节点中,至少一个能够与所述开始节点并发的节点;其中,所述线程创建节点的直接后继节点的初始并发节点集合包括所述线程创建节点所创建的线程的开始节点之后的节点中,至少一个能够与所述线程创建节点的直接后继节点并发的节点;其中,所述线程终止节点的直接后继节点的初始无法并发节点集合至少包括所述线程终止节点所终止的线程的全部节点;初始化所述程序控制流图的首节点的并发节点集合,从所述程序控制流图的首节点开始向下遍历,在所述遍历过程中,根据以下继承规则,计算出遍历到的每个节点的并发节点集合:其中,所述继承原则包括:如果遍历到的当前节点不是线程终止节点的直接后继节点,则,所述当前节点的并发节点集合包括该当前节点的至少一个直接前驱节点的并发节点集合;如果当前节点是线程创建节点的直接后继节点或者线程的开始节点,则,所述当前节点的并发节点集合包括所述当前节点的初始并发节点集合与至少一个直接前驱节点的并发节点集合的并集;如果遍历到的当前节点是线程终止节点的直接后继节点,则,所述当前节点的并发节点集合等于该当前节点的至少一个直接前驱节点的并发节点集合减去该当前节点的初始无法并发节点集合。 |
地址 |
518129 广东省深圳市龙岗区坂田华为总部办公楼 |