【操作系统】进程调度及其算法

来源:互联网 发布:mac 如何切换中英文 编辑:程序博客网 时间:2024/06/05 20:25

进程调度的任务

  1. 保存处理机信息
  2. 按某种算法选取进程
  3. 把处理器分配给进程

进程调度机制

  1. 排队器。把就绪进程排成一个或者几个队列
  2. 分派器。把进程从就绪队列中取出来,然后把处理机给他
  3. 上下文切换器。保存上一个进程的信息,分配下一个进程的信息

进程调度的方式

  1. 非抢占式
  2. 抢占式

进程调度算法

轮转调度算法

把就绪进程排成一个队列,把CPU分配给队首进程,执行一定的时间,运行完毕就分配给另一个新的队首进程,每隔一定的时间就执行一个进程

优先级调度算法

非抢占式优先级调度算法

一旦把处理机分配给一个就绪队列中的一个优先级较高的进程,该进程就会一直执行下去,或者因为某些事才会把处理机分配给别的进程

抢占式优先级调度算法

一旦把处理机分配给一个就绪队列中的一个优先级较高的进程,这时候又出现了另一个优先级更高的进程,系统会把处理机分配给另一个优先级要高的进程

优先级类型

  1. 静态优先级(一直不变)
  2. 动态优先级(随着等待时间一直改变)

多队列调度算法

  • 设置多个就绪队列
  • 不同类型或性质的进程固定分配在不同的就绪队列
  • 不同的就绪队列采用不用的调度算法
  • 一个就绪中的进程可以设置不同的优先级
  • 不同就绪队列本身也可以设置优先级

多级反馈队列调度算法

  1. 设置多个队列,赋给每个队列的优先级不同,第一个最高,第二个次子,,,其余逐个降低
  2. 不同队列中的进程所赋予的执行时间也不同,优先级越高的队列,时间片越小
  3. 每个队列都采用先到先服务算法,当轮到一个进程执行时,如果在时间片内完成,就祛除这个进程,否则就放入第二个队列,依次类推
  4. 按队列优先级调度,仅当第一队列空闲时才调度第二个队列。如果在调度第二个队列时候,第一个队列又有进程,处理机立即回到第一个队列

基于公平原则的调度算法

保证调度算法

公平分享调度算法

用户1有4个进程A B C D,用户2有1个进程 E
为保证两个用户能获得相同的处理时间,则执行调度
A E B E C E D E
如果让1是2 的2倍
执行为:
A B E C D E

0 0
原创粉丝点击