<返回更多

CPU中的调试算法对比

2019-11-25    
加入收藏

批处理系统中采用的调度算法

重要指标(吞吐量,周转时间,CPU利用率,公平平衡)

非抢占式的先来先服务算法(FCFS):按照进程就绪的先后顺序使用CPU

特点:公平,实现简单,但是长进程后面的短进程需要等待很长时间,不利于用户体验。

非抢占式的最短作业优先(SJF):具有最短完成时间的进程优先执行

最短剩余时间优先(SRTN):SJF抢占式版本,即当一个新就绪的进程比当前运行进程具有更短完成时间时,系统抢占当前进程,选择新就绪的进程执行。

短作业优先调度算法特点:改善短作业的周转时间,但如果源源不断有短任务到来,可能使长的任务长时间得不到运行,产生饥饿现象。

最高相应比优先算法(HRRN):是一个综合算法,调度时,首先计算每个进程的响应比R,之后总是选择R最高的进程执行。

响应比R=(等待时间+处理时间)/处理时间

交互系统中采用的调度算法

重要指标(响应时间,公平平衡)

时间片轮转调度算法: 每个进程被分配一个时间片,允许该进程在该时间段运行,如果在时间片结束时该进程还在运行,则剥夺CPU并分配给另一个进程,如果该进程在时间片结束前阻塞或结束,则CPU立即进行切换。

当时间片选择太长,其降级为先来先服务算法,引起对短的交互请求响应时间长

当时间片选择太短,会导致频繁的进程切换,浪费CPU时间。

通常选择为20ms~50ms.

对进程表中不同进程的大小差异较大的有利,而对进程都是相同大小的不利。

虚拟轮转法:主要基于时间片轮转法进行改进,解决在CPU调度中对于I/O密集型进程的不友好。其设置了一个辅助队列,对于I/O型进程执行完一个时间片之后,则进入辅助队列,CPU调度时总是先检查辅助队列是否为空,如果不为空总是优先调度辅助队列里的进程,直到为空,才调度就绪队列的进程。

CPU中的调试算法对比

 

最高优先级调度算法:选择优先级最高的进程优先执行。

优先级可以静态不变,也可以动态调整

优先数决定优先级

就绪队列可以按照优先级组织

实现简单,但不公平,可能导致优先级低的进程产生饥饿现象。

可能产生优先级反转问题(基于优先级的抢占式算法),即一个低优先级进程持有一个高优先级进程所需要的资源,使得高优先级进程等待低优先级进程运行。

多级反馈队列调度算法:

设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,依次递减优先级。

对于各个队列进程执行时间片的大小也不同,优先级越高的队列,分配到的时间片越少。

当第一级队列为空时,再第二级队列进行调度,依次类推,各级队列按照时间片轮转方式进行调度。

当一个新进程创建后,首先把它放入第一队列的末尾。按照FCFS原则排队等待调度。当轮到该进程执行时,如它在该时间片完成,便可准备撤离系统,如果它在一个时间片结束时尚未完成,则调度程序便将该进程转入第二队列的末尾,再同样地按照FCFS原则等待调度执行。依次类推。

CPU中的调试算法对比

 

各种调度算法比较:

CPU中的调试算法对比

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>