With the advent of persistent memory (PM), how to make use of systems that deploy PM is catching interest. Currently known persistent programming models require programs to be rewritten with persistence related primitives or at least recompiled so that persistent mechanisms can be automatically inserted. This is a burden to program developers. Furthermore, executing legacy programs as-is can lead to application and system inconsistencies as unexpected faults occur. In this paper, we propose ??Snap, an operating system support that is based on checkpointing that allows legacy applications to be executed as-is in a persistent memory environment without compromising consistency. We measure and quantify the effect of ??Snap for a wide range of ...