• 作业与作业调度--四种调度算法


    1.FCSF算法(先来先服务)

    算法思想

            当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是最优先考虑在系统中等待时间最长的作业,不管作业执行时间的长短。

            在进程调度中,采用FCFS算法时,每次调度就是从就绪队列中选择最先进入该队列的进程,为其分配处理机,运行。

    优点

            简单,容易实现

    缺点

            平均等待时间波动较大

            I/O资源和CPU资源的利用率低,对短作业不利

    2.短作业优先(SJF)

    算法思想

            系统从进程队列中选择执行时间最短的进程优先执行,时间越短,优先级越高

    优点

            降低了短作业的等待时间,平均周转时间减小了

            系统吞吐量提高

    缺点

            很难准确预估作业运行时间

            对长作业不利,可能等待长时间得不到执行

            也未考虑作业的紧迫程度

    3.优先级调度算法(PSA)

    算法思想

            基于作业紧迫程度,赋予作业响应的优先级,系统从后备队列获取优先级高的进程优先执行

    优点

            紧迫作业可以优先执行

            适合分时、实时系统

    缺点

            低优先级的进程需要等待很久或者永远执行不了

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

    算法思想

            系统从后备队列中选择响应比高的进程优先执行

    响应比

            响应比 = (作业等待时间 + 作业运行时间)/ 作业运行时间 = 1 + 作业等待时间 / 作业运行时间

    优点

            优先级动态变化,既可以考虑到作业进入系统的次序,又能考虑到作业运行的时间

            保证长作业等待足够时间必然能执行

    缺点

            每次调度都要计算相应比,开销大

    示例

    解释:

    1.FCSF

    顺序:A -> B -> C -> D

    作业

    周转时间

    带权周转时间

    A

    2

    2 / 2 = 1

    B

    10 - 8.5 + 0.5 = 2

    2 / 0.5 = 4

    C

    10.5 - 9.0 + 0.1 = 1.6

    1.6 / 0.1 = 16

    D

    10.8 - 9.5 + 0.2 = 1.3

    1.3 / 0.2 = 6.5

    T = (2 + 2 + 1.6 + 1.3 ) / 4 = 1.725

    W = (1 + 4 + 16 + 6.5) / 4 = 6.875

    2.SJF

    顺序:A -> C - >D -> B

    作业

    周转时间

    带权周转时间

    A

    2

    2 / 2 = 1

    B

    10.3 - 8.5 + 0.5 = 2.3

    2.3 / 0.5 = 4.6

    C

    10.0 - 9.0 + 0.1 = 1.1

    1.1 / 0.1 = 11

    D

    10.1 - 9.5 + 0.2 = 0.8

    0.8 / 0.2 = 4

    T = ( 2 + 2.3 + 1.1 + 0.8) / 4 = 1.55

    W =(1 + 4.6 + 11 + 4) / 4 = 5.15

    3.PSA

    顺序:A -> B -> D -> C

    作业

    周转时间

    带权周转时间

    A

    2

    2 / 2 = 1

    B

    10.0 - 8.5 + 0.5 = 2

    2.0 / 0.5 = 4

    C

    10.7 - 9.0 + 0.1 = 1.8

    1.8 / 0.1 = 18

    D

    10.5 - 9.5 + 0.2 = 1.2

    1.2 / 0.2 = 6

    T = ( 2 + 2 + 1.8 + 1.2) / 4 = 1.75

    W = (1 + 4 + 18 + 6 ) / 4 = 7.25

    4.HRRN

    响应比:

    B: 1 + (10 - 8.5) / 0.5 = 4

    C: 1 + (10 - 9.0) / 0.1 = 11

    D: 1 + (10 - 9.5) / 0.2 = 3.5

    顺序:A -> C -> B -> D

    作业

    周转时间

    带权周转时间

    A

    2

    2 / 2 = 1

    B

    10.1 - 8.5 + 0.5 = 2.1

    2.1 / 0.5 = 4.2

    C

    10.0 - 9.0 + 0.1 = 1.1

    1.1 / 0.1 = 11

    D

    10.6 - 9.5 + 0.2 = 1.3

    1.3 / 0.2 = 6.5

    T = ( 2 + 2.1 + 1.1 + 1.3 ) / 4 = 1.625

    W = ( 1 + 4.2 + 11 + 6.5 ) / 4 = 5.675

    over!

  • 相关阅读:
    数据结构与算法【递归】Java实现
    十个一手app拉新地推拉新推广接单平台,放单/接任务渠道
    Spring Boot入门(23):【实战】通过AOP拦截Spring Boot日志并将其存入数据库
    SEnet注意力机制(逐行代码注释讲解)
    深度解读智能媒体服务的重组和进化
    CISCO+交换机的常用命令
    008: 寻找丑数
    python基础语法(六)
    论文阅读笔记(三)——有监督解耦+信息瓶颈
    加速CI构建,实现高效流水线——CloudBees CI发布工作区缓存功能
  • 原文地址:https://blog.csdn.net/princekin_even/article/details/127440732