Reading Papers - Concurrency Testing Overview (unfinished)
# Concurrency Testing Taxonomy
# xx / xx / xx
根据 xxx ,可以将 xxx 分为三类:
xxx 指的是 xxx 。
xxx 指的是 xxx 。
# xx / xx
根据 xxx ,可以将 xxx 分为 xxx 和 xxx 两类。
# Concurrency Bugs
# Data Race
数据竞争 (data race)
如果两个并发执行的线程访问了同一共享变量,并满足以下条件,则称程序中存在数据竞争:
其中至少有一个是写操作;
没有使用任何机制以防止该共享变量被同时访问;
# Data Race Detection
# Taxonomy
# Happens-Before Relation
基于 happens-before 的工具通常会监测程序中所有的数据访问操作和同步操作,判断当次程序执行中是否存在对共享内存的冲突访问,即未被 happens-before 关系约束的访问。
基于 happens-before 的工具的主要缺点包括:
efficiency :工具的效率难以提高,因为需要检测所有的数据访问操作。
effectiveness :基于 happens-before 的方法的有效性高度依赖于由 scheduler 生成的 thread interleavings ,工具必须充分探索线程调度空间。
- 01
- Reading Papers - Kernel Concurrency06-01
- 02
- Linux Kernel - Source Code Overview05-01
- 03
- Linux Kernel - Per-CPU Storage05-01