首页 > 知识点讲解
       优先级算法
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 优先级反转(优先级反转、优先级继承、优先级天花板等) > 
相关知识点:4个      
        优先级调度算法的基本思路是:给每一个任务都设置一个优先级,然后在任务调度的时候,在所有处于就绪状态的任务中选择优先级最高的那个任务去运行。例如,短作业优先算法其实也是一个优先级算法,每个任务的优先级就是它的运行时间,运行时间越短,优先级越高。
        优先级算法可以分为两种:可抢占方式和不可抢占方式。它们的区别在于:当一个任务正在运行的时候,如果这时来了一个新的任务,其优先级更高,那么在这种情形下,是立即抢占CPU去运行新任务,还是等当前任务运行完了再说。
        在任务优先级的确定方式上,可以分为静态方式和动态方式两种。
        .静态优先级方式:在创建任务的时候就确定任务的优先级,并且一直保持不变直到任务结束。优先级的确定可以依据任务的类型或重要性,例如,系统任务的优先级要高于用户任务,实时任务的优先级要高于非实时任务。静态优先级方式有一个很大的缺点:高优先级的任务会一直占用着CPU运行,而那些低优先级的任务可能会长时间地得不到CPU,一直处于“饥饿”状态。
        .动态优先级方式:在创建任务的时候确定任务的优先级,但是该优先级可以在任务的运行过程中动态改变,以便获得更好的调度性能。例如,为了防止静态优先级方式中出现的“饥饿”现象,系统可以根据任务占用CPU的运行时间和它在就绪队列中的等待时间来不断地调整它的优先级。这样,即便是一个优先级比较低的任务,如果它在就绪队列中的等待时间足够长,那么它的优先级就会不断提高,最终可以被调度执行。
        在优先级算法中,高优先级的任务将抢占低优先级的任务。对于优先级相同的任务,通常的做法是把任务按照不同的优先级进行分组,然后在不同组的任务之间使用优先级算法,而在同一组的各个任务之间使用时间片轮转法。
        采用优先级调度算法,还有一个问题就是可能会发生优先级反转的现象。在理想情况下,当高优先级任务处于就绪状态后,会立即抢占低优先级任务而得到执行。但在实际系统当中,在各个任务之间往往需要用到各种共享资源,如I/O设备、信号量、邮箱等等。在这种情形下,可能会出现高优先级任务被低优先级任务阻塞,等待它释放资源,而低优先级任务又在等待中等优先级任务的现象,这种现象称为“优先级反转”。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有