第三章处理机调度与死锁 SJ(P)F调度算法也存在不容忽视的缺点: (1)该算法对长作业不利,如作业C的周转时间由10增 至16,其带权周转时间由2增至3.1。更严重的是,如果有 一长作业(进程)进入系统的后备队列(就绪队列),由于调度 程序总是优先调度那些(即使是后进来的)短作业(进程),将 导致长作业(进程)长期不被调度。 (2)该算法完全未考虑作业的紧迫程度,因而不能保证 紧迫性作业(进程)会被及时处理 (3)由于作业(进程)的长短只是根据用户所提供的估计 执行时间而定的,而用户又可能会有意或无意地缩短其作 业的估计运行时间,致使该算法不一定能真正做到短作业 优先调度
第三章 处理机调度与死锁 SJ(P)F (1) 该算法对长作业不利,如作业C的周转时间由10增 至16,其带权周转时间由2增至3.1。更严重的是,如果有 一长作业(进程)进入系统的后备队列(就绪队列),由于调度 程序总是优先调度那些(即使是后进来的)短作业(进程),将 导致长作业(进程)长期不被调度。 (2) 该算法完全未考虑作业的紧迫程度,因而不能保证 紧迫性作业(进程)会被及时处理。 (3) 由于作业(进程)的长短只是根据用户所提供的估计 执行时间而定的,而用户又可能会有意或无意地缩短其作 业的估计运行时间,致使该算法不一定能真正做到短作业 优先调度
第三章处理机调度与死锁 322高优先权优先调度算法 1.优先权调度算法的类型 1)非抢占式优先权算法 在这种方式下,系统一旦把处理机分配给就绪队列中 优先权最高的进程后,该进程便一直执行下去,直至完成; 或因发生某事件使该进程放弃处理机时,系统方可再将处 理机重新分配给另一优先权最高的进程。这种调度算法主 要用于批处理系统中;也可用于某些对实时性要求不严的 实时系统中
第三章 处理机调度与死锁 3.2.2 高优先权优先调度算法 1. 优先权调度算法的类型 1) 非抢占式优先权算法 在这种方式下,系统一旦把处理机分配给就绪队列中 优先权最高的进程后,该进程便一直执行下去,直至完成; 或因发生某事件使该进程放弃处理机时,系统方可再将处 理机重新分配给另一优先权最高的进程。这种调度算法主 要用于批处理系统中;也可用于某些对实时性要求不严的 实时系统中
第三章处理机调度与死锁 2)抢占式优先权调度算法 在这种方式下,系统同样是把处理机分配给优先权最高 的进程,使之执行。但在其执行期间,只要又出现了另一个 其优先权更高的进程,进程调度程序就立即停止当前进程(原 优先权最高的进程)的执行,重新将处理机分配给新到的优先 权最高的进程。因此,在采用这种调度算法时,是每当系统 中出现一个新的就绪进程i时,就将其优先权P;与正在执行的 进程j的优先权P进行比较。如果P<P,原进程P,便继续执行; 但如果是P>P;则立即停止P的执行,做进程切换,使进程 投入执行。显然,这种抢占式的优先权调度算法,能更好地 满足紧迫作业的要求,故而常用于要求比较严格的实时系统一 中,以及对性能要求较高的批处理和分时系统中
第三章 处理机调度与死锁 2) 在这种方式下,系统同样是把处理机分配给优先权最高 的进程,使之执行。但在其执行期间,只要又出现了另一个 其优先权更高的进程,进程调度程序就立即停止当前进程(原 优先权最高的进程)的执行,重新将处理机分配给新到的优先 权最高的进程。因此,在采用这种调度算法时,是每当系统 中出现一个新的就绪进程i时,就将其优先权Pi与正在执行的 进程j的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行; 但如果是Pi>Pj , 则立即停止Pj的执行,做进程切换,使i进程 投入执行。显然,这种抢占式的优先权调度算法,能更好地 满足紧迫作业的要求,故而常用于要求比较严格的实时系统 中, 以及对性能要求较高的批处理和分时系统中
第三章处理机调度与死锁 2.优先权的类型 1)静态优先权 静态优先权是在创建进程时确定的,且在进程的整个 运行期间保持不变。一般地,优先权是利用某一范围内的 个整数来表示的,例如,0~7或0~255中的某一整数, 又把该整数称为优先数。只是具体用法各异:有的系统用 “0″表示最高优先权,当数值愈大时,其优先权愈低;而 有的系统恰恰相反
第三章 处理机调度与死锁 2. 优先权的类型 1) 静态优先权是在创建进程时确定的,且在进程的整个 运行期间保持不变。一般地,优先权是利用某一范围内的 一个整数来表示的,例如,0~7或0~255中的某一整数, 又把该整数称为优先数。只是具体用法各异:有的系统用 “0”表示最高优先权,当数值愈大时,其优先权愈低;而 有的系统恰恰相反
第三章处理机调度与死锁 确定进程优先权的依据有如下三个方面: 1)进程类型 (2)进程对资源的需求。 (3)用户要求
第三章 处理机调度与死锁 (1) 进程类型。 (2) 进程对资源的需求。 (3) 用户要求