Nondeterministic execution inherent in multithreaded programs severely complicates debugging, testing, and replication. We have proposed a new OS abstraction, called Deterministic Process Groups (DPGs), to ensure fully deterministic (repeatable) execution of arbitrary, unmodified multithreaded programs. We have also developed dOS, a Linux-based implementation of DPGs. Faculty: Ceze, Gribble.