将整个进程状态存储在磁盘上并在以后恢复? (在Linux / Unix上)

时间:2011-04-18 01:35:50

标签: process state store restore disk

我想知道:我是否可以使用系统调用,库,内核模块或命令行工具来存储磁盘上正在运行的程序的完整状态?

那就是:我想将进程当前正在使用的内存,页面布局,堆栈,寄存器,线程和文件描述符完全转储到硬盘驱动器上的文件中,并能够以后无缝地恢复它,就像一个模拟器“savestate”或虚拟机“快照”。

如果可能的话,我还想拥有程序状态的多个“备份副本”,因此如果程序因某种原因而死,我可以恢复到之前的执行点。

这可能吗?

3 个答案:

答案 0 :(得分:3)

this之类的东西?您还可以查看checkpointing page on wikipedia

答案 1 :(得分:2)

你应该看看伯克利实验室的BLCR project。 这被多个MPI实现广泛使用来提供 并行应用程序的检查点/重新启动功能。

答案 2 :(得分:1)

core dump基本上就是这个,所以是的,必须有可能得到。

您真正想要的是重新将该转储存储为正在运行的程序的方法。这可能会更困难。