(五)处理器调度

2017-10-14  本文已影响20人  BubbleM

CPU调度

按一定的调度算法从就绪队列中选择一个进程,把CPU的使用权交给被选中的进程。其任务是控制、协调进程对CPU的竞争。

CPU调度要解决的三个问题

  1. what:按什么原则选择下一个要执行的进程(调度算法)
    调度算法衡量指标:
  1. when:何时进行选择(调度时机)
  1. how:如何让被选中的进程上CPU运行(调度过程,进程的上下文切换)
    进程切换:是指一个进程让出处理器,由另一个进程占用处理器的过程。主要包括两部分工作:

设计调度算法的要点

  1. 需考虑数据结构,进程控制块PCB中,需要记录哪些与CPU调度有关的信息,设计相应的字段
  2. 进程优先级及就绪队列的组织
    优先级表现了进程的重要性和紧迫性。优先数是一个数值,反映了某一个优先级。
  1. 抢占式调度与非抢占式调度
  1. I/O密集型与CPU密集型进程
  1. 时间片
    指一个时间段,分配给调度上CPU的进程,确定了允许该进程运行的时间长度。

批处理系统的调度算法

  1. 先来先服务FCFS-First Come First Server
    按照进程就绪的先后顺序使用CPU。使用一个队列就可以实现,新就绪的排在队尾。
    是非抢占的。
FCFS举例
  1. 最短作业优先SJF-Shortest Job First
    具有最短完成时间的进程优先执行。
    非抢占式。
  1. 最短剩余时间优先SRTN-Shortest Remaining Time Next
    SJF抢占式版本。即当一个新就绪的进程比当前运行进程具有更短的完成时间时,系统抢占当前进程,选择新就绪的进程执行。
  2. 最高响应比优先HRRN-Highest Response Ratio Next
    调度时,首先计算每个进程的响应比R,之后总是选择R最高的进程执行。
响应比计算的一种方式

交互式系统中采用的调度算法

  1. 时间片轮转调度RR-Round Robin
    目标:为短任务改善平均响应时间
    解决问题的思路:周期性切换;每个进程分配一个时间片;时钟中断-->轮换。
image.png
  1. 最高优先级调度HPF-Highest Priority First
    选择优先级最高的进程投入运行。
  1. 多级反馈队列Multiple feedback queue
    是一个综合调度算法。
  2. 最短进程优先Shortest Process Next
各种调度算法的比较

典型系统所采用的调度算法

  1. UNIX 动态优先数法
  2. 5.3BSD 多级反馈队列法
  3. Linux 抢占式调度
  4. Windows 基于优先级的抢占式多任务调度
  5. Solaris 综合调度算法

线程的时间配额

时间配额不是一个时间长度值,而一个称为配额单位的整数。
一个线程用完了自己的时间配额时,如果没有其他相同优先级的线程,Windows将重新给该线程分配一个新的时间配额,让它继续运行。

上一篇 下一篇

猜你喜欢

热点阅读