进程调度算法
算法原理: 就是谁先来谁就先执行
算法优点 :易于理解且实现简单,只需要一个队列,公平
算法缺点 :有利于长进程,不利于短进程,有利于CPU 繁忙的进程,不利于I/O 繁忙的进程
算法原理: 对预计执行时间短的进程优先执行。
算法优点 :相比FCFS 算法,该算法可改善平均周转时间和平均带权周转时间,缩短进程的等待时间,提高系统的吞吐量。
算法缺点: 对长进程不利,可能长时间得不到执行产生饥饿,不能判断执行的优先级。
算法原理: 同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。响应比R定义: R =(W+T)/T = 1+W/T
T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。执行之前系统计算每个作业的响应比,选择其中R最大者执行。这种算法是介于前面两种之间的一种折中算法。
算法优点: 长作业也有机会投入运行,避免了饥饿。
算法缺点: 每次调度前要计算响应比,增加系统开销。
算法原理: 设置一个时间片,每个进程轮流使用时间片,若一个时间片内进程还没结束,也会被其他的进程抢占时间片而退出执行,进入等待队列。
算法优点: 简单易行、平均响应时间短。
算法缺点: 不利于处理紧急作业。时间片的大小的设置对系统性能的影响很大,因此时间片的大小应选择恰当
算法原理: 根据优先级的来判断执行哪个进程。可以分为静态优先级和动态优先级,即优先级可以根据情况改变。比如如果一个进程等了很久,我们就可以把他的优先级适当的提高。
算法优点 :可以优先处理紧急事件,适用于实时操作系统。
算法缺点 :可能导致那些优先级低的进程饥饿。
UNIX操作系统采取的便是这种调度算法。
算法原理 :
实现先说明执行队列优先级Q1>Q2>Q3.......>Qn,分配的时间片Qn>Qn-1>...Q1.
进程在进入待调度的队列等待时,首先进入优先级最高的队列Q1等待。若在Q1队列里面还没执行完,则下放到Q2里面,等Q1里面的进程都执行完了之后再执行Q2。以此类推。
若在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。
在多级反馈队列调度算法中,规定第一个队列的时间片略大于多数人机交互所需之处理时间时,能够较好的满足各种类型用户的需要。
2024-10-17 广告