操作系统--进程调度
简介
低级调度(进程调度):根据某种算法,从就绪队列中选择某些进程分配处理机资源
进程调度的时机
需要进程调度与切换的情况
-
当前运行的进程主动放弃处理机
-
进程正常终止
-
运行过程中发生异常而终止
-
进程主动请求阻塞(如等待I/O)
-
-
当前运行的进程被动放弃处理机
-
分给进程的时间片用完
-
有更紧急的事需要处理(如I/O中断)
-
有更高优先级的进程进入就绪队列
-
不能进行进程调度与切换的情况
-
在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到中断处理过程中进行进程切换
-
进程在操作系统内核程序临界区中
-
在原子操作过程中(原语)。原子操作不可中断(如修改PCB中进程状态标志,并把PCB放到相应队列)
进程调度的方式
-
非剥夺调度方式,又称非抢占式。即只允许进程主动放弃处理机。再运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态
-
实现简单,系统开销小但是无法即使处理紧急任务,适合早期的批处理系统
-
-
剥夺调度方式,又称为抢占式。当一个进程正在处理机上执行时,如果有一个更紧急的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更紧急的那个进程
-
可以优先处理更紧急的进程,可以实现让各个进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统
-
进程切换的过程
-
对原来的进程各种数据的保存
-
对新的进程各种数据的恢复
-
如程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块
-