 Hello and welcome to the session on Process Migration in Distributed Computing Environment. At the end of this session, students will be able to uniquely identify process migration in distributed computing environment. In a conventional centralized operating system, process management deals with mechanisms and policies for sharing the processor of the system among all processes. However, in a distributed operating system, the main goal of process management is to make the best possible use of processing resources of the entire system by sharing them among all processes. Three important concepts are used in distributed operating system to achieve this goal are processor allocation deals with the processes of deciding which process should be assigned to which processor. Process migration deals with the moment of a process from its current location to the processor to which it has been assigned. Threads deals with the fine-grained parallelism for better utilization of the processing capability of the system. Process migration is the relocation of a process from its current location like source destination to another node, the destination node. The flow of execution of a migration process is shown here. A process may be migrated either before it starts executing on its source node or during the course of its execution. The former is known as non-preemptive process migration and the latter is known as active process migration. Preemptive process migration is costlier than the non-preemptive process migration. Since the process environment must also accompany the process to its new node for an already existing process. Process migration involves the major steps. Selection of the process should be migrated. Second, the selection of the destination node to which the selected process should be migrated. Actual transfer of selected process to the destination node. A good process migration mechanism must possesses transparency, minimal interferences, minimal residue dependencies, efficiency, robustness and communication between co-processors. First, the transparency. The transparency is an important requirement for a system that supports process migration. The levels of transparencies can be identified here are object access level. Transparency at this object access level is the minimum requirement for a system to support non-preemptive process migration facility. If a system supports transparency at the object access level to access objects such as files and devices can be done in a location independent manner. Thus, the object access layer transparency allows free initiation of programs at an arbitrary node. To support transparency at object access, the system must provide a mechanism for transparent object naming and locating. Second, system call and inter-process communication level. A migrated process does not continue to depend upon its originating node after being migrated. It is necessary that all system calls including inter-process communication are location independent. Thus, transparency at this level must be provided in a system that is to support preemptive process migration facility. However, system calls to request the physical properties of a node need not be located independent. Transparency of inter-process communication is also desired for the transparent redirection of messages during the transient state of the process. Minimal interference. A migration of a process should cause minimal interference to the progress of the process involved and to the system as a whole. One method to achieve this by minimizing the freezing time of the process being migrated. Freezing time is defined as the time period for which the execution of the process is stopped for transferring its information to the destination node. Minimal residual dependencies. No residual dependency should be left on the previous node. That is, a migrated process should not in any way to continue to depend on its previous node once it has started executing on its new node. Otherwise, the following will occur. The migrated process continues to impose a load on its previous node, thus diminishing some of the benefits of migrating the process. A failure reboot of the previous node will cause the process to fail. Efficiency is another major issue in implementing process migration. The main source of inefficiency involved with the process migration are as follows. The time required for migrating a process. The cost of locating an object includes the migration process. The cost of supporting the remote execution once the process is migrated. All these costs be kept for minimum as far as practicable. Robustness. The process migration mechanism must also be robust in the sense that the failure of a node other than the one on which process is currently running should not in any way affect the accessibility for the execution of that process. Communication between co-processes of a job. One further exploitation of process migration is the parallel processing among the processes of a single job distributed over several nodes. Moreover, if this facility is supported to reduce communication costs, it is also necessary that these co-processes be able to directly communicate with each other irrespective of their location. Pause the video, think and answer. The logical extension of a computation migration is process migration. Migration of a process is complex activity that involves proper handling of several sub activities in order to meet the requirements of a good process migration mechanism. The four major sub activities involved in process migrations are freezing the process on its source node and restarting it on its destination node. Transferring the process address space from its source destination to its destination node. Forwarding messages made for the migrant process handling communication between co-operating processes that have been separated as a result of process migration. In preemptive process migration process is to take a snapshot of the processes state on its source node and reinstate the snapshot on the destination node. For this, at some point during the migration, the process is frozen on its source node. Its state information is transferred on its destination node using this state information. By freezing the process, it means that the execution of the process is suspended and all external interactions with the process are deferred. Although the freezing and restart operations differ from system to system, some general issues involved in these operations are as follows. Immediate and delayed blocking of the process. Before a process can be frozen, its execution must be blocked. Depending upon the process's current state, it may be blocked immediately or immediately or the blocking may have to be delayed until the process reaches a state when it can be blocked. Some typical cases are if the process is not executing a system call, it can be immediately blocked for further execution. If the process is an executive system call but it is sleeping at an interruptible priority waiting for a kernel event to occur, it can be immediately blocked from further execution. If the process is executing a system call and it is sleeping at a non-interruptible priority waiting for a kernel event to occur, it cannot be blocked immediately. The process blocking has to be delayed until the system call is complete. Therefore, in this situation, a flag is set telling the process that when the system call is complete, it should be blocked itself from further execution. Here is my reference. Thank you.