5313|2

31

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教关于任务级调度和中断级调度的区别 [复制链接]

 如题,请教一下,这两者的区别,我看代码里面都是比较当前运行任务优先级和任务就绪表里最高优先级,那怎么从高优先级的任务切换到低优先级的任务呢?

最新回复

是这样 ucos的任务设计有一条准则 就是无论优先级多高的任务,都要在合适的地方加延时,以使cpu可以去执行别的任务。再者就是 当高优先级任务等待事件时,会挂起,让出cpu。  所以我们自己创建任务最后一定要加延时  详情 回复 发表于 2014-3-21 14:24

点评

关于这个问题我只能把自己的想法解释一下 1.高优先级的人人牢牢的占据CUP,低优先级的任务当然不能运行。但是这不是OS的问题,是用户开发设计的问题,搞优先级的任务做完了份内的事,应该做的是吧自己阻塞起来,主  详情 回复 发表于 2013-11-25 17:29
点赞 关注
 

回复
举报

112

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

回复 楼主xiaoqzq 的帖子

关于这个问题我只能把自己的想法解释一下
1.高优先级的人人牢牢的占据CUP,低优先级的任务当然不能运行。但是这不是OS的问题,是用户开发设计的问题,搞优先级的任务做完了份内的事,应该做的是吧自己阻塞起来,主动放弃CPU,程序是你自己编写的,是自己不懂OS才让它优先级高还死占着CPU的。阻塞的方法很多种,有延时、挂起、信号量等等,这些都是RTOS的核心内容。
2.在中断中调度任务运行我认为是当中断发生的时候,例如串口接收到了有效的数据,转而让用户程序去处理,用UCOS可以成功的完成这个动作,只要简单的POST信号量,如果裸奔的话就不可避免的ISR中加长代码或在用于程序中查询变量。
 
个人签名淘宝小店:http://brightpoint.taobao.com
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
是这样 ucos的任务设计有一条准则 就是无论优先级多高的任务,都要在合适的地方加延时,以使cpu可以去执行别的任务。再者就是 当高优先级任务等待事件时,会挂起,让出cpu。  所以我们自己创建任务最后一定要加延时
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表