进程的调度算法有哪些?

调度算法是指:根据系统的资源分配策略所规定的资源分配算法。常用的调度算法有:先来先服务调度算法、时间片轮转调度法、短作业优先调度算法、最短剩余时间优先、高响应比优先调度算法、优先级调度算法等等。

  • 先来先服务调度算法

先来先服务调度算法是一种最简单的调度算法,也称为先进先出或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正运行的进程停止执行,选择在就绪队列中存在时间最长的进程运行。该算法既可以用于作业调度,也可以用于进程调度。先来先服务比较适合于常作业(进程),而不利于段作业(进程)。

  • 时间片轮转调度算法

时间片轮转调度算法主要适用于分时系统。在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中第一个进程执行,即先来先服务的原则,但仅能运行一个时间片。

  • 短作业优先调度算法

短作业优先调度算法是指对短作业优先调度的算法,从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。 短作业优先调度算法是一个非抢占策略,他的原则是下一次选择预计处理时间最短的进程,因此短进程将会越过长作业,跳至队列头。

  • 最短剩余时间优先调度算法

最短剩余时间是针对最短进程优先增加了抢占机制的版本。在这种情况下,进程调度总是选择预期剩余时间最短的进程。当一个进程加入到就绪队列时,他可能比当前运行的进程具有更短的剩余时间,因此只要新进程就绪,调度程序就能可能抢占当前正在运行的进程。像最短进程优先一样,调度程序正在执行选择函数是必须有关于处理时间的估计,并且存在长进程饥饿的危险。

  • 高响应比优先调度算法

高响应比优先调度算法主要用于作业调度,该算法是对 先来先服务调度算法和短作业优先调度算法的一种综合平衡,同时考虑每个作业的等待时间和估计的运行时间。在每次进行作业调度时,先计算后备作业队列中每个作业的响应比,从中选出响应比最高的作业投入运行。

  • 优先级调度算法

优先级调度算法每次从后备作业队列中选择优先级最髙的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,优先级调度算法每次从就绪队列中选择优先级最高的进程,将处理机分配给它,使之投入运行。

发表评论

后才能评论

评论(5)

  • Noya 普通 2022-08-18 11:49 上午

    响应比=(等待时间+服务时间)/服务时间

  • mpweixin用户 普通 2022-04-23 10:08 上午

    多级反馈队列调度算法 MFQ:Multilevel Feedback Queue
    多级:表示有多个队列,每个队列优先级从高到低,同时优先级越高时间片越短。
    反馈:表示如果有新的进程加入优先级高的队列时,立即停止当前正在运行的进程,转而去运行优先级高的队列。

    进程在不同优先级的队列间迁移,首先调度优先级高的队列中的进程,只有优先级高的队列为空时才去调度优先级低的队列中的进程;对于同一个队列中的进程,按照时间片轮转的方式进行调度,如果N个时间片后依然未能完成,则进入优先级低的队列等待;在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU分配给新到达的作业,即抢占式。

  • mpweixin用户 普通 2022-04-22 10:25 下午

    “先来先去服务比较适合于常作业(进程),而不利于段作业(进程)。”字打错了

  • mpweixin用户 普通 2022-02-14 3:56 下午

    “他的原则是下一次选择预计处理时间最短的进程,因此短进程将会越过长作业,跳至队列头。”这一段是不是有点问题,按照前面的理解,似乎应该是短作业越过长作业