- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统各算法比较
各调度算法比较
调度算法名 算法思想 优点 缺点 特点 适用范围 先来先服务调度算法 按作业提交或进程变为就绪状态的先后次序进行调度(进入内存或分派CPU)
一个进程一旦分得处理器,便执行下去,直到该进程完成或阻塞时才释放处理器(即非抢占) 实现简单
忽略进程的优先级,不公平
从表面上,先来先服务于所有作业是公平的,即按照它们到来的先后次序进程服务。但若一个长作业先到达系统,就会使许多短作业等待很长的时间,从而引起许多短作业用户的不满。
1. 有利于长作业,不利于短作业,降低CPU利用率
2.有利于CPU繁忙的作业,不利于I/O繁忙的作业
它常被结合在其它调度策略中使用。
短作业/进程优先调度算法 短作业优先调度算法(SJF)
主要任务是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。
短进程优先调度算法(SPF)
主要任务是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它。
可采用抢占(剥夺)或者非抢占(非剥夺)调度方式。
1.能有效降低作业的平均等待时间;
2.提高吞吐量;
3.能有效缩短进程的周转时间;
1.对长作业不利;
2.不考虑作业的紧迫程度;
3.作业执行时间、剩余时间仅为估计*;
SJ(P)F算法虽然是优化的,但在CPU调度中很难实现。
短作业优先调度算法(SJF)
用于作业调度
短进程优先调度算法(SPF)
用于进程调度
时间片轮转调度算法 1.将系统中所有的就绪进程按照FCFS原则,排成一个队列;
2.每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms;
3.在一个时间片结束时,发生时钟中断;进程调度程序暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。
1.进程可以未使用完一个时间片,就出让CPU(如阻塞)
2.其基本思路是通过时间片轮转提高进程并发性和响应时间特性,从而提高资源利用率
1.过长(退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。
2.过短(用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间长。
应当让时间片略大于一次典型的交互所需要的时间。这样可使大多数进程在一个时间片内完成。
主要用于处理器调度,特别适合于分时系统
优先权调度算法 按照某种原则由系统(或用户或二者结合)赋予每个作业或进程一个优先级(整数),在作业或进程调度时选择优先级最高的作业或进程 抢占式:在处理器上运行的进程永远是就绪队列中优先级最高的
非抢占式:一旦某高优先级进程占有处理器就一直运行下去,直到任务完成或阻塞。
静态优先权法简单易行,系统开销小
动态优先权:在进程的运行期间会发生变化。
静态优先权法简单易行,系统开销小,但不够精确,很可能出现优先权低的作业(进程)长期没有被调度的情况。因此,仅在要求不高的系统中才使用静态优先权。 静态优先权:优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般用一整数表示,小表示优先级高。可根据进程类型、资源需求和用户要求决定。
动态优先权:优先权在创建进程时确定,但在进程的运行期间会发生变化。
是目前OS广泛采用的一种进程调度算法,适用于作业调度和进程调度,主要用于进程调度
高响应比优先调度算法 为每个作业引入动态优先权,并使作业的优先级随着等待时间的增加而以速率a提高,则长作业在等待一定的时间后,必有机会分配到处理机。 该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。因此,改算法实现了一种较好的折衷。 在利用该算法时,每要进行调度之前,都必须先做响应比的计算,这会增加系统开销。 1.如等待时间相同,则要求服务时间愈短,其优先权愈高--SPF.
2.如要求服务时间相同,优先权决定于等待时间----FCFS。
3.对长作业,若等待时间足够长,优先权也高,也能获得CPU。
适用于作业和进程 多级反馈队列调度算法 1.设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。
2.新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1的一个时间片未能执行完,则降低优先级投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按时间片轮转算法调度直到完成。
3.仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢占执行进程的处理器,并把被抢占的进程投入原队列的末尾。 动态调整进程优先级和时间片大小
为提高系统吞吐量和缩短平均周转时间而照顾短进程
为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型
文档评论(0)