分布式进程管理.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式进程管理.ppt

第10章 分布式进程管理 清华大学 本章知识点: 10.1 进程迁移 10.2 分布式全局状态 10.3 分布式进程管理——互斥 10.4 分布式死锁处理 10.1 进程迁移 进程迁移就是将一个进程的状态,从一台机器(源机)转移到另一台机器(目标机)上,从而使该进程能在目标机上执行。 这个概念主要来自于对大量互连系统间负载平衡方法的研究,但其应用已超出了这个领域。 10.1.1 进程迁移的动机 进程迁移在分布式操作系统中很重要,主要有以下几个原因: ① 负载共享。通过将进程从负载较重的节点迁移到负载较轻的节点,使系统负载达到平衡,从而提高整体执行效率。 ② 减少通信开销。可以将相互间紧密作用的进程迁移到同一节点,以减少它们相互作用期间的通信耗费。 ③ 可获得性。运行时间较长的进程在出现错误时可能需要迁移。那么,一个想继续的进程既可以迁移到另外的系统,也可以推迟运行,待错误恢复后在当前系统中重新开始。 ④ 利用特定资源。 10.1.2 进程迁移机制 在设计一个进程迁移机制时要考虑许多问题,其中包括: ① 由谁来激发迁移? ② 进程的哪一部分被迁移? 如何进行迁移? ③ 如何处理未完成的消息和信号? 10.1.2 进程迁移机制 1. 迁移激发 由谁激发迁移取决于迁移机制的目的。 若其目的在于负载平衡,那么,通常由操作系统中掌管系统负载的组件决定什么时候进行迁移; 若其目的在于获得特定资源,那么,可由需要资源的进程自行决定何时进行迁移,这种迁移也称为自迁移(Self-migration)。 对前一种情况,整个迁移作用以及多系统的存在,对进程都可以是透明的;对后一种情况,进程必须了解分布式系统的分布情况。 10.1.2 进程迁移机制 2. 迁移什么 当迁移一个进程时,必须在源系统上破坏该进程,并在目标系统上建立它。这才是进程的移动,而不是复制进程。 因此,进程映像,至少包括进程控制块,必须移动。另外,这个进程与其他进程间的任何链接也必须更新。 10.1.2 进程迁移机制 进程迁移举例: 10.1.2 进程迁移机制 从执行的角度看,进程控制块移动的困难之处在于进程地址空间的传送和进程打开文件的传送。考虑第一个问题——进程地址空间的传送,假设用虚拟存储策略(分段或分页),有两种方法: ① 迁移时传送整个地址空间。 ② 仅传送那些在主存中的地址空间部分,在需要时再传送虚拟地址空间中的段。 10.1.2 进程迁移机制 3. 消息和信号处理 对于那些未完成的消息和信号,可通过一种机制进行处理:在迁移进行时,暂时存储那些完成的消息和信号,然后将它们直接送到新的目的地,有必要在迁移出发的位置将正在发出的信息维持一段时间,以确保所有的未完成消息和信号都被传送到目的地。 10.1.3. 一种迁移方案 下面讨论在IBM的AIX操作系统上的一种迁移机制,它是自我迁移的典型代表。AIX操作系统是一种分布式的UNIX操作系统,在LOCUS操作系统上可得到类似的机制。实际上,AIX系统是对LOCUS的改进。 10.1.3. 一种迁移方案 迁移按以下事件序列进行: ① 当进程决定迁移自身时,它选择一个目标机,发送一个远程消息,该消息带有进程的部分映像及打开文件信息。 ② 在接收端,内核服务进程生成一个后代,将这个信息交给它。 ③ 这个新进程收集完成其操作所需的数据、环境、自变量及栈信息。如果程序文本是不纯的,那么它是被拷贝过来的;如果是纯的,那么它就是全局文件系统所要求的页面。 ④ 迁移完成时通知源进程,源进程就发送一个最后完成消息给新进程,然后破坏自己。 10.1.4 进程迁移的协商 进程迁移涉及到进程迁移的决定,在某些情况下,由单个实体作决定。但是,有些系统允许指定的目标系统参与作决定,主要是为了保持对用户的响应时间。 Charlotte采用的是迁移协商(Negotiation of Migration)机制,是由若干个Starter进程负责迁移策略(什么时候将哪个进程迁移到什么地方),及作业调度和内存分配。因此,Starter可以在这3方面进行协调,每个Starter进程可以控制一簇机器,Starter从它控制的每台机器的内核获取当时的详细负载统计信息。 10.1.4 进程迁移的协商 必须由两个Starter进程联合来决定迁移,按以下步骤进行: ① 由控制源系统S的Starter决定将进程P迁移到特定的目标系统D,它发送一个消息给D的Starter,要求传送。 ② 如果D的Starter准备接受进程P,就回复一个肯定的确认。 ③ S的Starter通过服务请求的方式将这个决定传给S的内核,或者将消息传给S机上的KernJob(KJ)进程,将来自远程进程的消息转换成服务请求。 ④ S的内核将进程

您可能关注的文档

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档