zoukankan      html  css  js  c++  java
  • 调度与死锁1

    第八章 调度与死锁

    8.1 调度的基本概念

    一、调度的类型(层次关系)

    1.高级调度(作业调度)

    高级调度又称长程调度或作业调度,它的调度对象是作业。其主要功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业凋入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列0高级调度上要用于多道批处理系统中,而在分时和实时系统中不设置高级调度。

    1. 低级调度(进程调度)

    低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级线程)。其主要功能是,根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。

    1. 中级调度(对换)

    中级调度又称为内存调度。引入中级调度的主要目的是,提高内存利用率和系统吞吐 最。为此,应把那些暂时不能运行的进程,凋至外存等待,此时进程的状态称为就绪驻外 存状态(或挂起状态)。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定, 把外存上的那些己具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。

     

    二、调度准则(CPU利用率高)

    1. 平均周转时间短(批处理)

    周转时间T=完成时刻-提交时刻=等待时间+运行时间

    带权周转时间W=T/运行时间

    1. 相应时间快(分时)
    2. 截止时间有保证(实时)

     

    8.2 调度算法

    一、先来先服务(FCFS)

    FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择儿个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然后把它放入就绪队列。

    进程名

    A

    B

    C

    D

    E

    到达时刻

    0

    1

    2

    3

    4

    服务时间

    4

    3

    5

    2

    4

    开始时刻

    0

    4

    7

    12

    14

    完成时刻

    4

    7

    12

    14

    18

    T

    4

    6

    10

    11

    14

    W

    1

    2

    2

    5.5

    3.5

     

    二、短作业(进程)优先(SJ(P)F)

    SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以 作业所要求的运行时间来衡的。SJF箅法可以分別用于作业调度和进程调度。在把短作 业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若千个估计运行时间 最短的作业,优先将它们调入内存运行。

    进程名

    A

    B

    C

    D

    E

    到达时刻

    0

    1

    2

    3

    4

    服务时间

    4

    3

    5

    2

    4

    开始时刻

    0

    6

    13

    4

    9

    完成时刻

    4

    9

    18

    6

    13

    T

    4

    8

    16

    3

    9

    W

    1

    2.67

    3.2

    1.5

    2.25

     

    三、时间片轮转(RR)

     

    四、优先级

    我们可以这样来看作业的优先级,对于先来先服务调度算法,作业的等待时间就是作 业的优先级,等待时间越长,其优先级越对了-短作业优先调度算法,作业的长短就是 作业的优先级,作业所需运行的时间越短,优先级越高。但上述两种优先级都不能反映作业的紧迫程度。而在优先级调度算法屮,则是基于作业的紧迫程度,由外部赋予作业相 应的优先级,调度算法根据该优先级进行调度的。这样就可以保证紧迫性作业优先运行。 优先级调度算法可作为作业调度算法,也作为进程调度算法。当把该算法用于作业调度 时,系统是从后备队列中选择若干个优先级最高的作业装入内存。

    1. 静态优先级
    2. 动态
    3. 非抢占
    4. 抢占
    5. 响应比高者优先

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

     

    五、多级队列

    六、多级反馈队列(UNIX)

     

  • 相关阅读:
    php单点登录
    【Docker】docker镜像构建
    【测试经验】网关中间件测试
    【Jmeter】调用Dubbo方法
    【计算机网络】TCP三次握手与四次挥手
    【操作系统】死锁
    【操作系统】线程与进程
    【计算机网络】TCP/IP
    【计算机网络】Http与Https
    【二叉树】二叉树的创建与遍历
  • 原文地址:https://www.cnblogs.com/giaogiaogiao/p/12875091.html
Copyright © 2011-2022 走看看