操作系统-调度算法


前言

    调度算法是计算机中很重要的一部分,其设计的合理不合理将很大情况下影响了计算机的运行效率,从而影响用户的使用体验。
    本文介绍的调度算法包括进程调度算法、页面置换算法、磁盘调度算法。 进程调度发送在CPU和内存之间,页面置换发送在磁盘、内存、CPU之间,磁盘调度算法发送在磁盘。

一、进程调度算法

1.先来先服务调度算法

解释:每次再就绪队列中选出一个最先进来的进程运行,直到运行结束或者进程阻塞,运行下一个。
缺点:对于**长作业**占用很长的事件,**不利于短作业**。适用于繁忙型作业系统,不适用于I/O密集繁忙的系统。

2.短作业优先算法

解释:优先运行事件短的进程运行,这样有利于提高吞吐量,但是不利于长作业。

3.高响应比优先调度算法

解释:每个进程计算响应比这个指标,调度的顺序按照响应比的大小进行。响应比 = (等待的时间 + 要服务的时间) / 要服务的时间。这样在等待时间相当的情况下,要服务的时间越长,即长作业,响应比越大;同样在服务时间相当的进程下,等待的时间越长,响应比越大。
优点:综合考虑了短作业和长作业。

4.时间片轮转调度算法

解释:每个进程都分配固定的时间,时间片结束运行下一个进程。
缺点:时间片的大小是关键,时间片过长,浪费资源,时间过短,降低了CPU的使用效率。时间片一般是20-50ms。

5.最高优先级调度算法

解释:根据优先级的高低调度进程。进程的优先级分为静态优先级+动态优先级。静态优先级是进程创建的时候就赋予的。动态优先级是根据进程动态变化进行调整的。比如运行时间增加、等待时间增加。 分类:抢占式和非抢占式。 缺点:优先级低的可能永远得不到调度。

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

解释:每个队列的优先级不同,优先级越高的队列时间片长度越短,优先级低的时间片长。进程在优先级高的时间片内没有运行完成,就需要将其插入到下一个优先级队列中。所有优先级高的队列运行完优先级低的进程才运行,优先级低的进程运行,有优先级高的进程来了,要停止运行优先级低的进程,运行优先级高的进程。 是时间片轮转和最高优先级的综合。

二、页面置换算法

引入:加载数据时首先在在快表(CPU中)中查找,快表中没有查找的页号,那么就要从页表中查找,页表在话,就将其更新到快表上;页表中也没得话,就触发了页面置换算法。在使用某个算法之后,判断置换出去的该页是否是脏页,是脏页就需要更新到磁盘中,再将其置换出去。置换成功后,修改页表项。

1.最佳适应算法

解释:是页面置换算法的最佳效率。置换出在未来最长时间不使用的页面。

2.先进先出算法

解释:在内存中停留最长的页面置换出去。

3.最近最久未使用算法(LRU)

解释:最长时间没有被使用的页面置换出去。 实现:使用一个页面链表,最近最多被使用的在链头,最近最久未使用的在链尾,每次访问内存,将对应的页面从链表中删除并放在表头。

4.时钟页面置换算法

解释:时钟的指针指向最近最久没有使用的页面,如果页面的**访问字段**不为0,那么指针指向下一个页面,直到找到访问字段为0的页面,置换出去。

5.最不常用算法

解释:根据每个页面的访问次数,将访问次数最少的页面置换出去。 缺点:记录访问次数的字段的计数器,需要硬件资源。考虑了频率的问题,但是没有考虑时间的问题。有的页面开始经常使用,访问次数很大,但是后面不经常使用;但是有页面目前经常使用,但是其访问次数并不大,会被置换出去,这将影响置换的效率。解决:定期的将访问次数除以2,使得高访问次数减少。

三.磁盘调度算法

引入:磁盘访问最浪费时间的就是寻道,也就是磁盘移动的次数。磁盘移动的顺序会影响磁盘移动的次数,进一步也就影响磁盘访问的时间。

1.先来先服务

解释:先到的磁盘访问请求,先服务。

2.最短寻道时间

解释:请求中选择距离当前磁头最近的请求服务。 缺点:有可能出现饥饿现象,即存在磁头在100的请求,但是剩下的请求都小于50,当前磁头在小于50的位置。

3.扫描算法

解释:磁头在一个方向上移动,到了这个方向的末端,再调转方向。 缺点:磁盘的中部的扫描概率比两端大。

4.循环扫描

解释:磁头从一端开始,到达另一端的末尾再返回,返回的途中不操作。

5.LOOK个C-LOOk算法

解释:扫描算法和循环扫描算法都是到达磁道的末端才返回,LOOK和C-LOOK是不到达末端,到达请求的最远磁道就返回。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值