页面置换、作业调度、进程调度(转)

页面置换、作业调度和进程调度他们之间有很多相似的地方,作业跟进程调度之间尤为相似,之前一直搞不清他们之间的区别跟联系,你是不是也跟我有一样的感受呢?看完这篇文章或许会让你对他们有更清晰的认识。




页面置换算法

1,先进先出FIFO:淘汰最早进入cache的信息块。

2,最近最少使用Least recently used(LRU):首先淘汰最长时间未被使用的页面(强调时间)。

3,最近最少使用Least Frequently Used(LFU):淘汰一定时期内被访问次数最少的页(强调次数)。[LFU和LRU的区别](http://blog.csdn.net/summerhust/article/details/6867171)

3,随机替换:用随机数发生器随机产生一个信息块号,然后淘汰掉。

4:优化替换:此方法必须先执行一次程序,然后根据cache替换情况对接下来的信息块进行替换。

5:最佳置换:淘汰规则是将以后永远不会用到或者最长时间不会用到的信息块淘汰掉。此方法能够最大限度的减少缺页率,但是这是一种理想的方法,现实是无法实现的,只能作为其他置换算法的一个衡量标准。





作业调度:

1,先来先服务:按作业的到达时间进行调度,先到达先调度。

2,最短作业优先:优先执行所需时间最短的作业。

3,优先数:优先执行优先级高的作业。

4,最高响应比优先:优先执行响应比高的作业。响应比=(等待时间+计算时间)/计算时间。



进程调度:

1,先进先出:跟作业调度的先来先服务差不多,先执行最先进入就绪队列的进程。

2,最短优先:跟作业调度的短作业优先差不多,优先执行所需时间最短的进程。

3,最高响应比:跟作业调度的最高响应比差不多,优先执行响应比高的进程。响应比=(等待时间+要求服务的时间)/要求服务的时间。

4,优先级:跟作业调度的优先级算法差不多,优先执行优先级高的进程。

5:时间片轮转:按照先进先出的规则给进程分配时间片,时间片结束后不管有没有执行完,都将执行下一进程。

6,多级反馈队列调度算法(剥夺式):进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待—>首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。——>3、对于同一个队列中的各个进程,按照时间片轮转法调度。比如Q1队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列,直至完成。——》4、在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(剥夺式)。 

7,最短剩余时间调度算法(剥夺式):”SRT(Shortest Remaining Time)”(允许比当前进程剩余时间更短的进程来抢占)


看到这里,大家会发现作业调度跟进程调度是如此的相似,那么他们之间到底有什么关系呢?一起看下面这张图:



由上图可以看出,作业调度跟进程调度是密切相关的,首先进行作业调度将使之进入就绪队列,然后进行进程调度,或者进程执行完毕继续下面的进程,或者挂起等待下一轮的调度。下面结合生活中的例子分析一下两级调度。

第一级的作业调度是会将一批作业同时装入内存,以淋浴公共澡堂为例,里面可能只有1个水龙头,但可以一次让三四个人一起进去洗,因为洗澡的人并不是总要占着水龙头,只要相互错开就行了。那么澡堂就可以规定一次进三个人,三个洗完,再进三个。


第二级调度就是进程调度了,三个人同时用水龙头,那这个水龙头就相当于CPU,当然也可以多个水龙头,那就是多处理器了。洗的过程中,三个人可能有的在搓澡,有的在帮别人搓澡,也有可能都打完香皂就等冲水了,那让谁用水龙头呢?一般就是排先后,先申请的先用原则,但也不一定,比如有一个人说给我十秒钟冲一下就洗完了,那就是个短作业,不妨让他先用,洗完他就走了,这样大家的平均等待时间会缩短,也算是提高了效率;再就是有一个人可能在洗的过程中突然被洗发水迷了眼,所以需要赶紧冲一下,这就是高优先级的作业了,不同优先级之间,先可着高优先级的进行调度,这也是一种原则。所以总的来说,进程调度是在多个就绪进程中按一定的策略选出当前应执行的进程,合适与否,是按一定的策略遴选出来的。


关于低级调度、高级调度、中级调度:

作业调度又称宏观调度或高级调度,其主要任务是按一定的原则对外存上处于后备状态的作业进行选择,给选中的作业分配内存,输入输出设备等必要的资源,并建立相应的进程,以使该作业的进程获得竞争处理机的权利.
进程调度又称微观调度或低级调度,其主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它. 为了提高内存利用率和系统吞吐量,引入了中级调度.


转自:http://blog.csdn.net/liushuijinger/article/details/7586653#comments


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值