GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com)
1. ChibiOS的调度是一个严格根据优先级来的调度器。
2. 有一个与此功能相关的参数配置,用来设置时间片。如果这个数值设置为0,那么调度将会认为所有的线程优先级一样,线程之间的协同调度具有相同的优先级。
3. 调度器的几个特点
- 上下文的切换速度非常快;
- 信息总是从切换出来的任务传递到切换进去的任务;
- 充分利用虚拟定时器来实现一些超时的处理;
4. 系统的一些元素采用了类的设计,这样就很容易派生支持多核MCU的架构。
1. 这里第一次见识到在实际的软件设计中切切实实采用了UML进行简单的建模的一个例子。关于UML到现在为止,我还是处于看不懂的水平。但是,结合这里的介绍大概还是能够猜测出来这里想要表达出来的概念。
2. 这里有几个概念需要理顺清楚:线程的就绪链表、注册表(一系列激活的线程表)、当前线程、虚拟定时器链表、调试相关信息、时间测量标定数据、内核运行时统计。
3. 就绪链表是一个双向链表。
1. 当前任务并不是就绪链表的一部分,当前任务或者说当前线程是由一个全局指针来进行索引调用的。
2. OS中有个优先级最低线程是idle,这个在其他任何任务都不就绪的时候激活。
3. 关于idle有几点值得注意下:
- 第一,idle是有利于降低功耗的。因为这里面的指令基本都是等待或者挂起之类的处理;
- 第二,idle切换到其他的任务,也就是说在前面所说的等待命令状态下的唤醒是通过中断来激发的。
- 第三,idle只有两个状态,那就是ready或者current执行状态。
4. idle任务是又OS初始化的时候自动创建的,会一直持续存在到OS关机。
标签:RT,1816,优先级,调度,链表,idle,线程,ChibiOS From: https://blog.51cto.com/greyzhang/8194795