当前位置:网站首页>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的状态看不清。第一个是各个链表的作用以及状态切换时候的转移关系;另一个是阻塞以及接触阻塞的操作逻辑。这些,后面作为专门的笔记进行梳理。
边栏推荐
- Binder核心API
- Pigsty: out of the box database distribution
- Connect diodes in series to improve voltage withstand
- 用语雀写文章了,功能真心强大!
- Basic learning of SQL Server -- creating databases and tables with code
- 52岁的周鸿祎,还年轻吗?
- paddle入门-使用LeNet在MNIST实现图像分类方法二
- Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)
- 数据库查询——第几高的数据?
- Kubectl's handy command line tool: Oh my Zsh tips and tricks
猜你喜欢
Fully automated processing of monthly card shortage data and output of card shortage personnel information
Data Lake (XV): spark and iceberg integrate write operations
智慧监管入场,美团等互联网服务平台何去何从
new和delete的底层原理以及模板
Is Zhou Hongyi, 52, still young?
Relevant methods of sorting arrays in JS (if you want to understand arrays, it's enough to read this article)
52岁的周鸿祎,还年轻吗?
腾讯安全发布《BOT管理白皮书》|解读BOT攻击,探索防护之道
[question de programmation] [scratch niveau 2] oiseaux volants en décembre 2019
Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
随机推荐
Visual Studio Deployment Project - Create shortcut to deployed executable
用语雀写文章了,功能真心强大!
Database interview questions + analysis
某马旅游网站开发(对servlet的优化)
数据库查询——第几高的数据?
Basic learning of SQL Server -- creating databases and tables with code
SQL connection problem after downloading (2)
Robomaster visual tutorial (10) target prediction
80%的人答错,苹果logo上的叶子到底朝左还是朝右?
去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
Linkedblockingqueue source code analysis - add and delete
【推荐系统基础】正负样本采样和构造
测试流程不完善,又遇到不积极的开发怎么办?
Introduction to programming hardware
Emotional post station 010: things that contemporary college students should understand
“一个优秀程序员可抵五个普通程序员”,差距就在这7个关键点
备库一直有延迟,查看mrp为wait_for_log,重启mrp后为apply_log但过一会又wait_for_log
paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务
Installation and configuration of sublime Text3
[programming problem] [scratch Level 2] March 2019 draw a square spiral