进程调度算法

10 篇文章 0 订阅

进程调度算法

在《计算机操作系统》一书中,提到了几种分时系统中的进程调度算法。现在将它们做一下整理

1. 轮转调度算法

该算法采取了公平的处理机分配方式,即让就绪队列的每个进程每次仅运行一个时间片。如果就绪队列上有n个进程,则每个进程每次大约都可以获得1/n的处理机时间。

在该算法中,根据先来先服务(FCFS)策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔产生一次中断,激活系统中的进程调度程序,完成一次调度,将CUP分给队首进程。

若一个进程的时间片尚未用完,但是该进程已经完成了任务,就立即激活调度程序,放弃对CPU的占用。启动下一个进程。

若一个进程的时间片已经用完,但是进程尚未运行完毕,此时立即激活中断
处理程序,调度程序将该进程送往就绪队列的队尾。

2. 优先级调度算法

在时间片轮转调度算法中,做了一个隐含的假设:系统中所有进程的紧迫性是相同的。但在实际的情况中并非如此。因此引入优先级而形成优先级调度算法。

在该算法中,是把处理机分配给就绪队列中优先级最高的进程。

此时,又可以把该算法分为两种:非抢占式优先级调度算法抢占式优先级调度算法

非抢占式的意思是一个进程在执行过程中,会占用CPU等临界资源,此时倘若就绪队列中进来一个高优先级的进程,那么高优先级的进程必须等待正在运行的进程运行完毕才可以运行。

抢占式的意思是一个进程在运行过程中,倘若有高优先级的进程进入就绪队列,那么正在运行的进程立即激活中断处理程序,然后运行高优先级进程。

3. 多队列调度算法

该算法将系统中的进程就绪队列从一个拆分为若干个,将不同类型或者性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同就绪队列本身也可以设置不同的优先级。

4. 多级反馈队列调度算法

多级反馈队列调度算法的调度机制可描述如下:
1. 设置多个就绪队列,并为每个队列设置不同优先级。第一个队列的优先级最高,第二个次之,其余队列的优先级逐个降低。相应的,在优先级越高的队列中,其时间片越小。
2. 每个队列采用FCFS算法。 当新进程进入内存后,首先将它放入第一队列的末尾,按照FCFS原则等待,当轮到该进程执行时,如果它能在该时间片内完成,便可撤销。假如它在一个时间片内未运行完成,调度程序将它转入第二队列的末尾等待调度;如果它在第二队列中运行一个时间片后仍为完成,再将其转入第三队列。。。当进程最后被降到第n个队列中后,在第n个队列中采取RR方式运行。
3. 按队列优先级调度。只有当前一个队列中空闲时才调度后一个队列中的进程运行。如果处理机正在第i队列中为某进程服务时又有新的进程进入任一优先级较高的队列,此时须立即把正在运行的进程放回第i队列的末尾,把处理机分配给新到的高优先级进程。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值