分布式系统中的进程迁移

本文探讨了分布式系统中进程迁移的目的,如负载均衡和容错性。介绍了进程迁移机制的启动,包括由系统或进程自身启动的情况。详细阐述了进程迁移过程,特别是进程控制块的迁移和地址空间的处理策略。还讨论了三种常见的进程迁移算法:贪婪拷贝、惰性拷贝和预拷贝算法,分析了它们的优缺点。进程迁移是实现分布式系统高效运行和容错的关键技术。
部署运行你感兴趣的模型镜像
1 进程迁移的目的

分布式系统的特点之一是允许信息在系统中移动,但有的系统只允许数据(文件、数据库记录等)在系统中迁移,有的系统只允许还未开始执行的任务进行迁移,有的系统允许处于运行状态的任务进行迁移,最后一种情况被称为“进程迁移”。进程迁移是一种在松藕合的分布式系统中,将正在某处理机(源处理机)上运行的进程传送到另外的处理机(目的处理机)上,并使进程在目的机上从“断点”起继续运行的方法。在分布式操作系统中,进程迁移可以提高系统的负载平衡和实现容错性、减少通信负载等。

实现负载均衡。提高分布式系统整体性能的一条途径是将系统负载尽可能均匀地分布到系统中各个处理机上,也即实现动态负载均衡或动态负载共享,这样能提高系统的并行度,加快运行速度,从而改善系统的整体性能。

实现高效率容错。在分布式系统中,当一个主机发生故障时,则需将该主机正在运行的进程给予迁移。否则,如果主机正在运行的是某些关键进程,则这样有可能导致系统任务的错误运行,后果将不堪设想。

2 进程迁移机制

为了实现进程迁移,在分布式系统中必须建立相应的进程迁移机制。该机制应该解决这样几个问题:一是由谁来发动进程迁移;二是应迁移进程的哪些部分;三是如何进行迁移;四是对尚未完成的报文和消息应如何处理。

2.1 进程迁移的启动

由谁来启动进程迁移,取决于在设计进程迁移机制时所要达到的目标,一下就两种情况分别讨论。

如果其目标是为了均衡负荷,则在进程迁移机制中,应为各个系统配置系统负载监视模块,并指定其中之一为主控模块。主控模块定时地与各系统中的监视模块交互有关系统负荷情况的信息。当它发现有些系统非常忙碌,有许多进程在等待处理,而同时有些系统的处理机却在空闲着,此时主控负载监视模块便可启动进程迁移,即由它向负载沉重的系统发出命令,令该系统将其中若干个进程迁移到负载较轻的系统中去。

如果进程迁移的目标是为迁移的进程能获得其所需的特殊资源,则可由需要特殊资源的进程来启动迁移。这时,须由该进程提出所需的特殊资源在哪个系统,进程本身希望迁移到哪个系统。这种由进程自身来决定是否要进行的迁移称为自迁移。

2.2 进程迁移过程

在进程进行迁移时,应将源系统中的已迁移的进程撤消,在目标系统中建立一个相同的新进程,此即所谓的进程迁移,而不是进程复制。因此,进程映像至少包括进程控制块是必须需要迁移的,另外这个进程与其他进程间的任何链接也必须更新。

进程控制块的移动是很简单的,从执行角度看,困难在于进程的地址空间和进程打开的文件。假设进程地址空间使用分段或分页虚拟存储策略,有两种解决方法:一是在迁移时传送整个地址空间,在原来的系统中找不到关于该进程的相关信息,但是如果进程并不是地址空间中的大部分,那么这种方法可能太过昂贵;二是仅传送那些在主存中的地址空间部分,虚拟空间中的段仅在需要时传送,这个方法使得传送的数据量最少,但需要源处理机在进程生存期间不断修改段表或页表。

2.3 进程迁移的算法

进程迁移算法目前主要有贪婪拷贝算法、惰性拷贝算法和预拷贝算法等。这几种算法的不同点主要体现在三个方面:需从源主机上传输多少状态到目标主机;何时挂起在源主机上运行的进程;何时启动在目标主机上的进程。

2.3.1贪婪拷贝算法(Eager Copy)

该算法先挂起源主机进程,然后传输进程的全部状态(包括一些打开的文件、执行状态等)到目标主机后,再启动目标主机进程。这种算法简单,易于实现,但有两处不足:延时较长,这对于实时系统是不可接受的;有些冗余的数据传输到目标主机后,实际并没有用上,造成网络负担。

2.3.2惰性拷贝算法(Lazy Copy)

该算法先传输进程在目标主机上重新执行所需要的最小相关的信息。比起贪婪拷贝算法,它传输的是必需的最少量的状态集合,然后在主机上启动。这些信息通常是进程的部分或全部的核心数据和一小部分(二、三页)地址空间。当进程在目标主机上执行需要其余的状态信息时,再传输这些信息。其优点是:延迟小;减少网络负担。其缺点表现在这种拷贝算法导致对源主机的剩余依赖性,因此不能提高系统的可靠性。

2.3.3预拷贝算法(Pre-Copy)

与前面两种算法不同的是,预拷贝算法在进程的部分或全部地址空间从源主机传输到目标主机上完毕时,源主机才挂起进程并且传输核心数据。也就是说,当进程在源主机上执行时,并行传输地址空间到目标主机上。进程挂起后在传输的核心数据(包括打开的文件、执行状态、当前目录等)和一些先前已经传输的后被改变的地址空间一起传输到目标主机上。这样就会产生一个问题:这种算法虽然降低了进程挂起的时间,避免因挂起时间长而导致的开销和错误,但是却将把某些信息拷贝两次,总的传输时间反而增长。

3 结束语

分布式系统及其进程迁移是国际上比较活跃的研究课题之一,其设计思想目前仍在许多学者和科技工作者的进一步深入研究中。分布式系统比起其它计算机系统的显著优越在于其多机合作和坚强性。多机合作是自动的任务分配与协调,坚强性则体现在当系统中的一台或几台计算机的通路发生故障时,系统可以继续其失效部分的或全部的工作。进程迁移正是这种多机合作和坚强性的重要体现和实现手段,它使系统尽可能地实现了高效率的负载均衡和任务容错性。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

内容概要:本文介绍了一个关于超声谐波成像中幅度调制聚焦超声所引起全场位移和应变的分析模型,并提供了基于Matlab的代码实现。该模型旨在精确模拟和分析在超声谐波成像过程中,由于幅度调制聚焦超声作用于生物组织时产生的力学效应,包括全场的位移与应变分布,从而为医学成像和治疗提供理论支持和技术超声谐波成像中幅度调制聚焦超声引起的全场位移和应变的分析模型(Matlab代码实现)手段。文中详细阐述了模型构建的物理基础、数学推导过程以及Matlab仿真流程,具有较强的理论深度与工程应用价值。; 适合人群:具备一定声学、生物医学工程或力学背景,熟悉Matlab编程,从事医学成像、超声技术或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于超声弹性成像中的力学建模与仿真分析;②支持高强度聚焦超声(HIFU)治疗中的组织响应预测;③作为教学案例帮助理解超声与组织相互作用的物理机制;④为相关科研项目提供可复用的Matlab代码框架。; 阅读建议:建议读者结合超声物理和连续介质力学基础知识进行学习,重点关注模型假设、偏微分方程的数值求解方法及Matlab实现细节,建议动手运行并修改代码以加深理解,同时可拓展应用于其他超声成像或治疗场景的仿真研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值