4374|7

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教各位高手关于VxWorks中的多任务调度问题 [复制链接]

 当多任务以抢占式进行调度时,如果高优先级的任务执行完一次后,进行时间延时后任务会进行调度么?就是比如下面程序:
TaskHigh()
{
int i,j,temp=0;

while(1)
{
for(i=0;i<1000;i++)
{
  for(j=0;j<100;j++)
  {
   printf("temp=%d\n",temp);
  }
  delay();
}
  delay();
}
}

TaskLow()
{
int i,j,temp=0;

while(1)
{
for(i=0;i<1000;i++)
{
  for(j=0;j<100;j++)
  {
   printf("temp=%d\n",temp);
  }
  delay();
}
  delay();
}
}

当进行抢占式调度时,把TaskHigh()任务的所有循环打印完后,再去打印TaskLow()任务的循环呢?但是按照我的理解因为进行在最里面循环执行完后,有延时,所以进行了任务调度,会去执行TaskLow()任务,然后等到TaskLow()任务遇到延时,再过来执行TaskHigh()任务.
但是我看到资料上说的是先把TaskHigh()任务的所有循环打印完成,然后再去打印TaskLow()任务的循环.为什么是这样的呢?难道进行抢占式调度,即使是进行延时操作,也不会进行任务调度的么?

各位高手请多多指教了,.谢谢

最新回复

嘿嘿,俺不是高手,俺是来等着接分滴~~  详情 回复 发表于 2007-3-18 23:45
点赞 关注
 

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你的delay函数,不是vxworks标准函数。如果是vxworks的标准函数taskDelay(tick)形式,则要进行任务调度。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼上的大哥说得对,我只是举个事例来说明一下,任务的执行情况,难道只有用taskDelay(tick)时才能进行任务调度么?如果用其他的延时函数,是不能对VxWorks的任务进行切换的么?
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(初级)

4
 
强烈推荐用taskDelay(ticks)
延时状态都调度的!
只要高优先级任务放弃了cpu,并且任务队列中有任务ready在等待cpu资源就会切换。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

5
 
请教一下,那如果我在任务最后使用for(i=0;i<10000;i++);来代替延时函数taskDelay(ticks),那么系统会不会发生任务调度呢?
按照我的理解应该是不会发生任务调度的,因为在操作系统中只有系统内部函数才能引起任务调度的,用户自己编写的函数是不能引起任务调度的,对么?
但是我看到很多资料,他们在任务后面都是说延时一段时间就发生任务调度,如果按照这样的说法,我的for(i=0;i<10000;i++)语句也是起到一个延时作用的呀,这样说的话是不是也发生任务调度呢?
多谢各位指教了!!!!!!!!!!!!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
任务调度是基于系统原语操作的,比如申请和释放资源等。
如果当前任务t1正占用cpu,执行for(i=0;i<10000;i++); 是不会发生任务调度的。
因为你的for语句中并没有释放资源,不会引起系统资源分配的变化。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

7
 
哦,终于明白了VxWorks的任务调度方式了,谢谢楼上的高手指教
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
嘿嘿,俺不是高手,俺是来等着接分滴~~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
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
快速回复 返回顶部 返回列表