• 时间片轮转调度、优先级调度、多级反馈队列调度


    调度算法

    Snipaste_2020-11-01_17-04-11

    时间片轮转

    常用于分时系统,更注重“响应时间”,因而此处不计算周转时间。

    时间片为2

    Snipaste_2020-11-01_17-16-11

    Snipaste_2020-11-01_17-18-26

    Snipaste_2020-11-01_17-19-10

    时间片为5

    Snipaste_2020-11-01_17-20-47

    按照先来先服务调度算法

    Snipaste_2020-11-01_17-21-45

    如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大。

    ​ 比如:系统中有10个进程在并发执行,如果时间片为1秒,则一个进程被影响可能需要等9秒...也就是说,如果用户在自己进程的时间片外通过键盘发出调试命令,可能需要等待9秒才能被系统响应。

    另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量时间来处理进程切换,从而导致实际用于进程执行的时间比例减少,可见时间片也不能太小

    一般来说,设计时间片要让切换进程的开销占比不超过1%

    Snipaste_2020-11-01_17-25-27

    优先级调度算法

    Snipaste_2020-11-01_17-31-39

    Snipaste_2020-11-01_17-34-28

    Snipaste_2020-11-01_17-43-35

    Snipaste_2020-11-01_17-44-34

    FCFS算法的优点是公平

    SJF算法的优点是能尽快处理完短作业,平均等待/周转时间等参数很优秀

    时间片轮转调度算法可以让各个进程得到及时的响应

    优先级调度算法可以灵活地调整各种进程被服务的机会

    多级反馈队列调度算法

    Snipaste_2020-11-01_17-51-49

    Snipaste_2020-11-01_17-54-38

    Snipaste_2020-11-01_17-55-10

    :比起早期的批处理系统来说,由于计算机造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而这几种算法恰好也能较好地满足交互式系统的需求。因此这三种算法适合用于交互式系统

  • 相关阅读:
    自定义 spark transformer 和 estimator 的范例
    spark 与 scikit-learn 机器学习流程组件设计哲学比较
    命名空间和作用域
    FeatureUnion 与 ColumnTransformer 关系
    注解与装饰器
    装饰器编写--要点
    闭包结构的本质
    SQL 自动增长 identity
    SQL 基本的函数
    int和long long有符号整形 负数比正数多一个
  • 原文地址:https://www.cnblogs.com/coderD/p/13910546.html
Copyright © 2020-2023  润新知