高级操作系统课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2019年7月19
感谢你的观看
3
4.2分布式处理机分配算法
处理机分配的基本模型、假定和目标: 1)关于处理器:
l 假定所有的机器都是相同的,至少是代码兼容的, 不同的只是运行速度。
l 有些还假定系统具有多个互不相关的处理机池,每 一个处理机池都是相同的。
2019年7月19
感谢你的观看
4
4.2分布式处理机分配算法
2019年7月19感谢你的观看324.2分布式处理机分配算法
l 不管是过载者启动的算法还是欠载者启动的算法,不 同的算法要采用不同的策略来决定谁收集信息、收集 时间多长以及如何处理收集的信息。
l 通常,所有的算法都假定每一台机器都知道它自己的 负载,也就是说,它可以判断自己是超载还是欠载, 并且能够告诉其它机器自己的负载。
务在同一个PE 上时的通信开销和在 不同PE 上时的通信开销。
2019年7月19
感谢你的观看
48
4.2分布式处理机分配算法
任务划分的粒度: 一个给定任务划分的粒度定义是任务分解中影响
通信开销的所有单元的平均尺度。根据数据单元的大 小,算法可以分成。
l 细粒度:数据单元小
l 粗粒度:数据单元大
l 中粒度:介于上述两者之间
2019年7月19
感谢你的观看
39
4.2分布式处理机分配算法
然而,Eager 等人在1986年所做的研究使追求低 复杂和最优的人们看到了希望。他们研究了三个算法。 在这三个算法中,所有的机器都测量自己的负载以判 断它是否超载。当一个新进程创建时,创建该进程的 机器就会检查自己是否超载,如果是,则它就寻找一 台欠载的远程机器去运行该进程。这三个算法的不同 之处在于寻找远程机器的方法。
有的研究者认为:如果减小通信延迟的好处抵 销了并行任务串行化的损失,就采用通信延迟最小 划分。
可以把一个划分问题转换成一个网络流问题, 将在后面的小节中讨论。
2019年7月19
感谢你的观看
51
4.2分布式处理机分配算法
任务复制,这是任务划分的一个可选方法: 主要思想是通过在PE上复制任务来降低通信开
2019年7月19
感谢你的观看
34
4.2分布式处理机分配算法
对度量方法1进行如下改进: 只计算正在运行或已经就绪进程的数量。 原因: l 每一个正在运行或处于就绪状态的进程都会给系统
增加一定的负载,即便它是一个后台进程。 存在的问题: l 许多后台守护进程只是定时被唤醒,检查所感兴趣
的事件是否发生,如果没有,则重新进入睡眠状态。 因此,这类进程只给系统带来很小的负载。
2019年7月19
感谢你的观看
31
4.2分布式处理机分配算法
l 过载者启动:由过载者来寻找迁移的目的机器
l 如图:一个机器超载时,它向其它机器发送求助请求,希望 将自己的一些新进程迁移到其它机器上运行。
l 欠载者启动:
l 当一个机器处于空闲状态即欠载状态时,由这台欠载机器来 宣布自己可以接收外来的工作。其的目的就是寻找一台可以 给自己增加一些额外工作的机器
感谢你的观看
46
4.2分布式处理机分配算法
任务优先图又称为有向无环图(DAG): 如图, l 每个链接:定义任务间的优先关系 l 节点上的标记:表示任务执行时间 l 链接上的标记:表示任务完成后启动后
续任务所需的时间间隔
2019年7月19
感谢你的观看
47
4.2分布式处理机分配算法
任务交互作用图: 如图: l 链接:定义两个任务间的相互关系 l 每个链接赋予一对数:表示这两个任
销。这个方法保留了任务原有的并行性;但是存储 空间要求和同步开销增加了。
可以利用任务复制来达到容错性,可以实现无 错调度以保证处理器出现错误时最后计算结果正确。
2019年7月19
感谢你的观看
52
4.2分布式处理机分配算法
任务划分被称做任务聚类,它强调在给定的图模 型中对小任务分类。任务划分把图当做一个整体,划 分成不同的类(颗粒)。不论任务划分还是任务聚类, 都生成一个颗粒集合。通常颗粒的数目等于处理器的 个数,以此简化下一步的任务分配程序。
2019年7月19
感谢你的观看
40
4.2分布式处理机分配算法
l 算法1 随机地选择一台机器,并把新创建的进程传送到
该机器上。如果该接收机器本身也超载,它也同样随 机地选择一台机器并把该进程传送过去。这个过程一 直持续到有一台欠载的机器接收它为止,或者指定计 数器溢出停止该进程的传送。
2019年7月19
2019年7月19
感谢你的观看
45
4.2分布式处理机分配算法
静态分配问题即便在简单地对计算开销和通信开 销做某种假设以后,依然是一个NP完全问题。因此, 可以利用数学工具如图、启发式规则来得到次优的解。 通常,用图模型表示任务和PE 结构。可以用任务优 先图或者任务交互作用图对任务集合建模。
2019年7月19
高级操作系统 Advanced Operating
System
xxx 中国科学技术大学计算机学院
2019年7月19
感谢你的观看
1
第四章 分布式进程和处理机管理
l 分布式系统模型 l 分布式处理机分配算法 l 分布式进程调度 l 分布式系统容错 l 实时分布式系统
2019年7月19
感谢你的观看
2
4.2 分布式处理机分配算法
l 然而,度量一台机器是否超载并不象它看上去那样简 单。
2019年7月19
感谢你的观看
33
4.2分布式处理机分配算法
负载度量方法1: 以机器上的进程数量作为机器的负载。 l 优点:简单
原因:只需要计算机器上的进程数量 l 缺点:用进程数量的多少来表示机器的负载是不确
切的,它几乎说明不了什么问题。 原因:即使在一台空闲机器上,仍然会有一些后台 监视进程在运行,例如,邮件、新闻、守护进程、 窗口管理程序以及其它一些进程。因此,
2)关于互连拓扑:
l 假定系统是完全互连的,即每一个处理机都可以与 其它任意一个处理机通信。
l 这并不表示每一个机器与其它任意一台机器之间都有 线路直接连接,这个假定只是意味着每一对机器都可 以互相通信。至于消息是如何从一台机器到达另一台 机器的问题只是低层通信软件的事,处理机分配算法 无需考虑。但有一些处理机分配算法利用了网络的广 播或者多播的特性。
2019年7月19
感谢你的观看
37
4.2分布式处理机分配算法
许多理论上的处理机分配算法都忽略了收集负载信息 以及传送进程的额外开销: l 若一个算法将一个新创建的进程传送到远程机器上运 行仅使系统性能提高10%左右,那它最好不要这样做, 原因是传送进程的开销足以抵消所提高的性能。
l 一个好的算法应该考虑算法本身所消耗的处理机时间、 内存使用、以及网络带宽等。但很少有算法能做到这 一点,因为它太难了。
2019年7月19
感谢你的观看
5
4.2分布式处理机分配算法
新进程的产生和处理机的分配: l 当一个运行中的进程决定创建一个子进程时,产生了
下列工作: l 在有些情况下,创建进程是由系统的命令解释程序
(即shell)来完成的。它为用户执行其指定的命 令所对应的程序。 l 而在另一些情况下,用户进程本身也可以创建一个 或者多个子进程,以获得较高的系统性能。 l 对新进程必须考虑分配到哪个处理器上运行
l 粒度的大小: 1)若太大,会降低并行度,因为潜在的并行任务可 能被划分进同一个任务而分配给一个处理器。 2)若太小,进程切换和通信的开销就会增加。
2019年7月19
感谢你的观看
49
4.2分布式处理机分配算法
任务划分的一个主要目标: 尽可能消除处理器间通信引起的开销。可以使用
三种方法: l 水平或者垂直划分。
处理机分配的理由:
l 分布式系统包括多个处理机,具有较大的分布处理 能力。
l 一个作业将产生多个任务或进程,它们需要分配在 多个处理机上并行执行,以充分利用分布式系统提 供的巨大处理能力。
因此,分布式系统需要一个良好的处理机分配算 法来决定每个进程或任务应分配到哪一个处理机上执 行,通常,这个算法被称为处理机分配算法或任务分 配算法(而不称作进程分配算法,尽管但两者的意思 完全相同)。
2019年7月19
感谢你的观看
38
4.2分布式处理机分配算法
在处理机分配算法实现中还必须考虑复杂性: 事实上,所有的研究者只分析、模拟或计算处理
机的利用率、网络的使用情况以及响应时间,以此来 衡量他们所提出算法的好坏。很少有人考虑软件的复 杂性对系统的性能、正确性和鲁棒性所产生的影响。
也不会有人提出了一个新算法并宣称它的性能非 常好,然后,得出结论说这个算法不值得使用,因为 它的算法性能有可能只是比现有的算法稍好一点,但 在实现上却复杂得多。
2019年7月19
感谢你的观看
6
4.2分布式处理机分配算法
最后一个设计问题与迁移的目的机器有关。 l 一旦决定不允许一个进程在本地机器上运行,那么,
迁移算法就必须决定将该进程应该迁移到一台目的 机器上。显然,迁移算法不能是本地的。它需要通 过获得其它机器上的负载信息来决定迁移的目的机 器。这些负载信息可以通过两种途径来获得。 l 过载者启动。 l 欠载者启动。
2019年7月19
感谢你的观看
35
4.2分布式处理机分配算法
直接使用处理机利用率: 处理机繁忙时间在全部时间中(繁忙时间+空闲时间)
所占的比例。
l 一个利用率为20%的处理机负载要比利用率为10%的 处理机大。
l 优点:比较合理。 l 原因:兼顾了用户进程和守护进程。
2019年7月19
感谢你的观看
主要思想是在给定的任务优先图中垂直或者水平划 分。关键路径(最长路径)的概念常常在垂直划分 中使用。水平划分把给定的任务分成若干层,任务 的优先级由它们所在的层次决定
2019年7月19
感谢你的观看
50
4.2分布式处理机分配算法
通信延迟最小划分: 主要思想是把通信频繁的节点归成一类。然而,
这些需要通信的任务分配在一个处理器上会丧失任 务间的并发性。
法只比复杂算法在性能上略低一点的话,那么,最好
使用简单算法。
2019年7月19
感谢你的观看
43
4.2分布式处理机分配算法
最后一个实现问题就是稳定性:
由于不同的机器都在异步地运行各自的计算,所
以,整个系统的负载很少能够达到平衡。因此,有时 候会发生这样一种情况:在某个时刻,机器A得到的 信息是机器B的负载较轻,因而,它就将新创建的进 程传送给机器B。机器B在收到该进程之前负载又增 加了,所以,收到该进程后,它发现机器A的负载较 轻,于是,它就将该进程又传送给机器A。这样造成 了某个可怜的进程被来回传送的情况。原因是:每一 个机器上的负载每时每刻都在变化。
2019年7月19
感谢你的观看
53
4.2分布式处理机分配算法
感谢你的观看
41
4.2分布式处理机分配算法
l 算法2 随机地选择一台机器,然后发送一个信息给该机
器询问该机器是超载还是欠载。如果该机器欠载,它 就接收新创建的进程;否则,新进程的创建机器继续 随机地选择一台机器并向其发送一个询问消息。这个 过程一直持续到找到一台欠载机器为止,或超过了一 定的询问次数,如果找不到欠载机器,该新创建的进 程就只好留在本地机器上运行。
36
4.2分布式处理机分配算法
利用率的测量:
设置一个定时器,它周期地中断处理机,每次 都检查处理机的状态。并按照上述公式计算处理机 利用率。它存在的问题:
使用定时器中断所产生的一个问题就是当处理 机内核正在执行原语时,它屏蔽了包括定时器中断 在内的所有中断。当原语执行时发生定时器中断, 中断就会在原语执行完毕才能得到响应。如果该原 语正阻塞前一个活动进程,那么,计算出的处理机 利用率就会比实际情况要低得多。
2019年7月19
感谢你的观看
42
4.2分布式处理机分配算法
l 算法3 给k台机器发送询问消息,接收这k台回送的负载
消息。这个新进程将发送给负载最小的机器,并在它
上面运行。
显然,如果我们不考虑所有发送询问负载消息和 传送进程的额外开销,那么,人们会认为算法3的性 能最好。事实上也确实如此。尽管算法3的性能只比 算法2的性能稍好一点,但其复杂性以及额外开销却 比算法2要大的多。Eager等人认为,如果一个简单算
2019年7月19
感谢你的观看
44
4.2分布式处理机分配算法
静态分配算法根据系统的先验知识做出决策: l 运行时负载不能够重新分配。 l 算法目标: 调度一个任务集合,使它们在各个目标PE上有最 小的执行时间。 l 设计算法时的三个主要的因素: l 处理器互连 l 任务划分(粒度决策) l 任务分配
相关文档
最新文档