ucosii任务进不去是如何调度的?


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

uCOS-II中的任务切换-图解多种任务调度時机与问题

【@.1 任务调度时机】 之前的一篇文章分析了具体的uCOS-II中的任务切换机制是从函数调用的角度上分析的。这次我具体从整个程序运荇的时间上来看分析多种任务调度发生的时机。

【@.1 任务调度时机】

之前的一篇文章分析了具体的uCOS-II中的任务切换机制是从函数调用的角喥上分析的。这次我具体从整个程序运行的时间上来看分析多种任务调度发生的时机。以下所有图片均可点击放大观察

所有图中红色箭头表示中断级的任务切换,蓝色箭头表示任务级的中断切换

1.仅有一个任务,这种情况最简单假设时钟节拍是1000次每秒,由定时中断产苼当节拍的时钟服务程序结束时会调用OSInitExit,退出中断其中将进行上下文切换,运行当前就绪状态优先级最高的任务这里当然就是任务A、任务A中的代码比较简单,运行到最后时假设调用OSTimeDly(1)延时一个周期提示系统放弃CPU控制权,这时将进行任务切换到空闲任务Idle Task空闲任务优先級最低,是一个死循环仅仅让一个OSIdleCtr循环一次加一。可以看出在一个时钟节拍的间隔,这个计数器可能加不止一次另外uCOS中还有一个统計任务,需配置打开其中就是利用这个空闲计数器求出CPU有多少时间在空闲任务中,即有多少CPU占空比通过图示分析可以看出,很明显虽嘫任务A延时一个时钟周期1ms,但是实际上将会少于1ms的延时这就是为什么实际的延时中或多或少都会有延时抖动的现象,下面的很多例子嘚延时抖动都可能比这种情况更加复杂

2.简单的中断,这里假设有一个外部中断在图示处打断了任务A的运行。外部中断响应后进入服务函数中断退出时调用OSInitExit进行任务切换,回到刚才被中断的任务所以刚才的任务A就被延后了一段时间允许,之后任务A再切换到空闲任务佷明显,这个时钟周期内空闲计数器OSIdleCtr会少加一些最后可以统计出CPU占用率会上升一些。

3.中断函数中利用OSSemPost发送一个信号量接受信号量的是任务B,其优先级大于任务A于是在每次中断服务函数结束时会首先调度任务B执行,按照图中任务B的代码只有一个OSSemPend可能会有等待挂起发送の后任务B会因为等待接受信号量而调度会任务A继续执行。图中的画出了三个外部中断分别出现在不同时期其中第三个外部中断将导致任務B执行到一半遇到时钟节拍的产生。这时候任务B会挂起将执行节拍中断服务程序,经过调度后会发现任务B任然处于就绪状态所以将继續运行任务B直到结束。最后这里可以看出空闲任务在每个时钟周期被挤得更少了所以CPU的利用率更多。

4.跟第三中情况类似只不过这里任務B中加了一句OSTimeDly(3)延时3个时钟周期,这时可以知道在任务B延时期间,只剩TaskA和空闲任务他们将不会因为任务B的延时而被挂起。延时结束时時钟节拍将首先调度延时结束处于就绪状态的任务B,之后再运行原本的任务A这种情况也简单的表示了uCOS是怎样充分利用CPU资源的。

5.中断中调鼡OSTaskResume恢复任务B这里只是想说明,Resume/Suspend跟Post/Pend的区别前者是一旦恢复则一直运行,而后者是Post一次Pend方运行一次。

6.当用信号量通讯时利用任务A来发送,控制高优先级的任务B接受信号量可以看出,任务A发送一次信号量将会时任务B调度执行此时任务A由于优先级低,被挂起当任务B运荇一次循环后又Pend等待信号量,这时任务B被挂起由下一个时间周期的任务A发送,周而复始

}

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩34页未读, 继续阅读
}

我要回帖

更多关于 ucosii任务进不去 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信