进程调度算法

进程调方式

  • 非抢占式

    • 进程分配到处理机时,就会一直执行下去,不会被其他进程抢占,直到该进程完成或被阻塞。
  • 抢占式

    • 允许调度程序根据某种原则,去暂停某个正在执行的进程,将以分配的处理机重新分配给另一进程。这样可以防止一个长进程长时间地占用处理机。

      主要原则:

      1. 优先权原则,优先级高的进程可以占用当前进程;
      2. 短进程优先原则,短进程可以抢占当前长进程的处理机;
      3. 时间片原则,当前进程的时间片用完,执行其他进程。

轮转调度算法(RR)

  1. 原理
  • 在轮转(RR)法中,系统根据 FCFS(先来先服务)策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔(如30 ms)即产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程,令其执行。当该进程的时间片耗尽或运行完毕时,系统再次将CPU分配给新的队首进程(或新到达的紧迫进程)。由此,可保证就绪队列中的所有进程在一个确定的时间段内,都能够获得一次CPU执行。
  1. 时间片大小
  • 时间片小,意味着频繁执行进程调度和进程的上下文的切换,增加系统的开销;时间片长,RR算法退化成FCFS算法,无法满足短作业和交互式用户的需求。
  • 取大多数进程能在一个时间片内完成所对应的时间。

优先级调度算法

  • 将处理机分配给就绪队列中优先级最高的进程。
  • 优先级类型
    • 静态优先级,创建进程时确定,运行过程中不变;
    • 动态优先级,创建进程时先赋予一个优先级,然后其值随进程的推进或等待时间的增加而改变,如等待时间增长优先级提高;

多队列调度算法

  • 上述调度算法,系统中仅设置了一个进程的就绪队列,无法满足系统中不同用户对进程调度策略的不同要求。
  • 该算法将系统中的进程就绪队列从一个拆分为若干个,将不同类型或性质的进程固定分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级。多队列调度算法由于设置多个就绪队列,因此对每个就绪队列就可以实施不同的调度算法,因此,系统针对不同用户进程的需求,很容易提供多种调度策略。

多级反馈队列调度算法

  • 上述算法中,如果未指明进程长度,短进程优先和基于进程长度的抢占式调度算法都将无法使用。多级反馈队列调度算法不必事先知道进程长度,是目前公认的一种比较好的进程调度算法。
  1. 调度机制
    • 设置 N 个就绪队列,优先级依次降低,时间片长度逐个增加一倍;
    • 每个队列采用 FCFS 算法,当新进程进入内存后,先将其放至第一个就绪队列末尾,轮到该进程执行时,若进程在时间片内完成,则撤离系统,否则放入下一个就绪队列末尾;第 N 个队列采用 RR 调度方式;
    • 按队列优先级调度:当第1~(i-1) 就绪队列均为空时,系统才会调度第 i 队列;当优先级更高的队列有新进程时,把当前执行的进程放入其所在队列末尾,立即去调用优先级更高的进程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yMGglW8o-1630330247468)(/images/多级反馈队列调度算法.png)]
2. 性能

  • 终端型用户。由于终端型用户提交的作业多属于交互型作业,通常较小,系统要能使这些作业在第一队列规定的时间片内完成,便可使终端型用户感到满意。
  • 短批处理作业用户。对于这类作业,如果可在第一队列中执行完成,便获得与终端型作业一样的响应时间。对于稍长的短作业,也只需在第二和第三队列各执行一时间片完成,其周转时间仍然较短。
  • 长批处理作业用户。对于长作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值