Some systems facilitate deadlock recovery by implementing checkpointing and rollback. Checkpointing is saving enough state of a process so that the process can be restarted at the point in the computation where the checkpoint was taken. Autosaving file edits is a form of checkpointing. Checkpointing costs depend on the underlying algorithm. More complicated processes may have to save all the process state and memory.
Checkpoints are taken less frequently than deadlock is checked for.
If a deadlock is detected, one or more processes are restarted from their last checkpoint. The process of restarting a process from a checkpoint is called rollback . The hope is that the resource requests will not interleave again to produce deadlock. I spend none. I think that they're pedagogically uninteresting and practically unimplementable.