分享

操作系统内有哪些调度算法?看完这篇文章,也就差不多了

 AnonymousV脸 2018-11-25

一、系统调度算法

1、先来先服务算法,它根据进程到达时间决定先运行哪一个进程,非抢占。

2、短作业优先算法,是根据服务的时间经行选择。

3、时间片轮转算法,当中断发生时,当前运行的程序置于就绪队列(队尾)中,然后基于FCFS选择下一个就绪作业运行。

4、优先级算法,在作业调度中,优先级调度算法每次从后备作业队列中选择优先级最髙的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,优先级调度算法每次从就绪队列中选择优先级最高的进程,将处理机分配给它,使之投入运行。

5、高响应比算法,同时考虑每个作业的等待时间和估计的运行时间。在每次进行作业调度时,先计算后备作业队列中每个作业的响应比,从中选出响应比最高的作业投入运行。响应比=(等待时间+服务时间)/服务时间。

6、多级反馈队列 , 多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合和发展,如图2-5 所示。通过动态调整进程优先级和时间片大小,多级反馈队列调度算法可以兼顾多方面的系统目标。

二、页面置换算法:在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。也就相当于裁员,再招新人顶替。

1、最佳置换算法(OPT):标记最大的页应该被置换。

2、先进先出置换算法(FIFO):即先进入内存的页,先退出内存。

3、最近最久未使用(LRU)算法:把过去最长一段时间里不曾被使用的页面置换掉,裁老员工。

4、时钟算法:

用环形链表存储各页面。初始化时各页面的访问位为0。如果不缺页,则把相应页面的访问位设置为1。如果缺页,则从最先进入链表的页面开始遍历,遇到访问位为1的页面,则访问位设置为0;遇到访问位为0的页面,则把它替换到外存中去,然后把需要的页面替换进内存,且访问位为1。然后把当前指针移到下一个页面上,再进行下一次页面请求处理。

三、磁盘调度算法

1.FIFO:先来先服务算法,当前磁道在某一位置,依次处理服务队列里的每一个磁道。

2.SSTF: 最短寻道时间算法,当前磁道处理完,接下来处理的是距离当前磁道最近的磁道号,处理完成之后再处理离这个磁道号最近的磁道号。

3.SCAN:电梯调度算法,先按照一个方向,扫描的过程中依次访问要求服务的序列。当扫描到最里层的一个服务序列时反向扫描。

4.CSCAN: 循环扫描算法,访问完最里面一个要求服务的序列之后,立即回到最外层欲访问磁道。也就是始终保持一个方向。故也称之为单向扫描调度算法。

5.FSCAN:分步电梯调度算法(分两个队列

可以看出,可以使用的算法很多,感觉很杂,但是他们还是有联系的。比如都有先进先出,其他的就要靠理解了,掌握了这些内容,那么操作系统就懂了多半了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多