0%

OS-调度

参考教材:《操作系统——精髓与设计原理》(第八版)

chp9单处理器调度

简答

*一、调度与进程状态

长程、中程、短程调度_「已注销」的博客-CSDN博客_中程调度

  • 长程调度:从外存中选择一个任务(作业)送到内存中,为之创建线程,并将这个线程加入准备队列。
  • 中程调度:从将外存中挂起的线程中选择线程送到内存
  • 短程调度:从准备队列中选择线程送到CPU执行(一般说的进程调度就是)

调度和进程状态转换

  • 准备(就绪)队列和阻塞队列在内存,挂起队列在外存。
  • 挂起有两个队列,就绪挂起阻塞挂起
    • 从内存的准备队列中被挂起的线程会进入就绪挂起队列
    • 从内存的阻塞队列中被挂起的线程会进入阻塞挂起队列

调度的层次

二、调度算法

  • 周转时间tr:进程从提交到完成(包括执行+等待)
  • 响应时间:对于交互式进程而言,从提交请求到开始接收响应
  • 归一化周转时间=周转时间/服务时间:表示一个进程的相对延迟情况
  • Gantt chart甘特图,表示进程运行情况
item 描述 抢占? 优点 缺点
FCFS 先来先服务 × 简单 对短进程不利
RR 轮转。周期性地产生时钟中断。 公平对待 时间片过短会使进程切换过于频繁,增加系统开销;时间片过长会使进程响应时间增加。
SPN 最短进程优先 × 对短进程友好 对长进程不利
SRT 最短剩余时间
HRRN 最高响应比 × 提供较好的响应时间
反馈法 优先队列,优先级下移,在第RQi队列可使用2^i个时间片 对I/O密集型的进程可能有利

选择

  • 中程调度:将进程的至少一部分添加到主存中,使其执行
  • 进程的换入基于系统并发度的需求提出
  • 交互系统中,响应时间要求主要基于:面向用户、与性能相关
  • 抢占式:运行OS终端当前正在运行的进程并将其改变为就绪态

others

CPU调度与进程状态

什么是CPU调度,CPU调度完全攻略 (biancheng.net)

需要进行 CPU 调度的情况可分为以下四种:

  1. 当一个进程从运行状态切换到阻塞(等待)状态时(例如,I/O 请求,或 wait() 调用以便等待一个子进程的终止)。
  2. 当一个进程从运行状态切换到就绪状态时(例如,当出现中断时)。
  3. 当一个进程从阻塞(等待)状态切换到就绪状态时(例如,I/O 完成)。
  4. 当一个进程终止时。

对于第 1 种和第 4 种情况,除了调度没有选择。一个新进程(如果就绪队列有一个进程存在)必须被选择执行。不过,对于第 2 种和第 3 种情况,还是有选择的。