当前位置:网站首页>1293_FreeRTOS中xTaskResumeAll()接口的实现分析
1293_FreeRTOS中xTaskResumeAll()接口的实现分析
2022-07-07 22:18:00 【grey_csdn】
全部学习汇总: GreyZhang/g_FreeRTOS: learning notes about FreeRTOS. (github.com)
这次分析的xTaskResumeAll()接口其实还是小有复杂度的,但是相关的概念清晰了理解起来不难。
进行恢复操作的前提是调度器不能够挂起。
首先,与挂起的工作做了一个反操作,主要是处理一个标志性计数器。
接着查看现在的OS中任务数目,如果任务数目大于0继续往下的处理才有意义。接下来,进行“挂起任务链表的清空”。也就是从中一个个节点取出,从挂起链表以及状态链表中移除,加入到就绪任务链表中。如果发现了高优先级的任务就绪了,标注一下后面需要进行任务调度。
如果前面发现了挂起的任务,那么复位下一次的阻塞解除时间。根据调度器“落后的”调度次数,调度tick的回调函数进行调度的追加。这个过程中处理的只是任务链表,没有实际的调度发生。如果发现需要调度,那么也需要标记一下接下来需要进行任务调度切换。
根据前面的判断信息,如果发现需要任务切换那么就执行切换。
这样,这个接口基本分析完了。但是,还是有一些概念后续需要重新理顺下,不然整个OS的状态看不清。第一个是各个链表的作用以及状态切换时候的转移关系;另一个是阻塞以及接触阻塞的操作逻辑。这些,后面作为专门的笔记进行梳理。
边栏推荐
- 2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
- Solutions to problems in sqlserver deleting data in tables
- Flask learning record 000: error summary
- Preliminary test of optical flow sensor: gl9306
- Basic learning of SQL Server -- creating databases and tables with the mouse
- How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
- “一个优秀程序员可抵五个普通程序员”,差距就在这7个关键点
- Binary sort tree [BST] - create, find, delete, output
- 【编程题】【Scratch二级】2019.09 绘制雪花图案
- Vscode software
猜你喜欢
应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设
3年经验,面试测试岗20K都拿不到了吗?这么坑?
Stm32f1 and stm32cubeide programming example - rotary encoder drive
[the most detailed in history] statistical description of overdue days in credit
C# 泛型及性能比较
Smart regulation enters the market, where will meituan and other Internet service platforms go
Rectification characteristics of fast recovery diode
Pypharm uses, and the third-party library has errors due to version problems
【推荐系统基础】正负样本采样和构造
Set up personal network disk with nextcloud
随机推荐
35岁真就成了职业危机?不,我的技术在积累,我还越吃越香了
Smart regulation enters the market, where will meituan and other Internet service platforms go
The difference between get and post
Traduction gratuite en un clic de plus de 300 pages de documents PDF
SQL knowledge summary 004: Postgres terminal command summary
应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设
How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
How to add automatic sorting titles in typora software?
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?
Pypharm uses, and the third-party library has errors due to version problems
[C language] objective questions - knowledge points
某马旅游网站开发(登录注册退出功能的实现)
How can CSDN indent the first line of a paragraph by 2 characters?
攻防世界Web进阶区unserialize3题解
Rectification characteristics of fast recovery diode
RPA云电脑,让RPA开箱即用算力无限?
[basis of recommendation system] sampling and construction of positive and negative samples
C# 泛型及性能比较
Relevant methods of sorting arrays in JS (if you want to understand arrays, it's enough to read this article)
paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务