进程管理:CPU 调度与上下文切换
调度的基本概念思维导图:
调度的基本概念
调度是一种资源分配的行为
三种调度层次
- 高级调度(作业调度):调用频率最低,一个作业只会有一次调入和一次调出
- 中级调度(内存调度):把暂时不会用到的进程调出内存,提高内存利用率和系统吞吐量
- 低级调度(进程调度):从就绪队列选择一个进程上处理机运行
进程的七状态模型
- 创建态
- 就绪态
- 运行态
- 阻塞态
- 终止态
- 阻塞挂起
- 就绪挂起
调度算法的评价指标思维导图:
调度算法的目标(指标)
- 公平性
- 资源利用率:CPU利用率=CPU忙碌时间/总时间
- 平衡性:处理机密集型与I/O密集型的平衡
- 周转时间:作业从用户提交开始到完成为止经历的时间; 包含在外存中的等待时间
- 系统吞吐量:单位时间内完成的作业数
- 响应时间:从用户提交请求开始到首次对改作业做出响应的时间
- 等待时间:等待时间 = 周转时间 - 服务时间
调度的实现思维导图:
调度的实现
调度器/调度程序(scheduler)
- 非抢占式调度:当前进程阻塞或退出才会唤醒调度程序
- 抢占式调度:就绪队列发生改变,时间片切换时发生
调度的时机与调度方式(抢占式/非抢占式)
可以发生调度的时机
- 创建一个进程后
- 进程退出
- 进程阻塞
- 时间片切换
- 可抢占式系统中进程进入就绪队列
- I/O中断
不能发生调度的场合
- 中断操作
- OS内核程序临界区
- 原语操作
调度的方式
- 非抢占式调度:只能由进程主动放弃CPU
- 抢占式调度
闲逛进程
当就绪队列中没有进程时运行闲逛进程,优先级最低
内核级线程与用户级线程调度
- 内核级线程调度的对象是内核级线程
- 用户级线程调度对象是进程