1 进程迁移的目的
分布式系统的特点之一是允许信息在系统中移动,但有的系统只允许数据(文件、数据库记录等)在系统中迁移,有的系统只允许还未开始执行的任务进行迁移,有的系统允许处于运行状态的任务进行迁移,最后一种情况被称为“进程迁移”。进程迁移是一种在松藕合的分布式系统中,将正在某处理机(源处理机)上运行的进程传送到另外的处理机(目的处理机)上,并使进程在目的机上从“断点”起继续运行的方法。在分布式操作系统中,进程迁移可以提高系统的负载平衡和实现容错性、减少通信负载等。
实现负载均衡。提高分布式系统整体性能的一条途径是将系统负载尽可能均匀地分布到系统中各个处理机上,也即实现动态负载均衡或动态负载共享,这样能提高系统的并行度,加快运行速度,从而改善系统的整体性能。
实现高效率容错。在分布式系统中,当一个主机发生故障时,则需将该主机正在运行的进程给予迁移。否则,如果主机正在运行的是某些关键进程,则这样有可能导致系统任务的错误运行,后果将不堪设想。
2 进程迁移机制
为了实现进程迁移,在分布式系统中必须建立相应的进程迁移机制。该机制应该解决这样几个问题:一是由谁来发动进程迁移;二是应迁移进程的哪些部分;三是如何进行迁移;四是对尚未完成的报文和消息应如何处理。
2.1 进程迁移的启动
由谁来启动进程迁移,取决于在设计进程迁移机制时所要达到的目标,一下就两种情况分别讨论。
如果其目标是为了均衡负荷,则在进程迁移机制中,应为各个系统配置系统负载监视模块,并指定其中之一为主控模块。主控模块定时地与各系统中的监视模块交互有关系统负荷情况的信息。当它发现有些系统非常忙碌,有许多进程在等待处理,而同时有些系统的处理机却在空闲着,此时主控负载监视模块便可启动进程迁移,即由它向负载沉重的系统发出命令,令该系统将其中若干个进程迁移到负载较轻的系统中去。
如果进程迁移的目标是为迁移的进程能获得其所需的特