【操作系统学习笔记】处理器管理2.2
进程调度的切换时机和调度方式
时机
进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机
- 主动放弃处理机
- 进程正常终止
- 进程发送异常而终止
- 进程主动请求阻塞
- 被动放弃处理机
- 进程时间片用完
- 有更紧急的任务要处理
- 有优先级更高的任务进入就绪队列
不能进行进度调度和切换的情况:
- 在处理中断的过程中
- 进程在操作系统内核程序临界区中
- 临界资源是指一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源
- 临界区是指访问临界资源的那段代码
- 内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列。如果不能尽快释放,极有可能会影响到操作系统其他系统内核的管理程序的工作。因此在访问内核程序临界区间不能进行调度与切换
- 在原子操作过程中
方式
非剥夺调度方式
只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态
剥夺调度方式
当一个进程正在处理机上执行时,如果有一个更重要和更紧迫的任务需要使用处理机,则立刻暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程
切换与过程
- 狭义的进程调度与进程切换
- 狭义的进程调度指的是从就绪队列中选中一个要运行的程序
- 狭义的进程切换指的是一个进程让出处理机,另一个进程占用处理机的过程
- 广义的进程调度包含了进程调度和切换两个部分
进程的切换过程:
- 对原来运行进程各种数据的保存(保存在 PCB)
- 对新的进程各种数据的恢复(从 PCB 恢复)