高级操控系统教材第三课分布式进程管理.pptVIP

高级操控系统教材第三课分布式进程管理.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 分布式进程管理 线程 代码迁移 处理器任务分配 软件代理 进 程 线 程 未引入线程前的进程:资源分配单位(存储器、文件)和CPU调度(分配)单位。 线程:成为CPU调度单位,而进程只作为其他资源分配单位。 线程只拥有必不可少的资源,如:线程状态、寄存器上下文和栈 同样具有就绪、阻塞和执行三种基本状态 所有线程必须同时挂起,进程的终止导致它包含的所有线程的终止 线程的优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并发程度。 线程的创建时间比进程短; 线程的终止时间比进程短; 同进程内的线程切换时间比进程短; 由于同进程内线程间共享内存和文件资源,可直接进行不通过内核的通信; 进程和线程的比较 地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享该进程地址空间和其他资源--某进程内的线程在其他进程不可见 通信:进程间通信通过IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信--需要进程同步和互斥手段的辅助,以保证数据的一致性 调度:线程上下文切换比进程上下文切换要快得多; 结论: 多线程能提高性能 线程不像进程那样彼此隔离,并受到系统自动提供的保护,因此多线程应用程序开发需要付出更多努力 非分布式系统中线程的使用 使用多线程的优点: 在某线程阻塞时,其他线程可以继续工作 利用多处理器,并行工作 缩短IPC通信的时间 出于软件工程的考虑:字处理程序(用户输入、拼写检查、语法检查、文档布局) 非分布式系统中线程的使用 IPC导致的进程上下文切换 线程实现 用户级线程 内核级线程 组合的方法 用户级线程 有关线程管理的所有工作由应用程序通过线程库完成,内核不知道线程的存在 应用程序和它的线程被分配给内核管理下的进程 优点: 创建和销毁线程的开销很小 线程切换不需要内核模式特权,节省切换开销 调度策略可以是应用程序特定的 用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程 缺点: 一个线程被阻塞时,进程中所有线程都被阻塞 一个多线程应用程序不能利用多处理技术,内核一次只把一个进程分配给一个处理机 内核级线程 W2K, Linux, OS/2采用 有关线程管理的所有工作由内核完成 优点: 同一进程内线程可被分配到不同处理器上 一线程被阻塞,可切换到另一线程 缺点: 系统开销大 组合的方法 Solaris(最成功、应用最广泛的商业UNIX版本)操作系统采用 结合前两种线程优点,同时减少其缺点 线程创建完全在用户空间完成,线程调度和同步在应用程序内进行 n个用户级线程被映射到一些(少于n个)内核级线程上,程序员可为应用程序和机器调整内核级线程数目,以达到最佳效果 组合的方法 分布式系统中线程的使用 多线程客户:Web浏览器 多线程服务器 多线程服务器 以分发器/工作者组织的多线程服务器 代码迁移 定义:将程序(或执行中的程序)传递到其它计算机 迁移动机: 实现负载均衡 将进程从负载重的系统迁移到负载轻的系统,从而改善整体性能 改善通信性能 交互密集的进程可迁移到同一个节点执行以减少通信开销 当进程要处理的数据量较大时,最好将进程迁移到数据所在的节点 代码迁移 可用性 需长期运行的进程可能因为当前运行机器要关闭而需要迁移 使用特殊功能 可以充分利用特定节点上独有的硬件或软件功能 代码迁移-灵活性 客户首先获取必需的软件,然后调用服务器 代码迁移模型 代码迁移的不同方法 进程组成: 代码段:正在运行的程序的所有指令 资源段:包含进程需要的外部资源的指针 执行段:存储进程的当前执行状态量:私有数据、堆栈和程序计数器 弱可移动性与强可移动性 弱可移动性:只能传输代码段以及某些初始化数据,程序以初始状态重新执行,简单 强可移动性:还可以传输执行段,较难实现 发送者启动与接收者启动 发送者启动:计算服务器,客户需要访问服务器资源,客户端需要注册验证 接收者启动:可以是匿名的,Java applet,提高客户端性能 迁移与本地资源 MV:移动资源 GR:建立全局系统范围内引用 CP:复制资源的值 RB:将进程重新绑定到本地同类型资源 处理器任务分配 分配算法的设计原则 分配算法的实现问题 分配算法实例 分配算法的设计原则 分配算法的设计原则: 确定性算法和启发性算法 集中式算法和分布式算法 最优化算法和次优化算法 局部性算法和全局性算法 发送者启动算法和接收者启动算法 局部性算法和全局性算法 第四个设计问题与迁移策略有关。 当一个新进程被创建时,系统需要决定它是否在创建它的机器上运行。若该机器繁忙,那这个新进程就必须迁移到其它机器上去运行。 对于是根据本机局部信息还是全局信息来决定新进程是否迁移,目前存在着两种学派。 1)一种

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档