进程的调度

调度算法所考虑的几方面:

(1)公平:保证每个进程得到合理的CPU时间。

(2)高效:使CPU保持忙碌的状态,即总有进程在CPU上运行

(3)响应时间:是交互用户的响应时间尽可能短。

(4)周转时间:使批量用户等待输出的时间尽可能短。

(5)吞吐量:使单位时间处理的进程尽可能多。

很显然,我们并不能让五个目标同时达到最好,所以,不同的操作系统会在这几个方面有所权衡。以此确定自己满意的调度算法。

1.时间片轮转调度算法

    时间片为分配给进程运行的一段时间。

    系统将处于就绪态的进程以先来先服务的原则,将进程派为一个队列,每次调度时将CPU分配给队首的进程,令其在之后的一个时间片执行该进程。当执行的时间片用完后,系统发出信号,通知调度程序,调度程序接收到此信号则停止该进程,并将其放到进程队列的末尾,然后再重复开始的操作。

    从时间片方面考虑,若时间片过长则会导致用户体验不加,让用户觉得系统无法并发执行,但时间片过短又会使效率过低(因为进程的切换需要时间,若时间片果断导致进程切换频繁,从而浪费过多时间),其次,系统若出现紧急的情况,而该算法无法及时运行会导致其他问题的发生。所以该算法在公平上得到了保证但还是引出了其他的算法。

2.优先权调度算法

(1)非抢占式优先权算法(又称不可剥夺调度)

           在该方式下,系统一旦将处理机(CPU)分配给运行队列中优先权最高的进程后,该进程便一直执行下去,直到完成;或因发生某事件使该进程放弃处理机时,系统方可将处理机,分配给另一个优先权高的进程。

(2)抢占式优先权调度算法(又称可剥夺调度)

          该算法的的本质就是系统中运行的永远是优先权最高的进程。与非抢占不同的是,若出现一个优先权高于当前执行的进程,调度程序就暂停原先进程的执行,而将处理机分配给新出现的优先权最高的进程。

3.多级反馈队列调度

     这是一种折中额的调度算法,其结合了以上两种调度算法,即优先权高的进程先运行给定的时间片,相同优先权的进程轮流运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值