发明名称 用于检测多线程程序中潜在竞争的方法和系统
摘要 提供了克服先前锁集方法缺点的动态竞争检测系统和方法,所述先前锁集方法会产生许多假阳性,尤其是在线程衍生/连接和异步调用环境中。对于每个共享存储单元,维持有保护该单元的锁集和访问该单元的并行线程分段集。为了维持这些集合,每个线程维持当前持有的锁集和排列在其当前线程分段之前的线程分段集。每个线程也维持有在该线程衍生第二线程时递增的虚拟时钟。线程分段是包含线程标识符和虚拟时钟值的对。当特定共享存储单元的锁集为空且该存储单元的并行线程集的基数大于1时报告数据竞争。
申请公布号 CN1677353A 申请公布日期 2005.10.05
申请号 CN200510063733.0 申请日期 2005.03.24
申请人 微软公司 发明人 Y·于
分类号 G06F9/46 主分类号 G06F9/46
代理机构 上海专利商标事务所有限公司 代理人 沈昭坤
主权项 1.一种在程序中用于动态检测潜在竞争条件的系统,所述程序具有多个线程和一个或多个共享存储单元,其特征在于,所述系统包括:对于每个共享存储单元,(i)用于维持访问所述单元的并行线程分段集的机制,以及(ii)用于维持与所述单元相关联的第一锁集的机制;对于每个线程,(i)用于维持排列在所述线程当前线程分段之前的线程分段集的机制;以及(ii)用于维持由所述线程获取和释放的第二锁集的机制;以及用于在检测到潜在竞争条件时,报告警告的机制。
地址 美国华盛顿州