论文部分内容阅读
分布式系统是充分利用现有计算机资源的一个很好的解决方案。而要让分布式系统获得良好的负载平衡、高通信性能、高可用性等特性,进程迁移功能是不可或缺的。 分布式操作系统涉及到多个方面的工作,如:进程管理和调度、进程间通信、存储管理、并发控制、文件系统、事务处理、时钟同步、安全机制等。本论文的研究范围是针对分布式进程管理和调度的目标之一:“负载分布”。 负载分布(Load Distribution)的目标是有效地利用分布式系统中的资源。这一目标可以表述为“负载平衡”(Load Balancing)——它是指在整个系统中尽量平均分配工作量,或者表述为“负载分担”(Load Sharing)——它是指仅仅尽力帮助那些已经超负荷工作的资源。前者的要求比后者更严格。在本文中,我们讨论“负载平衡”。 负载平衡的实现方法就是“进程迁移”(Process Migration)——即将进程及其所有的相关状态信息重新放置到另一个处理器上。事实上,通过将进程从负载较重的系统移动到负载较轻的系统,负载就会得到平衡,从而改善整体性能。 为了实现负载平衡,我们需要做三个方面的工作:收集和监控分布式系统中各处理器的负载信息;掌握各进程信息,以决定何时需要迁移哪个进程到什么位置;进行进程迁移。 文中讨论了在Linux操作系统的基础上为分布式系统提供进程迁移功能所需要的“负载信息管理”、“分布式调度”、“进程迁移机制”三个模块的设计和实现。 其中,通过对现有的相关工作的分析和比较,提出了对动态进程迁移算法的改进方案。通过对Linux核心的修改,和Global Operation模块的增添,为用户提供了一个“透明”的具有进程迁移功能的分布式操作系统接口。设计了一套迁移协议,使客户机与服务器能提供一致的进程观点和透明的远程执行,并处理了网络失败和节点失败两类错误。 最终完成预定设计目标,使用并行编译任务验证其有效性并给出性能比较数据。