En termes généraux, le point de contrôle d'un processus n'est pas entièrement possible (parce qu'un processus n'est pas seulement un espace d'adressage, mais a aussi d'autres ressources comme des descripteurs de fichiers, des sockets TCP/IP ...).
En pratique, vous pouvez utiliser certaines bibliothèques de pointage comme BLCR etc. Sous certaines conditions, il est possible de migrer une image de point de contrôle d'un système à un autre (très similaire au système source : même noyau, mêmes versions des bibliothèques et compilateurs, etc.)
La migration des images est également possible au niveau du machine virtuelle niveau. Certains d'entre eux sont très bons pour cela.
Vous pouvez également concevoir et mettre en œuvre votre logiciel avec vos propres mécanismes de contrôle. Dans ce cas, vous devriez penser à utiliser collecte des déchets les techniques et la terminologie. Regardez aussi dans Emacs (ou Xemacs ) unexec.c (qui dépend fortement de la machine).
L'implémentation et l'exécution de certains langages ont des primitives de point de contrôle. SBCL (une implémentation libre de Common Lisp) est capable de sauvegarder une image de base et le redémarrer plus tard. SML/NJ est capable de exporter une image . Grincement (une implémentation de Smalltalk) possède également une telle capacité.
Comme autre exemple de point de contrôle, le compilateur GCC est en fait capable de compiler un simple *.h
(dans un fichier d'en-tête pré-compilé qui est une image persistante du tas de GCC) en utilisant techniques de persistance .
Plus d'informations sur persistance orthogonale . C'est aussi un sujet de recherche. sérialisation est également pertinent (et vous pourriez vouloir utiliser des formats textuels à la JSON, YAML, XML, ...). Vous pouvez également utiliser hibernation (au niveau de l'ensemble du système).