作业/进程调度算法

本文介绍了调度的概念、层次,包括高级、中级和低级调度。阐述了调度算法涉及的周转时间、平均周转时间等概念。详细分析了先来先服务、短作业优先、高优先权优先等常用调度算法的特点、优缺点及实现方式,如先来先服务适合长作业,短作业优先能提高系统吞吐量但对长作业不利等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 首先了解什么是调度?

调度实质是一种资源分配,调度程序从内存中选择一个可执行的进程,为之分配CPU。

  • 调度的层次? 

作业从进入系统到后备队列,再从运行到结束退出系统为止,期间经过不同级别的调度:

  • 高级调度

           高级调度又长程调度或作业调度。是将在外存上处于后备队列中的作业调入内存,为其创建进程、分配资源、放入就绪队列。(外存 ---> 内存)

  • 中级调度

           中级调度又称内存调度。是将不能运行的进程调到外存等待(挂起状态),当其具备影响条件且内存有空闲时,再调内存。(提高内存利用率,系统吞吐量)

  • 低级调度

           低级调度又称进程调度。是为就绪队列中的进程分配处理机。(内存 ---> CPU)

  • 调度算法中涉及概念:
  • 周转时间

       周转时间指作业被提交给系统开始,到作业完成为止的这段时间间隔。

周转时间Ti = 完成时间 - 到达时间
  • 平均周转时间

        每个用户希望自己作业周转时间最短,而对于系统管理者则希望平均周转时间最短。对应n个作业,及其对应作业周转时间Ti,可得平均周转时间:

                      \LARGE {\color{DarkGreen} }{\color{Purple} }T = 1/n[\sum_{i-1}^{n}T_i]

  • 带权周转时间

        带权周转时间,即作业周转时间Ti与系统为它提供服务时间Ts之比:

                      \LARGE W_i=T_i/T_s

  • 平均带权周转时间

        对与n个作业,每个作业带权周转时间为Wi,则平均带权周转时间

                      \LARGE W=1/n[\sum_{i=1}^{n}\tfrac{T_i}{T_s}]

  • CPU利用率

        CPU利用率,即作业执行时间Ci 与 周转时间Ti的比率。即:

                      \LARGE U_i=C_i/T_i

  • 响应比

        响应比,即作业响应时间(等待时间+运行时间)与运行时间之比:

                      \LARGE R_p=^{\tfrac{T_w+T_s}{T_s}}

 

常用调度算法:

  • 先来先服务调度(FCFS)

特点:

  1. 按作业(进程)先后次序进行调度;
  2. 非抢占方式。(进程一旦执行,一直到运行结束或阻塞时,才将其退出,处理机分配给其他进程)
  3. 可以采用队列来实现。

按FSFS执行,平均作业周转时间较长,不作为主调策略,但适合长作业。

  •  短作业优先调度(SJF)

特点:

  1. 作业计算时间越短,优先级越高;
  2. 可采用抢占式或非抢占式;
  3. 用于高级调度。

优点:

      与FCFS相比,提高系统吞吐量。

缺点:

  1.  需要知道作业运行时间,一般系统会估计作业运行时间,估计时间一般偏长;
  2.  对长作业不利,长作业周转时间明显增加,可能得不到服务(饥饿现象);
  3.  采用此算法,人-机无法交互;
  4.  未考虑作业紧迫程度。
  • 高优先权优先调度(PSA)

特点:

  1.  按照进程优先级大小进行调度;
  2.  相同优先级的按照FCFS顺序调度;
  3.  主要用于进程。

调度算法类型:

  1. 抢占式:处理机分配给优先级最高的进程,但如果在其运行期间有更高优先级的进程时,调度程序就会将处理机分配到新优先级最高的进程;
  2. 非抢占式:一旦处理机分配给一个进程,则其将一直执行下去,直至运行结束或是阻塞退出。

优先级类型:

  1.  静态优先级: 是在进程创建时确定,在进程的运行整个期间保持不变。
  2. 动态优先级:  是在进程创建时分配一个优先级,随着进程的推进或等待时间的增加而改变。

 

  • 高响应比优先调度(HRRN)

特点:

  1.  响应比高的先调度;
  2.  非抢占策略。

优点:

  1.  有利于短作业:等待时间相同,服务时间越短,响应比越高;
  2.  实现先来先服务:服务时间相同,等待时间越短,响应比越高;
  3.  即使是长作业,随着等待时间增加,其响应比也会增加,也有机会被调用。

缺点:

     由于要计算响应比,所以增加了系统开销。

 

  • 时间轮转调度(RR)

特点:

  1.  按进程FCFS策略,组织进程就绪队列;
  2.  确定合适大小时间片;
  3.  得到时间片的进程即被分配处理机运行,直到时间片结束或程序运行结束;
  4.  可抢占策略。

 

  • 多级反馈队列调度

特点:

  1.  多个进程就绪队列,每个对应一个调度优先级别,各级不同;
  2.  各级就绪队列中进程具有不同时间片,依优先级从高到低成倍增加;
  3. 各级队列按FIFO原则排序。

算法实现:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值