参考教材:《操作系统——精髓与设计原理》(第八版)
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 调度的情况可分为以下四种:
- 当一个进程从运行状态切换到阻塞(等待)状态时(例如,I/O 请求,或 wait() 调用以便等待一个子进程的终止)。
- 当一个进程从运行状态切换到就绪状态时(例如,当出现中断时)。
- 当一个进程从阻塞(等待)状态切换到就绪状态时(例如,I/O 完成)。
- 当一个进程终止时。
对于第 1 种和第 4 种情况,除了调度没有选择。一个新进程(如果就绪队列有一个进程存在)必须被选择执行。不过,对于第 2 种和第 3 种情况,还是有选择的。