进程调度的算法是指什么?有何作用?

2020-05-10 09:36:32 java常见问答 8444

不知道大家有没有听说过进程调度的算法呢?没有了解过也没关系,有兴趣的小伙伴可以跟小编一起来瞧一瞧呢,看看进程调度的算法到底有何作用呢?

一是先来先服务调度算法。

先来先服务(FCFS)调度算法是一种比较简单的调度算法,这种算法既可用于作业调度,也是可以用来进程调度的。当我们在作业调度中采用该算法的时候,每次的调度都是从后备作业队列中去选择一个或者是多个最先进入该队列的作业,然后再将它们调入内存中,去为它们分配资源、创建进程,最后放入就绪队列中。在进程调度里面采用FCFS算法时,则每次调度就是从就绪队列中去选择一个最先进入该队列的进程,为其分配处理机,使其投入运行中。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

二是短作业(进程)优先调度算法。

短作业(进程)优先调度算法,其实是指对短作业或短进程优先调度的算法。它们可以是分别用于作业调度和进程调度的。短作业优先(SJF)的调度算法也是从后备队列中去选择一个或者若干个估计运行时间中最短的作业,再将它们调入内存中运行。其实短进程优先(SPF)调度算法就是从就绪队列中选出一个估计运行时间最短的进程,把处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

三是高响应比优先调度算法。

在批处理系统中,短作业优先算法其实是一种比较好的算法,它主要的不足就是长作业的运行是得不到保证的。如果说我们能为每个作业引入前面所描述的动态优先权的话,使作业的优先级随着等待时间的增加而以速率a 提高,那么长作业在等待过一定的时间后,必然就有机会分配到处理机。该优先权的变化规律可描述为:由于等待时间与服务时间的和就是系统对该作业的响应时间,所以该优先权又相当于响应比RP。

由上可得:

如果说作业的等待时间相同,就要求服务的时间愈短,其优先权愈高,所以该算法有利于短作业。

当要求服务的时间相同的时候,作业的优先权是决定于其等待时间的,等待的时间越长,其优先权就越高,所以它实现的是先来先服务。

对于长作业来说,作业的优先级是可以随等待时间的增加而提高的,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。简言之,该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。因此,该算法实现了一种较好的折衷。当然,在利用该算法时,每要进行调度之前,都须先做响应比的计算,这会增加系统开销。

好了,以上就是本篇文章的所有内容了,还想了解更多java常见问答知识的小伙伴可以立即关注本站消息获取最新信息哦。

推荐阅读:

垃圾收集算法常用的有哪几种?都有什么机制?

cas算法是指什么?有何优缺点? 

java二叉树遍历算法有哪些?如何操作?