4
三、作业管理
3.1 作业管理之进程调度
定义:指计算机通过决策决定哪个就绪进程可以获得CPU使用权。
什么时候需要进程调度?
主动放弃:进程正常终止;运行过程中发生异常而终止;主动阻塞(如等待I/O);
被动放弃:分给进程的时间片用完;有更高优先级的进程进入就绪队列;有更紧急的事情需要处理(如I/O中断);
进程调度方式:
非抢占式调度:只能由当前运行的进程主动放弃CPU;
处理器一旦分配给某个进程,就让该进程一直使用下去;
调度程序不以任何原因抢占正在被使用的处理器;
调度程序不以任何原因抢占正在被使用的处理器;
抢占式调度:可由操作系统剥夺当前进程的CPU使用权。
允许调度程序以一定的策略暂停当前运行的进程;
保存好旧进程的上下文信息,分配处理器给新进程;
进程调度的三大机制:
就绪队列的排队机制:为了提高进程调度的效率,将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
选择运行进程的委派机制:调度程序以一定的策略,选择就绪进程,将CPU资源分配给它。
新老进程的上下文切换机制:保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
进程调度算法:
先来先服务算法:按照在就绪队列中的先后顺序执行。
短进程优先调度算法:优先选择就绪队列中估计运行时间最短的进程,不利于长作业进程的执行。
高优先权优先调度算法:进程附带优先权,优先选择权重高的进程,可以使得紧迫的任务优先处理。
时间片轮转调度算法:按照FIFO的原则排列就绪进程,每次从队列头部取出待执行进程,分配一个时间片执行,是相对公平的调度算法,但是不能保证就是响应用户。