Appearance
2.7 调度的类型
如果有多个进程(线程)竞争CPU:
需要选择下一个要运行的进程(线程)
OS中完成这部分工作的程序称为调度程序(scheduler)
调度程序使用的算法称为调度算法(scheduling algorithm)
调度的目标:以满足系统目标(如响应时间、吞吐量、处理器效率)的方式,将进程分配到一个或多个处理器上执行。
一、调度的层次
二、长程调度
长程调度(高级调度、作业调度)
- 决定外存上处于后备队列中的哪个作业能够进入系统中被处理
- 为它们创建进程、分配必要的资源
- 将新创建的进程排在就绪队列(就绪/挂起)上,等待短程(中程)调度
长程调度需要考虑两个问题
何时创建一个新进程?
取决于多道程序的并发度,即允许同时在内存中运行的进程数。另外,若处理器的空闲时间超过了某个阈值,也可能会启动长程调度。
选择哪些作业来创建进程?
取决于长程调度算法。
三、中程调度
中程调度(中级调度)
- 对换功能的一部分,用以提高内存的利用率和系统的吞吐量
- 内存紧张时,选择一个进程换出到外存(换出)
- 内存充裕时,从外存选择一个挂起状态的进程调度到内存(换入)
- 只有支持进程挂起的操作系统才具有中程调度功能
四、短程调度
短程调度(进程调度、低级调度)
- 决定就绪队列中的哪个进程应获得处理器
- 运行频率最高
- 现代操作系统几乎都具有短程调度功能
引发短程调度的事件
- 时钟中断
- I/O中断
- 操作系统调用
- 信号(如信号量)