高级操作系统Advanced Operating System.ppt
《高级操作系统Advanced Operating System.ppt》由会员分享,可在线阅读,更多相关《高级操作系统Advanced Operating System.ppt(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高级操作系统Advanced Operating System,陈香兰(代)0551-3606864-83中国科学技术大学计算机系,第五章 分布式进程和处理机管理,分布式系统模型分布式处理机分配算法分布式进程调度分布式系统容错实时分布式系统,上次课主要内容,5.1 分布式系统模型工作站模型怎样找到一个空闲工作站 服务器端驱动的算法客户端驱动的算法 怎样透明地运行一个远程进程如何设置远程运行环境 如果空闲工作站的主人回来重新使用它,怎么办?继续/强制取消/进程迁移 处理机池模型用排队论来描述和分析处理机池模型的性能混合模型,5.2 分布式处理机分配算法,分布式系统包括多个处理机,具有较大的处理能
2、力。另外,一个作业将产生多个任务或进程,它们需要分配在多个处理机上并行执行,以充分利用分布式系统提供的巨大的处理能力。因此,分布式系统需要一个优良的资源分配算法来决定每个进程或任务应分配到哪一个处理机上执行通常,这个算法被称为处理机分配算法或任务分配算法或负载分配算法(通常不称作进程分配算法,尽管但两者的意思完全相同),5.2.1 分配模型,首先介绍一下处理机分配的基本模型、假定和目标:1)关于处理器:假定所有的机器都是相同的,至少是代码兼容的,不同的只是运行速度。一些分配模型还假定系统具有多个互不相关的处理机池,每一个处理机池都是相同的。,5.2.1 分配模型,2)关于互连拓扑:假定系统是完
3、全互连的,即每一个处理机都可以与其它任意一个处理机相连接。这并不表示每一个机器与其它任意一台机器之间都有线路连接,这个假定只是意味着每一对机器都可以互相通信。至于消息是如何从一台机器到达另一台机器的问题只是低层通信软件的事,处理机分配算法无需考虑。但有一些处理机分配算法利用了网络的广播或者多播的特性。,5.2.1 分配模型新进程的产生和处理机的分配,当一个运行中的进程决定创建一个子进程时,新的工作随之产生。在有些情况下,创建进程是由系统的命令解释程序(即shell)来完成的。它为用户指定的命令而执行该命令所对应的程序。而在另一些情况下,用户进程本身也可以创建一个或者多个子进程,以获得较高的系统
4、性能。对新进程必须考虑分配到哪个处理器上运行,5.2.1 分配模型处理机的分配策略,处理机分配策略可以分为两大类:1)非迁移的2)可迁移的第一类是非迁移的(nonmigratory)在非迁移策略中,当创建一个进程时,系统就决定它被分配到哪台处理机上。一旦一个进程被分配到一台机器上,那么,它就在那台机器上运行,一直到终止,不管这台处理机的负载是多么的重,而别的处理机是多么的空闲,它都不能迁移到别的处理机上运行。,5.2.1 分配模型处理机的分配策略,第二类是可迁移的(migratory)对于可迁移策略来说,一个进程即使已经被分配到一台处理机上并已经运行了一段时间,它也可以动态地迁移到其它轻负载的
5、处理机上继续运行。虽然可迁移策略可以使系统达到良好的负载平衡,但实现起来却异常复杂。,5.2.1 分配模型分配算法的优化,处理机分配算法必须尽可能优化。否则,我们完全可以随机地或按数字顺序来分配处理机。不同系统的优化内容是不一样的优化目标1:提高处理机利用率优化目标2:最小化平均响应时间,5.2.1 分配模型优化目标1:提高处理机利用率,通常的一个优化目标就是:尽量提高处理机的利用率让处理机在每个小时内执行用户工作的周期数尽可能地大换句话说,要尽量减少空闲处理机周期数。,5.2.1 分配模型优化目标2:最小化平均响应时间,另一个有价值的优化目标就是:使平均响应时间最小化,5.2.1 分配模型平
6、均响应时间举例,假设有两个处理机。处理机1以10MIPS的速度运行,处理机2以100MIPS的速度运行,其中等待队列中的进程需要5秒才能完成。有两个进程。进程A有1亿条指令,执行时间分别为10秒(在处理机1上)和1秒(在处理机2上)进程B有3亿条指令,执行时间分别为30秒和3秒,5.2.1 分配模型平均响应时间举例,这两个进程在每一个处理机上的响应时间(包括等待时间)如图所示。,5+1 =,5+3 =,5.2.1 分配模型平均响应时间举例,平均响应时间如果把进程A和B分别分配给处理机1和2,那么平均响应时间是(10+8)/2=9秒。若反向分配,那么平均响应时间就是(30+6)/2=18秒。显然
7、,前者的平均响应时间要比后者小。,5.2.1 分配模型最小响应时间的另一种形式,最小响应时间的另一种形式就是最小响应率。响应率定义为:在一台机器上运行一个进程所需的时间除以该进程在无负载的标准处理机上运行所需的时间。对于大多数用户,响应率比响应时间更重要。原因在于:响应率考虑了大任务要比小任务花费更多时间这一情况。例如:一个1秒的任务花了5秒,而一个1分钟的任务花了70秒,从响应时间上看,前者好,但从响应率上看,后者更好,因为5/170/60。,5.2.2 分配算法的分类,负载分配方法可做如下分类:局部和全局 局部负载分配处理单个处理器上的进程对时间片(单元)的分配。全局负载分配首先进行进程对
8、处理器的分配,然后完成每个处理器内这些进程的局部调度表 静态和动态(在全局类中) 静态负载分配中,进程对处理器的分配是在进程执行以前的编译阶段完成的,而动态负载分配要到进程在系统中执行时才做出分配。静态方法又叫做确定性调度,而动态方法叫做负载平衡。,5.2.2 分配算法的分类,最优和次优(在静态和动态两种类型中) 如果根据某种标准(例如,最小执行时间和最大系统输出)可以取得最优分配,那么就可以认为这种负载分配方法是最优的。一般地,负载分配问题是NP完全问题。某些情况下,次优方案也是可以接受的。有四类算法(对于最优的和次优的)被使用:1)解空间枚举搜索、2)图模型、3)数学编程(例如0/1编程)
9、4)队列模型,5.2.2 分配算法的分类,近似和启发式(在次优类型中) 在近似方法中,负载分配算法仅搜索一个解空间的子集,当寻找到一个好的解时,终止执行在启发式方法中,调度算法使用某些特殊参数,能够近似地对真实系统建模。,5.2.2 分配算法的分类,集中控制的和分散控制的(在动态类型中) 在分散控制中,决策工作被分配给不同的处理器。在集中控制中,决策工作由一个处理器完成协作的和非协作的(对分散控制) 动态负载分配机制可以分成:协作的(分布式对象间有协同操作)和非协作的(处理器独立做出决策),5.2.2 分配算法的分类,下图显示了上述负载分配算法的分类情况,5.2.2 分配算法的分类,还有其他负
10、载分配算法的分类方法,包括一些不能直接归入上面分类的负载分配类型:单个和多个应用程序 多数负载分配算法是针对单个应用程序。多应用程序情况可以转换成单个应用程序情况。例如,应用图模型时对多应用程序的多个图可以认为是一张图。然而,多应用程序情况下的进程分配远复杂于单个应用程序的情况。多应用程序情况下用平均子图完成时间作为衡量指标,单个应用程序情况下用最小完成时间作为衡量指标。,5.2.2 分配算法的分类,非抢占式的和抢占式的 对非抢占式的负载分配算法,一个任务(进程)开始执行后就不能中断。在抢占式负载分配算法中,进程可以中断,并从处理器上移走,过后继续执行 非自适应的和自适应的 非自适应负载分配只
11、使用一种负载分配算法,不会依据系统反馈而改变白己的行为。自适应负载分配能够根据系统反馈调整分配算法。典型地,一个自适应负载分配算法是许多负载分配算法的集合,依据系统的各种参数来选择一个合适的算法。,5.2.3 处理机分配算法的设计问题,一般来说,设计者在设计算法时,需要考虑以下五个方面的情况:算法是确定式还是启发式的。算法是集中式的还是分布式的。算法是最优的还是次优的。算法是局部的还是全局的。算法是过载者启动的还是欠载者启动的。,5.2.3 处理机分配算法的设计问题设计问题1:确定还是启发式,确定式算法需要预先知道进程所有的信息。一般,进程的信息包括:进程的计算需求文件需求通讯需求等等如果设计
12、者能够获得所有进程的信息,那就可以设计出一个完美的分配方案,并获得最佳的分配结果。但只有极少的一些系统可以事先获得所有进程的信息,5.2.3 处理机分配算法的设计问题可预测系统 vs 不可预测系统,在可预测系统中,可以通过合理的近似来事先得到所有进程的信息。例如,在银行业、保险业、民航定票系统中,每天的情况都基本相似,民航根据经验可以预测到早春第一周周一的清晨大约有多少人要从天津去北京,这样就保证了确定式算法的可行性。与可预测系统相反,有些系统的负载是完全无法预测的。用户所做的工作每一个小时,甚至每一分钟都在动态地改变。在这种系统中的处理机分配不能用一种在数学上确定的算法实现,而需要使用一种称
13、之为启发式的算法。,5.2.3 处理机分配算法的设计问题设计问题2:集中还是分布,集中式算法需要将系统中所有的信息都收集到某个机器上,这会造成系统不够坚定,并且该机器负载过于沉重。因此,一般都采用分布式算法来实现处理机分配。然而,一些集中式算法仍然被采用,原因是没有相应的分布式算法来取代它。,5.2.3 处理机分配算法的设计问题设计问题3:最优还是次优,第三个设计问题与前两个问题有关,是获得一个最优解?还是一个可行的次优解?一般来说,采用集中式和分布式算法都能够得到最优解,但得到最优解所花费的代价要比得到次优解复杂得多。此外,最优解需要收集更多的信息以及进行全面复杂的处理。对于大多数分布式系统
14、来说,只要有一个启发、分布、次优的处理机分配算法就可以了。因为,要获得最优解实在是太难了。,5.2.3 处理机分配算法的设计问题设计问题4:迁移策略,第四个设计问题与迁移策略有关。当一个新进程被创建时,系统需要决定它是否在创建它的机器上运行。若该机器繁忙,那这个新进程就必须迁移到其它机器上去运行。对于是根据本机局部信息还是全局信息来决定新进程是否迁移,目前存在着两种学派。1)一种学派主张简单的局部算法:若机器的负载低于某个阀值,那新进程就在本地机器上运行;否则,就不允许该进程在本地上运行。,2)另一种学派认为局部算法太武断了。最好在决定新进程是否在本地机器上执行之前,先收集其它一些机器上的负载
15、信息,称为全局算法。比较:局部算法简单,但远远达不到最优;而全局算法需要付出巨大的代价来换取一个性能稍微好一点的结果。,5.2.3 处理机分配算法的设计问题设计问题5:,最后一个设计问题与迁移的目的机器有关。一旦决定不允许一个进程在本地机器上运行,那么,迁移算法就必须决定将该进程应该迁移到哪台目的机器上。显然,迁移算法不能是本地的。它需要通过获得其它机器上的负载信息来决定迁移的目的机器。这些负载信息可以通过两种途径来获得。一种是过载者启动的,另一种是欠载者启动的。,5.2.3 处理机分配算法的设计问题设计问题5:,过载者启动:由过载者来寻找迁移的目的机器如图:一个机器超载时,它向其它机器发送求
16、助请求,希望将自己的一些新进程迁移到其它机器上运行。欠载者启动:当一个机器处于空闲状态即欠载状态时,由这台欠载机器来宣布自己可以接收外来的工作。其的目的就是寻找一台可以给自己增加一些额外工作的机器,5.2.3 处理机分配算法的设计问题设计问题5:,不管是过载者启动的算法还是欠载者启动的算法,不同的算法采用不同的策略来决定谁收集信息、收集时间多长以及如何处理收集的信息。,5.2.4 处理机分配算法的实现问题问题1:负载的度量,基本上,所有的算法都假定每一台机器都知道它自己的负载,也就是说,它可以判断自己是超载还是欠载,并且能够告诉其它机器自己的负载。然而,度量一台机器是否超载并不象它看上去那样简
17、单。,5.2.4 处理机分配算法的实现问题度量方法 1,度量方法1:以机器上的进程数量作为机器的负载优点:简单原因:只需要计算机器上的进程数量缺点:用进程数量的多少来表示机器的负载是不确切的,它几乎说明不了什么问题。 原因:即使在一台空闲机器上,仍然会有一些后台监视进程在运行,例如,邮件、新闻、守护进程、窗口管理程序以及其它一些进程。因此,,5.2.4 处理机分配算法的实现问题度量方法2,对度量方法1进行如下改进:只计算正在运行或已经就绪进程的数量。原因:每一个正在运行或处于就绪状态的进程都会给系统增加一定的负载,即便它是一个后台进程。存在的问题:许多后台守护进程只是定时被唤醒,检查所感兴趣的
18、事件是否发生,如果没有,则重新进入睡眠状态。因此,这类进程只给系统带来很小的负载。,5.2.4 处理机分配算法的实现问题度量方法3,直接使用处理机利用率:就是处理机繁忙时间在全部时间中(繁忙时间+空闲时间)所占的比例。一个利用率为20%的处理机负载要比利用率为10%的处理机大优点:比较合理原因:兼顾了用户进程和守护进程,5.2.4 处理机分配算法的实现问题测量手段,测量手段:设置一个定时器,它周期地中断处理机,每次都检查处理机的状态。并按照上述公式计算处理机利用率存在的问题:使用定时器中断所产生的一个问题就是当处理机内核正在执行原语时,它屏蔽了包括定时器中断在内的所有中断。当原语执行时发生定时
19、器中断,中断就会在原语执行完毕才能得到响应。如果该原语正阻塞前一个活动进程,那么,计算出的处理机利用率就会比实际情况要低。,5.2.4 处理机分配算法的实现问题实现问题2:额外开销,许多理论上的处理机分配算法都忽略了收集负载信息以及传送进程的额外开销。若一个算法将一个新创建的进程传送到远程机器上运行仅使系统性能提高10%左右,那它最好不要这样做,原因是传送进程的开销足以抵消所提高的性能。一个好的算法应该考虑算法本身所消耗的处理机时间、内存使用、以及网络带宽等。但很少有算法能做到这一点,因为它太难了。,5.2.4 处理机分配算法的实现问题问题3:复杂性,在处理机分配算法实现中还必须考虑复杂性。事
20、实上,所有的研究者只分析、模拟或计算处理机的利用率、网络的使用情况以及响应时间,以此来衡量他们所提出算法的好坏。很少有人考虑软件的复杂性对系统的性能、正确性和坚固性所产生的影响。很少有人考虑复杂性。也很少有人发表一个新算法,也不会有人提出了一个新算法并宣称它的性能有多么好,然后,得出结论说这个算法不值得使用,因为它的算法性能有可能只是比现有的算法稍好一点,却在实现上却复杂得多。,5.2.4 处理机分配算法的实现问题,然而,Eager 等人在1986年所做的研究使追求复杂和最优的人们看到了希望。他们研究了三个算法。在这三个算法中,所有的机器都测量自己的负载以判断它是否超载。当一个新进程创建时,创
21、建该进程的机器就会检查自己是否超载,如果是,则它就寻找一台欠载的远程机器去运行该进程。这三个算法的不同之处在于寻找远程机器的方法。,5.2.4 处理机分配算法的实现问题,算法1随机地选择一台机器,并把新创建的进程传送到该机器上。如果该接收机器本身也超载,它也同样随机地选择一台机器并把该进程传送过去。这个过程一直持续到有一台欠载的机器接收它为止,或者指定计数器溢出停止该进程的传送,机器1,机器2,机器3,机器n,机器k,5.2.4 处理机分配算法的实现问题,算法2:随机地选择一台机器,发送一个信息给该机器询问它是超载/欠载。若欠载,它就接收新进程;否则,新进程的创建机器继续随机地选择一台机器并向
22、其它发送一个询问消息。这个过程一直持续到找到一台欠载机器为止,或超过了一定的询问次数,若找不到欠载机器,新进程就只好留在本地机器上运行。,机器1,机器2,机器3,机器n,机器k,5.2.4 处理机分配算法的实现问题,算法3给k台机器发送询问消息,接收这k台回送的负载消息。这个新进程将发送给负载最小的机器,并在它上面运行。,机器1,机器2,机器3,机器n,机器k,5.2.4 处理机分配算法的实现问题,显然,如果我们不考虑所有发送询问负载消息和传送进程的额外开销,那么,人们会认为算法3的性能最好。事实上也确实如此。尽管算法3的性能只比算法2的性能稍好一点,但其复杂性以及额外开销却比算法2要大的多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 高档 操作系统 advanced operating system
限制150内