Restart/Restore:  Issues when restoring: The stack of the current process would be overwritten by the old process  This is fixed by using mmap to move the current stack and stack pointer.  So when writing the code, we would offset the stack pointer, and then call a method.  This new method should restore back everything without returning, since this is now our new process. When/How:  How do we decide to checkpoint? -Checkpoint and still run- The homework is an example -Checkpoint and kill- Process Migration -Checkpoint at intervals- Nodes in Large Clusters can fail so they checkpoint very often  When to checkpoint process? o We send a signal to checkpoint. o Various signals to interrupt a process, they have a number associated(32 of them)  3-SIGNIT  11-SIGSEV  15-SIGKILL  9-SIGTERM  For our homework, we use SIGUSR2. The command in a terminal would be $KILL –SIGUSR PID.  So in our code, we would have to put in this signal and its handler.  To put in code, we would have to edit the code. However, we can use a library, and in the case of the homework would be libckpt.a  Assignment is due: 1/20/2016  Extra Office Hours 7-9pm