操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标


一、CPU调度

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

1.三个层次

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

层次 任务 调度 发生频率 进程状态变化
高级调度
(作业调度)
调度处于后备队列中的作业,创建进程 外存→内存 最低 无→创建态→就绪态
中级调度
(内存调度)
调度处于挂起队列中的进程 外存→内存 中等 就绪挂起态→就绪态
阻塞挂起态→阻塞态
低级调度
(进程调度)
调度处于就绪队列中进程 内存→CPU 最频繁 就绪态→运行态

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标
操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标
操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

2.七状态模型

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

  • “就绪挂起态"和"就绪态”、"阻塞挂起态"和"阻塞态"之间分别可以相互转换。
  • 当等待事件出现时,“阻塞挂起态"可以变为"就绪挂起态”(PCB是在内存中的,OS改版PCB内的状态标志就行)
  • 创建好PCB后,没内存时,可以直接调入外存中成为"就绪挂起态"。
  • 进程下CPU时可以直接调到外存,“运行态"变成"就绪挂起态”。

二、进程调度的时机与方式

这里的进程调度就是上面的低级调度的详细理解。
操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

1.调度与切换

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

2.什么时候需要调度

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

3.什么时候不能进行进程调度

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标
【在处理中断的过程中】
中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。

【OS内核程序临界区与临界区】
操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

  • OS内核程序临界区用来访问某种内核数据结构。如果不尽快释放的话,极有可能影响到OS内核的其他管理工作。因此在访问内核程序临界区期间不能进行调度与切换。
  • 如外设I/O很慢,如果不允许进程调度的话,CPU大部分时间在空闲。普通临界区访问的临界资源不会直接影响OS内核的管理工作。因此在访问普通临界区时可以进行调度与切换。

4.方式

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

三、调度算法的评价指标

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

1.利用率

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

2.系统吞吐量

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

3.计算时间

(1)周转时间

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

(2)等待时间

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标
操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标

(3)响应时间

操作系统(二):4.CPU调度、进程调度的时机、调度算法的评价指标