pyt*_*nic 3 c linux x86-64 checkpoint
可以说,你有一个应用程序,它消耗了所有的计算能力.现在你想做一些其他必要的工作.在Linux上是否有任何方法可以中断该应用程序并检查其状态,以便稍后可以从它被中断的状态恢复?
特别是我对一种方法很感兴趣,可以在另一台机器上停止并重新启动应用程序.这也可能吗?
一般而言,检查点进程并非完全可能(因为进程不仅是一个地址空间,还有其他资源,如文件描述符和TCP/IP套接字......).
在实践中,您可以使用一些检查点库,如BLCR等.在某些限制条件下,您可以将检查点图像从一个系统迁移到另一个系统(非常类似于源系统:相同内核,相同版本的库和编译器)等).
也可以在虚拟机级别迁移映像.其中一些非常好.
您还可以使用自己的检查点设备设计和实施您的软件.然后,您应该考虑使用垃圾收集技术和术语.另请参阅 Emacs(或Xemacs)unexec.c文件(与机器有很大关系).
一些语言实现和运行时具有检查点原语.SBCL(一个免费的Common Lisp实现)能够保存核心映像并在以后重新启动它.SML/NJ能够导出图像.Squeak(Smalltalk实现)也具备这种能力.
作为检查点的另一个例子,GCC编译器实际上能够*.h通过使用持久性技术编译单个头(进入预编译的头文件,这是GCC堆的持久图像).
了解更多关于正交持久性.它也是一个研究课题.序列化也是相关的(您可能希望使用JSON,YAML,XML等文本格式).您也可以使用休眠技术(在整个系统级别).