java

位置:IT落伍者 >> java >> 浏览文章

操作系统:高优先权优先调度算法


发布日期:2020年05月01日
 
操作系统:高优先权优先调度算法

高优先权优先调度算法

优先权调度算法的类型

)非抢占式优先权算法

在这种方式下系统一旦把处理机分配给就绪队列中优先权最高的进程后该进程便一直执行下去直至完成或因发生某事件使该进程放弃处理机时系统方可再将处理机重新分配给另一优先权最高的进程这种调度算法主要用于批处理系统中也可用于某些对实时性要求不严的实时系统中

) 抢占式优先权调度算法

在这种方式下系统同样是把处理机分配给优先权最高的进程使之执行但在其执行期间只要又出现了另一个其优先权更高的进程进程调度程序就立即停止当前进程(原优先权最高的进程)的执行重新将处理机分配给新到的优先权最高的进程因此在采用这种调度算法时是每当系统中出现一个新的就绪进程i时就将其优先权Pi与正在执行的进程j的优先权Pj进行比较如果Pi≤Pj原进程Pj便继续执行但如果是Pi>Pj则立即停止Pj的执行做进程切换使i进程投入执行显然这种抢占式的优先权调度算法能更好地满足紧迫作业的要求故而常用于要求比较严格的实时系统中以及对性能要求较高的批处理和分时系统中

优先权的类型

) 静态优先权

静态优先权是在创建进程时确定的且在进程的整个运行期间保持不变一般地优先权是利用某一范围内的一个整数来表示的例如~~中的某一整数又把该整数称为优先数只是具体用法各异有的系统用表示最高优先权当数值愈大时其优先权愈低而有的系统恰恰相反

确定进程优先权的依据有如下三个方面

()进程类型

() 进程对资源的需求

() 用户要求

) 动态优先权

动态优先权是指在创建进程时所赋予的优先权是可以随进程的推进或随其等待时间的增加而改变的以便获得更好的调度性能例如我们可以规定在就绪队列中的进程随其等待时间的增长其优先权以速率a提高若所有的进程都具有相同的优先权初值则显然是最先进入就绪队列的进程将因其动态优先权变得最高而优先获得处理机此即FCFS算法若所有的就绪进程具有各不相同的优先权初值那么对于优先权初值低的进程在等待了足够的时间后其优先权便可能升为最高从而可以获得处理机当采用抢占式优先权调度算法时如果再规定当前进程的优先权以速率b下降则可防止一个长作业长期地垄断处理机

高响应比优先调度算法

优先权的变化规律可描述为

由于等待时间与服务时间之和就是系统对该作业的响应时间故该优先权又相当于响应比RP据此又可表示为

() 如果作业的等待时间相同则要求服务的时间愈短其优先权愈高因而该算法有利于短作业

() 当要求服务的时间相同时作业的优先权决定于其等待时间等待时间愈长其优先权愈高因而它实现的是先来先服务

() 对于长作业作业的优先级可以随等待时间的增加而提高当其等待时间足够长时其优先级便可升到很高从而也可获得处理机

——返回教材目录

了解更多计算机相关基础课程视频

上一篇:先来先服务和短作业(进程)优先调度算法

下一篇:操作系统:基于时间片的轮转调度算法