Persistence is the trait of maintaining system state despite discontinuities in operation or use, such as from one use of a program to the next use. In simple terms, persistent programs lose no, or little, information if the system becomes inoperative suddenly. As most computer users know, many computers often become inoperative suddenly, for two main reasons: the electric power stops, or a program crashes. Persistent operating systems (OSs) are OSs that maintain global persistence for all threads, processes, and programs that are running, as they run. When using persistent OSs, if the plug is pulled out suddenly, and the screen goes black, the computer can be plugged back in, and is up and running again quickly, almost exactly where it left off, losing no, or little (at most only a few seconds) work. Clearly, this demands some effort by designers, but is not difficult if one is willing to suffer a small performance loss. The difficulty lies in designing programs that are persistent with no performance lose.