美文网首页
常用的调度算法

常用的调度算法

作者: 星q_p光 | 来源:发表于2018-10-22 13:12 被阅读0次

    服务调度算法FCFS(first come first service)

    可以用于作业调度,也可以用于进程调度。

    运行机制:

        1:按照作业提交,或进程变为就绪状态的先后次序分派CPU。

        2:新作业只有当当前作业或进程执行完或阻塞才获得CPU运行

        3:被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。

    缺点:不利于短作业(进程),执行时间短的进程如果在执行时间长的进程之后就需要等待前一个进程完成之后再进行,短作业的带权周转时间很高这是不能容忍的,由此我们产生一种短作业优先的调度算法

    短调度优先的算法SJF/SPF

    运行机制:

        1:先调用时间短地进程

        2:采用抢占和非抢占两种方式

    缺点: 对短作业有利,但同时造成了对长作业的不利;由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先;未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。因此产生一种高优先权优先调度算法,来解决比较紧急的进程:

    高优先权优先调度算法HPF�Highest Priority First

    运行机制:

        1:同样也是两种方式:非抢占和抢占方式

        2:优先权类型:1)静态优先权:创建进程时确定,整个运行期间保持不变。一般利用某一范围的一个整数来表示,又称为优先数。

                                        2)动态优先权:创建进程时赋予的优先权可随进程的推进或随其等待时间的增加而改变。

    如何确定进程优先权:

        1:一般来说,系统进程高于用户进程。

        2:如进程的估计时间及内存需要量的多少,对要求少的进程赋予较高优先权。

        3:由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。

    高响应比优先调度算法HRRN�(Highest Response Raito Next)

    引入动态优先权:作业的优先级随着等待时间的增加而以速率a提高

    遵循:优先权 =(等待时间+要求服务时间)/要求服务时间

    假设a进程服务时间为5s,b进程服务时间为100s,等待时间都为t s优先权:

    a:(5+t)/5

    b:(100+t)/100

    等待时间越长优先权越高,同时到达优先权都一样

    时间片的轮转调度算法RR� (Round Robin)

    1.时间片轮转算法:

    运行机制:

        1:将系统中所有的就绪进程按照FCFS原则,排成一个队列。

        2:每次调度时将CPU分派给队首进程,让其执行一个时间片。

        3:在一个时间片结束时,发生时钟中断。

        4:调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。

    2.多级反馈队列算法FB  (Multiple-level Feed Back Queue)

    运行机制:

        1:设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低。

        2:赋予各队列进程执行时间片大小不同, 优先权越高,时间片越短。一队列一个时间片,二队列两个时间片等等或者自定义长度

    相关文章

      网友评论

          本文标题:常用的调度算法

          本文链接:https://www.haomeiwen.com/subject/epmbzftx.html