(一) 进程调度的任务:
(1)保存处理机的现场信息,如程序计数器、多个通用寄存器中的内容
(2)按照某种算法选取进程,将其状态改为运行状态
(3)把处理器分配给进程,由分派程序把处理器分配给该进程,将进程控制块内有关处理器现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让他从上次断点处恢复运行
(二) 进程调度机制:
a) 排队器
将所有就绪的进程按照一定的策略排成一个或多个队列,以便调度进程能最快找到他们。
b) 分派器
取出进程调度程序选中的进程,进程间上下文切换,分配处理器
c) 上下文切换器
保存当前进程的上下文信息,保存到相应单元,装入分派程序的上下文;移出分派程序的上下文装入新选进程的现场信息。
(三) 进程调度方式:
a) 非抢占式
一旦处理机分配给某个进程后,就一直让其运行直到完成或者发生某事件而阻塞(如I/O请求)
b) 抢占式
允许调度程序根据某种规则,暂停某个正在执行的进程,由以下规则:优先权原则:优先级高的抢占当前进程;短进程优先原则;时间片原则:各进程按时间片轮转运行时,当正在执行的进程的时间片用完后,便停止该进程的执行而重新进行调度
(四) 进程调度算法:
a) 轮转调度算法
基于时间片轮转,系统将所有的就绪进程按照FCFS(先入先出)策略排成一个就