- Process migration is the relocation of a process from its source node to another destination node.
- The way a process migrates from one node to another is shown in the figure below.
- A process can either be migrated before it starts execution on its source node which is called as non-preemptive process or during the course of its execution that is known as preemptive process migration.
- Preemptive process migration is more costly compared to non-preemptive because the process environment must accompany the process to its new node.
- Steps involved in process migration:
i. Process is selected for migration.
ii. Select destination node for the process to be migrated.
iii. Transfer of selected process to the destination node.
- Migration policy is responsible for first two steps while third step is handles by migration mechanism.
- Migration of a process is complex that involves handling various activities to meet the requirements for a good process migration.
- The sub activities involved are:
i. Freezing the process on its source node and restaring it on destination node
ii. Transferring the processes address space from restarting from its source to destination node.
iii. Forwarding messages meant for the migrant process.
iv. Handling communication between processes that have been placed at different nodes.
- A preemptive process migration facility allows the transfer of an executing process from one node to another. On the other hand, in system supporting only non-preemptive migration facility, a process can only be transferred prior to beginning its execution.
- Preemptive process migration is costlier than non-preemptive process migration since the process state, which must accompany the process to its new node, becomes much more complex after execution begins.