В общих чертах контрольная точка процесса не является полностью возможной (поскольку процесс является не только адресным пространством, но также имеет другие ресурсы, как файловые дескрипторы и сокеты TCP/IP ...).
На практике вы можете использовать некоторые библиотеки контрольных точек, такие как BLCR и т. Д. С определенными предельными условиями вы можете перенести изображение контрольной точки из одной системы в другую (очень похоже на исходную: одно и то же ядро, те же версии библиотек & составителей и т. д.).
Миграция изображений также возможна на уровне virtual machine. Некоторые из них неплохо подходят для этого.
Вы также можете проектировать и реализовывать свое программное обеспечение с помощью собственного контрольно-измерительного оборудования. Затем вы должны подумать об использовании методов и терминологии garbage collection. Посмотрите также на Emacs (или Xemacs) unexec.c файл (который сильно зависит от машины).
Выполнение некоторых языков & Среда выполнения имеет контрольные точки. SBCL (бесплатная реализация Common Lisp) способна к save a core image и перезапустить его позже. SML/NJ способен export an image. Squeak (реализация Smalltalk) также имеет такую способность.
Как другой пример контрольной точки, компилятор GCC фактически может скомпилировать один заголовок *.h
(в предварительно скомпилированный заголовочный файл, который является постоянным изображением кучи GCC), используя persistence techniques.
Подробнее о orthogonal persistence. Это также предмет исследования. serialization также применим (и вы можете использовать текстовые форматы à la JSON, YAML, XML, ...). Вы также можете использовать методы hibernation (на всем уровне системы).
Кроме Linux DragonFlyBSD может сделать это изначально: HTTP: // WWW .dragonflybsd.org/features/ – kworr