• 调度算法(笔记)


    自己的小小笔记总结

    调度算法:根据系统的分配策略所规定的资源分配算法

    ①为什么会有调度算法?调度算法有什么用?根据不同的系统和系统目标,采用不同的调度算法,能更加高效地提高效率。

    ②有哪些调度算法?

    1.先来先服务调度算法(FCFS)

    2.短作业(进程)优先调度算法(SJF)

    3.高优先权调度算法(FPF)

    4.基于时间片的轮转调度算法(RR)

    1.先来先服务调度算法(最简单的调度算法)

    原理:

    可用于作业调度和进程调度。谁先来就先给谁服务

    作业调度时:从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个最先进入该队列的进程,为它分配处理机。

    优点:利于长作业,CPU繁忙型进程

    缺点:不利于短作业,I/O繁忙型进程

    2.短作业(进程)优先调度算法

    原理

    对短作业或短进程优先调度(偏心短作业/短进程)

    作业调度时:从后备作业队列中选择一个或多个估计运行时间最短的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个估计运行时间最短的进程,为它分配处理机。

    优点:利于短作业(进程)

    缺点:不利于长作业,没考虑作业的紧迫程度,实际应用中该算法不一定能真正做到短作业优先调度。

    3.高优先权调度算法(FPF)

    原理:

    对短作业或短进程优先调度(偏心短作业/短进程)

    作业调度时:从后备作业队列中选择若干个优先权最高的作业,将它们调入内存,为他们分配资源,创建进程,然后放入就绪队列。

    进程调度时:从就绪队列中选择一个优先权最高的进程,为它分配处理机。

    算法分类

    非抢占式优先权算法(要从一而终运行下去,除非自身放弃处理机)

    抢占式优先权算法(处理机可以被抢)

    优先权分类:

    静态优先权:在创建进程时确定,在整个运行期间保持不变。

                           那怎么确定这个静态优先权呢?

           有三依据: ①进程类型。系统进程的优先权比一般用户进程的要高

                                              ②进程对资源的需求。

                                              ③用户要求

    动态优先权:在创建进程时确定,但可以在运行期间改变

    优点:利于短作业(进程)

    缺点:不利于长作业,没考虑作业的紧迫程度,实际应用中该算法不一定能真正做到短作业优先调度。

    高响应比优先调度算法

    这里要记住的是一个公式:

           优先权(响应比)=(等待时间+要求服务时间)/要求服务时间

    优点:照顾短作业,考虑作业的先后到达次序,兼顾长作业

    缺点:增加系统开销(因为每次调度都要进行响应比计算)

    4.基于时间片的轮转调度算法

    (1)时间片轮转法

    原理:在每次调度,把CPU分配给队首进程(按先来先服务排序的队列),让其执行一个时间片。当时间片用完,该进程会被停止,然后把它送到就绪队列的末尾,再把处理机分配给新的队首进程。

    (2)多级反馈队列调度算法

    原理:

    (1)设置多个就绪队列,为各个队列依次递减赋予不同优先权,且第一队列优先权最高, 最后队列优先权最低。优先权越高,时间片越小。(在每个队列中都遵循FCFS)

    (2)当一个新进程进入内存时,首先把它放进第一队列末尾,按FCFS原则静静地等待。轮到自己上场的时候,如果在规定的时间片里没有完成自己的任务,就会被安置到第二队列的末尾,同样,如果还没完成,就会到第三队列末尾,这样依次被安排下去。。。

    (3)只有当第一队列空闲时,调度程序才会找第二队列的进程去运行。同理,只有当第1~(i-1)队列空闲时,才会调度第i队列的进程。

    优点:拥有较好的性能,能满足终端型作业用户,短批处理作业用户,长批处理作业用户的需要。

    调度算法中涉及的计算:

         等待时间=开始服务时间-到达时间

         优先权(响应比)=(等待时间+要求服务时间)/要求服务时间

  • 相关阅读:
    工序打扎流程(自定义按钮移动、群响应。)
    将FAT磁盘转化为NTFS格式。
    VC监视新硬件插入电脑。
    VC读取分析网络文件
    工序打扎流程(箭头实现、刷新画面)
    VC实现自定义按钮响应拖动
    VC中ListCtrl经验总结【转载】
    C++的优先级
    VC画面闪烁及解决方法
    改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
  • 原文地址:https://www.cnblogs.com/bxtfdxg/p/12694791.html
Copyright © 2020-2023  润新知