天鹅同步是最常用的原子性违规修复方法,但通常容易出错。除了引入死锁之外,程序员还很容易不充分地同步代码。由于行业中几乎所有的修复检查仍然依赖于昂贵的劳动力,而且并发程序的不确定性是出了名的,因此很难找到这种糟糕的修复。Swan是一个原型工具,可用于帮助程序员检查原子性违规的修复。在Swan的众多优势中,其中三个脱颖而出。 (1) 符合程序员常规的修复检查方法,通过重复执行打过补丁的程序来检查修复,观察一个bug是否会被重新激活,从而没有误报; (2) 我们的方法可以有效地检查修复程序,而无需了解触发错误的原子性违规; (3) 使用Swan,我们平均只需要重复执行一个打过补丁的程序3次就可以检查原子性违规的修复,这远比最先进的技术更有效。什么是同步不足?使用等效锁,但不包括一些关键语句:if (membership.memberAlive(m)) {
swan:验证原子性违规修复的同步
文件列表
swan:验证原子性违规修复的同步
(预估有个114文件)
KernelGraph.java
19KB
RecordMonitor.java
11KB
ReplayRecordMonitor.java
14KB
StridePPMonitor.java
8KB
StrideMonitor.java
9KB
ReplayMonitor.java
11KB
Monitor.java
8KB
ReplayExamineMonitor.java
17KB
Visitor.java
27KB
RecursiveVisitor.java
24KB
暂无评论