CPU中的调试算法有什么不同

电子说

1.3w人已加入

描述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

通常选择为20ms~50ms.

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

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

算法

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

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

优先数决定优先级

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

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

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

多级反馈队列调度算法:

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

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

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

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

算法

各种调度算法比较:

算法

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分