En informatique, la migration de processus est une forme spécialisée de gestion de processus par laquelle les processus sont déplacés d'un environnement informatique à un autre. Cette méthode trouve son origine dans l'informatique distribuée , mais elle est désormais utilisée plus largement. Sur les machines multicœurs (plusieurs cœurs sur un ou plusieurs processeurs), la migration de processus se produit dans le cadre standard de la planification des processus , et il est assez facile de migrer un processus au sein d'une machine donnée, car la plupart des ressources (mémoire, fichiers, sockets) n'ont pas besoin d'être modifiées, seul le contexte d'exécution (principalement le compteur de programme et les registres) doit être modifié.
La forme traditionnelle de migration de processus se présente sous la forme de clusters informatiques , où les processus sont déplacés d'une machine à une autre, ce qui est nettement plus difficile, car cela nécessite de sérialiser l' image du processus et de migrer ou de réacquérir des ressources sur la nouvelle machine. La première mise en œuvre de la migration de processus a eu lieu dans le cadre du projet d'exploitation DEMOS/MP de l' Université de Californie à Berkeley et a été décrite dans un article de 1983 par Barton Miller et Michael Powell. La migration de processus est mise en œuvre, entre autres, dans OpenMosix et le système d'exploitation Sprite de l' Université de Californie à Berkeley .
Variétés
La migration des processus informatiques se décline en deux versions :
- Migration de processus non préemptive
- Migration de processus qui a lieu avant le début de l'exécution du processus (c'est-à-dire migration dans laquelle un processus n'a pas besoin d'être préempté ). Ce type de migration de processus est relativement peu coûteux, car les frais administratifs impliqués sont relativement faibles.
- Migration préventive des processus
- Migration de processus par laquelle un processus est préempté, migré et continue son traitement dans un environnement d'exécution différent. Ce type de migration de processus est relativement coûteux, car il implique l'enregistrement, la migration et la recréation de l'état du processus ainsi que la reconstruction de tous les canaux de communication interprocessus auxquels le processus migrant est connecté.
Problèmes
Plusieurs problèmes surviennent lorsqu'un processus en cours d'exécution se déplace vers une autre machine. Certains de ces problèmes sont les suivants :
Redirection d'E/S : si un processus effectue des E/S sur des fichiers ou des périphériques liés à une certaine machine, il doit exister un moyen de rediriger l'accès à ces ressources même après la migration du processus. Cela implique la redirection du flux de données d'E/S sur le réseau et présente des inconvénients en termes de sécurité, de performances et de fiabilité.
Communication interprocessus : les messages envoyés à un processus avec l'ID de processus P sur une machine M doivent être redirigés vers la nouvelle machine N et le nouvel ID de processus Q. La machine à partir de laquelle le processus a migré doit conserver des enregistrements des processus migrés. Si plusieurs migrations se produisent, la surcharge augmente.
Mémoire partagée : si l'un des processus coopérants d'un groupe migre et que tous ces processus utilisent un segment de mémoire partagée, le réseau doit être utilisé pour émuler l'accès à la mémoire partagée. Cela ajoute de la complexité et ralentit considérablement l'accès à la mémoire partagée pour les processus qui ont migré hors de la machine qui héberge la mémoire partagée. Le phénomène selon lequel un ordinateur hôte doit fournir des services à un processus qui a migré hors de la machine est appelé dépendance résiduelle.
Outre les problèmes mentionnés ci-dessus, les systèmes d'exploitation basés sur des processus conservent généralement une variété de tables et d'états pour les processus en cours d'exécution. Il n'existe pas de moyen simple de récupérer toutes les informations administratives sur un processus dans une simple séquence d'opérations de copie. En fonction de l'exécution du processus, les tables doivent être recherchées, copiées, modifiées et rétablies sur le système de destination. Par conséquent, la réplication de l'état des processus n'est pas une tâche simple.
Référence http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html
Conception de circuits intégrés
Une autre définition de la migration de processus est utilisée dans la conception et l'ingénierie des circuits intégrés . La migration de processus ou la migration de configuration dans ce contexte est un flux de conception visant à modifier et à réduire une configuration de circuit intégré existante vers un nouveau nœud de technologie de processus. La mise en œuvre d'une migration de processus peut être effectuée manuellement en redessinant la configuration fonction par fonction ou par des outils EDA / CAO automatiques . Dans les systèmes de partage de charge, un processus est migré d'un nœud à un autre à l'aide d'un mécanisme appelé migration de processus.
Le concept de processus n'est pas introduit dans ce rapport car les processus sont une conception bien connue des systèmes d'exploitation. La migration de processus fait référence à la mobilité des processus en cours d'exécution (ou suspendus) dans un environnement informatique distribué. En général, ce terme indique qu'un processus utilise un réseau pour migrer vers une autre machine afin d'y poursuivre son exécution. Parfois, le terme est utilisé pour décrire le changement d'exécution d'un processeur à un autre processeur au sein de la même machine.