- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级操作系统方案
⾼级操作系统
3. 分布式进程与处理机
3.1 系统模型
熊焰,yxiong@
⻩⽂超, huangwc@
/~huangwc/advancedos
参考书⽬:《分布式操作系统》,《分布式系统原理与范型》
本章内容
1. 分布式系统模型
2. 分布式处理机分配
3. 分布式进程调度
4. 分布式系统容错
5. 实时分布式系统
3. 分布式进程调度
• 常⻅⽅式:每个处理机只是进⾏⾃⼰的本地进程调度,
⽽不管其它处理机正在⼲什么
• 问题:某些情况下很低效
• ⽐如:⼀组相关的、彼此需要通讯的进程在不同
的处理机上运⾏
在分布式操作系统中,每个处理机只是进⾏⾃⼰的本地进程调度(假定它上⾯有多个进程在运⾏),⽽不管其它处理机正在⼲什么。在⼤多数情况下,这种⽅式⼯作
得很好。但是,当⼀组相关的、彼此需要通讯的进程在不同的处理机上运⾏,那么,各⾃独⽴的进程调度就不是最有效的⽅法了。
3. 分布式进程调度
• 例:
• A与B运⾏在⼀个处理机上
• C与D在另⼀个处理机上
• A要给D发送多个消息
• ⼀个消息交换需要花费2个时间⽚
我们可以⽤⼀个例⼦来说明独⽴本地进程调度所产⽣的问题。进程A和进程B运⾏在⼀个处理机上,⽽进程C和进程D在另⼀个处理机上运⾏。每⼀个处理机都是以100
毫秒为⼀个时间⽚进⾏分时处理的。进程A和C在奇数时间⽚中运⾏,⽽B和D在偶数时间⽚中运⾏,假定进程A要给D发送多个消息。在时间⽚1,A启动运⾏并且⽴即发送⼀
个消息给进程D,但C正在运⾏,⽽D不在运⾏。在100毫秒之后进程切换了,进程D被调度运⾏,它接到了进程A发来的消息并⽴即回送⼀个应答消息。因为进程B正在运
⾏,故进程A只有在100毫秒之后才能收到 这个应答消息。这就是说,⼀个消息交换需要花费200毫秒的时间。因此,需要⼀个协同进程调度算法来保证相互通信的进程能够
同步执⾏。
3. 分布式进程调度
• 解决⽅法:
• 同时启动⼀组相互联系的进程
• John K. Ousterhout: Scheduling Techniques for
Concurrebt Systems. ICDCS 1982: 22-30, 引⽤次
数:703
尽管动态地确定进程之间的通信⽐较困难,但在⼤多数情况下,我们可以同时启动⼀组相互联系的进程。例如,通常UNIX管道中过滤器之间的通信⽐它们与其它进程之间的
通信要多。我们假定进程都是成组创建的,并且组内进程之间的通信要⽐组间进程之间的通信多得多。我们可以进⼀步地假定系统有⾜够多的处理机来处理最⼤的⼀组进程,
并且每⼀个处理机都是具有N个时间⽚的多进程处理机。
Ousterhout在1982年提出了⼀个基于协同调度概念的算法,该算法在调度时考虑了进程间的通信以此来保证同⼀组中的所有进程都在同⼀个时间⽚内同时运⾏。
3. 分布式进程调度
处理机
0 1 2 3 4 5 6 7
文档评论(0)