宿命论对在调试的多线程的节目很有用,测试,等等。许多确定的途径被建议了,例如确定的多线程(DMT ) 并且确定重放。然而,这些系统任何一个是低效的或指向一个单个目的,它不是灵活的。在这份报纸,我们为多线程的程序建议一个有效、灵活的确定的框架。我们在二的框架工具宿命论走:放松的宿命论和强壮的宿命论。放松的宿命论由使用一个合适的弱记忆一致性模型高效地解决数据赛跑。在那以后,我们由确定地解决锁竞争实现强壮的宿命论。因为我们能独立地为这二步使用不同途径,我们的框架提供确定的选择的一个系列,包括 nondeterministic 系统(快) ,弱确定的系统(快、有条件地确定) , DMT 系统,并且确定重放系统。我们的评估证明这个框架的 DMT 配置能甚至超过一个最先进的 DMT 系统。
Determinism is very useful to multithreaded programs in debugging, testing, etc. Many deterministic ap- proaches have been proposed, such as deterministic multithreading (DMT) and deterministic replay. However, these sys- tems either are inefficient or target a single purpose, which is not flexible. In this paper, we propose an efficient and flexible deterministic framework for multithreaded programs. Our framework implements determinism in two steps: relaxed determinism and strong determinism. Relaxed determinism solves data races eificiently by using a proper weak memory consistency model. After that, we implement strong determinism by solving lock contentions deterministically. Since we can apply different approaches for these two steps independently, our framework provides a spectrum of deterministic choices, including nondeterministic system (fast), weak deterministic system (fast and conditionally deterministic), DMT system, and deternfinistic replay system. Our evaluation shows that the DMT configuration of this framework could even outperform a state-of-the-art DMT system.