调度算法

来源:互联网 发布:怪物猎人捏脸数据男 编辑:程序博客网 时间:2024/05/18 03:19

调度算法

调度算法是指:根据系统的资源分配策略所规定的资源分配算法。

调度的基本准则包括CPU利用率、系统吞吐量、周转时间、等待时间、响应时间等。

系统吞吐量:单位时间内CPU完成作业的数量

周转时间:作业完成时刻减去作业到达时刻

带权周转时间:周转时间与系统为它提供服务的时间之比

等待时间:进程处于等处理器状态的时间之和,等待时间越长,用户满意度越低

响应时间:从用户提交请求到系统首次产生响应所用的时间

 

1.     先来先服务和短作业(进程)优先调度算法

1)     先来先服务调度算法(FCFS)

比较有利于长作业(进程),不利于短作业(进程)。即利于CPU繁忙型的作业(进程)不利于I/O繁忙型的作业(进程)。

2)     短作业(进程)优先调度算法(SJF/SPF)

缺点:①对长作业不利,导致长作业(进程)长期不被调度;②未考虑作业的紧迫程度,不能保证紧迫型作业被及时处理;③作业长短只是根据用户所提供的估计执行时间而定,而用户可能会有意或无意缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度

2.     高优先权优先调度算法

类型:非抢占式和抢占式

       高响应比优先调度算法

优先权(响应比Rp)=(等待时间+要求服务时间)/要求服务时间

       该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。

3.     基于时间片的轮转调度算法

1)     时间片轮转法:系统将所有就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。当执行时间片用完,停止该进程的执行并将它送往就绪队列的末尾,然后再把处理机分配给就绪队列中新的队首进程。

2)     多级反馈队列调度算法

短进程优先调度算法仅照顾了短进程而忽略了长进程,而且如果未指明进程的长度,则短进程优先和基于进程长度的枪占式调度算法(高响应比优先调度算法)都无法使用。而多级反馈队列调度算法不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要。

过程:①设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个次之,其余的逐个降低。赋予各个队列中进程执行时间片的大小也不同,优先权越高的队列中,为每个进程所规定的执行时间片就越小,如第二个比第一个队列的时间片长一倍;②当一个新进程进入内存后,首先将它放入第一队列末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统,如果在一个时间片结束时为完成,调度程序将该进程放入下一个队列的末尾……仅当第1~(i-1)队列均空时,才会调度第i队列中的进程。

0 0
原创粉丝点击