处理器计划选择如何分配处理器资源(CPU调度算法总结)

批处理系统中的调度算法

处理器计划

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

  • 非抢占先到先服务算法(FCFS):按照进程就绪的顺序使用CPU
    • 特点:公平且易于实施,但长流程背后的短流程需要等待很长时间,不利于用户体验。
  • 非抢占式最短作业优先级(SJF):应首先执行完成时间最短的流程
  • 最短剩余时间优先(SRTN):AndyLau抢先版本,即当新准备好的进程的完成时间比当前运行的进程短时,系统抢先当前进程并选择新准备好的进程执行。短任务优先级调度算法的特点:提高了短任务的周转时间,但如果短任务源源不断地出现,长任务可能无法长时间运行,导致饥饿。
  • 最高对应比优先算法(hrrn):是一种综合算法。调度时,首先计算每个进程的响应率r,然后始终选择r最高的进程执行。响应率r=(等待时间+处理时间)/处理时间

交互式系统中的调度算法

关键指标(响应时间、公平性和平衡性)

  • 当进程没有运行时间时,允许每个进程运行一段时间。如果进程没有运行时间,则允许每个进程运行一段时间中央处理器并被分配到另一个流程。如果进程在时间片结束之前阻塞或结束,CPU将立即切换。当时间片选择过长时,它将降级为先到先服务算法,导致对短交互请求的响应时间较长。当时间片选择太短时,会导致频繁的进程切换,浪费CPU时间。一般选择20ms~50ms,这有利于工艺表中不同工艺的尺寸差异较大,但不利于相同尺寸的工艺。
  • 虚拟旋转法:主要是在时间片旋转法的基础上进行改进,以解决CPU调度中对I/O密集型进程不友好的问题。它设置了一个辅助队列。I/O进程执行时间片后,它进入辅助队列。调度时,CPU总是检查辅助队列是否为空。如果它不是空的,它总是优先安排辅助队列中的进程。在它为空之前,它可以调度就绪队列中的进程。
  • 最高优先级调度算法:选择优先级最高的进程优先执行。优先级可以静态不变,也可以动态调整以确定优先级。就绪队列可以根据优先级进行组织。实施很简单,但不公平,这可能会导致优先级较低的流程陷入饥饿。可能存在优先级反转问题(基于优先级的抢占算法),即低优先级进程持有高优先级进程所需的资源,使高优先级进程等待低优先级进程运行。
  • 多级反馈队列调度算法:设置多个就绪队列,并为每个队列赋予不同的优先级。第一个队列的优先级最高,优先级依次降低。对于每个队列进程,执行时间片的大小也不同。队列的优先级越高,分配的时间片就越少。当第一级队列为空时,将调度第二级队列,依此类推。各级队列根据时间片的轮换模式进行调度。创建新进程时,它首先被放置在第一个队列的末尾。根据FCFS原则进行调度的队列。当轮到进程执行时,如果它在时间段内完成,它就可以准备撤离系统。如果未在时间片的末尾完成,调度程序将把进程转到第二个队列的末尾,然后根据FCFS原则等待计划的执行。等等

各种调度算法的比较

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友