written 7.7 years ago by | • modified 7.7 years ago |
Mumbai University > Information Technology > Sem 6 > Distributed System
Marks: 10 Marks
Year: May 2016
written 7.7 years ago by | • modified 7.7 years ago |
Mumbai University > Information Technology > Sem 6 > Distributed System
Marks: 10 Marks
Year: May 2016
written 7.7 years ago by | • modified 7.7 years ago |
Distributed systems are constructed on a heterogeneous collection of platforms, each having their own operating system and machine architecture.
Migration in such systems requires that each platform is supported, that is, that the code segment can be executed on each platform, perhaps after recompiling the original source.
Problems can be somewhat alleviated when dealing only with weak mobility.In that case, there is basically no runtime information that needs to be transferred between machines, so that it suffices to compile the source code, but generate different code segments, one for each potential target platform.
In the case of strong mobility, the major problem that needs to be solved is the transfer of the execution segment. The problem is that this segment is highly dependent on the platform on which the process is being executed. In fact, only when the target machine has the same architecture and is running exactly the same operating system, is it possible to migrate the execution segment without having to alter it.
The important observation is that if we can avoid having execution depend on platform-specific data, it would be much easier to transfer the segment to a different machine, and resume execution there.
A solution that works for procedural languages such as C and Java is shown in Fig. and works as follows.
The marshaled data are then pushed onto the migration stack, along with an identifier for the called subroutine. In addition, the address where execution should continue when the caller returns from the subroutine is pushed in the form of a jump label onto the migration stack as well.
Fig :The principle of maintaining a migration stack to support migration of an execution segment in a heterogeneous environment.