ucos试验代码实例2:互斥型信号量的应用实例--防止任务优先级反转现象的出现
来源:互联网 发布:淘宝上怎么样买东西呢 编辑:程序博客网 时间:2024/05/24 04:37
续实验1-----ucos试验代码实例1:任务优先级反转
在运行效果中明显看到,中等优先级的任务2抢夺了高优先级的任务1的运行权
为了防止出现任务优先级反转,要使用互斥型信号量,此文就是实例
与《ucos试验代码实例1:任务优先级反转》代码相比,修改了如下
1.main函数中
创建互斥型信号量,允许占用信号量的任务短暂使用0优先级
Sem=OSMutexCreate(0x00,&err);
2.任务1,3中调用信号量的函数使用
OSMutexPend(Sem,0,&err);
OSMutexPost(Sem);
************************************************************
实际运行效果
参见上图,在低优先级的任务3霸占了互斥型信号量的时候,任务1申请获得信号量,此时中优先级的任务2没能够霸占cpu,系统将任务3的优先级暂时提升到了0优先级(最高优先级),直至任务3不受阻碍的使用完毕信号量,cpu运行权及信号量使用权交由任务1继续使用。
可见,互斥型信号量杜绝了任务优先级反转现象。
Q:系统预留什么优先级给任务3最合适?优先级0吗?
应该找出使用此信号量或等待此信号量的最高优先级,然后将比这个优先级稍高的未被使用的优先级留给它。
http://zhaolu386335605.blog.163.com/blog/static/167409001201242410303140/
0 0
- ucos试验代码实例2:互斥型信号量的应用实例--防止任务优先级反转现象的出现
- ucos试验代码实例1:任务优先级反转
- 互斥型信号量导致的优先级反转现象
- uCOS-II中任务的优先级翻转现象
- uC/OS-II的任务优先级的反转现象
- ucos 改变任务的优先级
- 信号量优先级反转及防止反转的天花板和继承策略
- ucos任务与信号量的例子
- ucos信号量的理解2
- UCOS ‖应用实例
- ucos II任务管理之四:改变任务的优先级
- uCOS-II任务管理之改变任务的优先级
- Spring的定时任务的代码实例
- UCOS中的优先级反转
- uCOS创建任务实例---code from《嵌入式实时操作系统uCos-II原理及应用》
- 嵌入式系统(ucos)任务优先级的资源
- 信号与任务之间的通信、任务优先级的反转
- 通过uCOS-II的邮箱方式,实现任务间数据传递的简单实例
- JSTL的错误“attribute test does not accept any expressions”解决方法
- LSA潜在语义分析
- Linux常用命令(十二) - less
- display:inline、block、inline-block的区别
- 自己动手写文件系统
- ucos试验代码实例2:互斥型信号量的应用实例--防止任务优先级反转现象的出现
- java hibernate 中"nodeto traverse cannot be null"错误解决
- springmvc在启动工程的时候就访问数据库,加载一些共同的数据
- 在MyEclipse中怎么使选中的一段代码下移一行,用快捷键
- 第12周项目3-用递归函数求解--汉诺塔问题
- 李白喝酒
- 万年历打印
- unsigned char 的一个面试题
- Lua快速介绍