标签:CMSIS 调度 day3 任务 时间 延时 ostime RTOS2 轮询
今天来看下分时调度策略下时间片的管理,需要注意的一个问题是:无论是实时抢占还是分时调度,时间片的更新是一定需要有的。
方便起见,从时间片设置开始介绍:Round-Robin是轮询调度,轮询调度时间是5ms,
然后看到OS_ROBINTOUT是
看到上面的英文可以看到,默认的调度时间为5ms。当然也没什么需要修改的必要。
顺着下来,这个值应该是在一个systemtick中和任务运行时间进行比较.。
这是一个全区遍历,好多任务共用一个,每次切换任务,都会把这个东西复位,重新进行处理。
这次就是来检查运行时间的。如果检查到正在运行的时间已经超过tout,那么就应该切换下一个任务。额…懂啦。上述代码可以看出分配给每个任务运行的时间是,当前ostime加上超时时间(时间片)。那么当系统时间ostime到达这个时间的时候,就可以进行切换了。
这里有一个延时任务的更新,这是专门是任务延时使用的。rt_dec_dly()就是专门针对任务延时的,延时时间到了之后,就放置优先正常队列中。
这里应该是定时器的配置。
到这里,我们的内核之旅就结束啦。下一章总结下这个内核的调度策略。
标签:CMSIS,调度,day3,任务,时间,延时,ostime,RTOS2,轮询 来源: https://blog.csdn.net/weixin_42060918/article/details/100122844
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。