21ic电子技术开发论坛

标题: 《嵌入式系统的实时概念》手机学习笔记1 [打印本页]

作者: hotpower    时间: 2011-6-1 10:16
标题: 《嵌入式系统的实时概念》手机学习笔记1
本帖最后由 hotpower 于 2012-9-22 13:15 编辑

今天开始,用手机写读书心得,同时也锻炼拇指一族之功,暂缓脑残。
农民读书实属想跟上城里人的节奏,不雅之处别笑话俺,俺怕羞。
此笔记为个人空间,跟帖必被咔嚓,因为俺有版主的特权。

作者: hotpower    时间: 2011-6-1 10:32
《第五章  任务》
俺学习的方法是从自己最需要的章节入手。
看到“任务”两字,总联想到进程,线程,回调函数,事件处理,消息处理等术语。可能是理解和叫法及应用不同吧。
书中对任务的定义是可调度的独立执行的线程。
俺目前只对空闲谈任务感兴趣。它本是一个级别最低的系统任务,用户可以用自己的空闲任务替代。一般用于做低功耗处理。
用裸奔的思维看空闲任务,它实际就是一个死循环或或后台全部无用轮询时间的集合。

作者: hotpower    时间: 2011-6-1 10:51
任务状态
每个任务都有最基本的三态:就绪,运行和阻塞。
从字面上看,:
就绪就是准备好了,等待出击,等待领导的指令。
运行就是在跑,这个好理解。
阻塞这个有些怪异,有些人说应该是挂起。但有些rtos有专门的挂起状态处理异常任务的。
从裸奔的思维无法理解这个阻塞,因为这是rtos与裸奔最大的差异。
裸奔中除中断能打断程序的正常运行必须外,无法踏步在原地让其他程序运行。
而rtos最大的特点就是高级别任务阻塞,将控制权交给低级别的任务运行。
裸奔只能通过协作,经过特殊处理分隔程序,以便其他程序能得到运行的机会。

作者: hotpower    时间: 2011-6-2 08:31
就绪状态
要战斗,必须有预备役部队的支持,否则后劲不足。
它和阻塞的共同特点都是等待,但后者是等待阻击。前者是等待出击。
每个任务在建立时都被初始化为就绪状态,由内核根据优先级别调度某个任务最先运行。
就绪状态可以被迁移到运行状态,但一般不能不能被迁移到阻塞状态。
在运行状态的任务可以被迁移为就绪状态,此时肯定有比该任务级别更高的任务从就绪进入运行。
这个可以从有限状态机图示5.2看出的。

作者: hotpower    时间: 2011-6-2 11:23
运行状态
运行时就得到了控制权,它可以回到就绪状态,
因为可能有更高级别的任务获取了控制权,使
当前任务被迫交出控制权。
任务也可主动放弃控制权利。例如需要等待一个同步对象的到来,使自己主动迁移到阻塞状态。
高级别的任务必须设计有阻塞,否则低级别的任务就无法获取运行的权利。这个很重要!
除非你的任务级别最低,如覆盖了系统的空闲任务。

作者: hotpower    时间: 2011-6-2 14:25
阻塞状态
这个状态最精彩。有了它,原本看着连续工作的任务被悄悄地让给了其他任务工作。
我们可以在任务里专心的工作,而不太关心他人。
但是也要注意谦让,照顾比自己级别低的任务。如同我们编写中断服务程序一样,不能在中断里停留时间过长。
如果你不想照顾他人,那就把自己的级别定义为最低。
总之,独占cpu时间的习惯是不好的,正确地应该在高级别任务里设计阻塞,这样低级别任务才有机会运行。
要被迁移到阻塞状态必须要调用可以阻塞的内核函数。
如任务等待一个信号灯令牌的释放,等待消息的到来,节拍延时或任务阻塞超时等等。
俺理解阻塞像战场上的主动防御,阻塞是有任务主动完成的,而就绪可能是被迫的,如高级别的任务。

作者: hotpower    时间: 2011-6-2 15:04
无限循环任务
每个任务实例函数内主要由两部分组成,
一个是该任务的初始化代码,即局部变量
的初始化居多,在cpp的rtos如look可以在
其任务类的构造函数内执行。
其次也是最重要的是用while(1)﹛﹜,做成死循环,即无限循环,具体任务填写在无限循环中。
任务你可以写成流水账,随你如何发挥,但还是
那句注意谦让,一定要做阻塞架构,任务里一定
要调用一个或多个阻塞。否则低级别的任务就无法得到运行的机会了。
当然也要和调度算法结合了。

作者: murex    时间: 2011-6-2 15:12
本帖最后由 murex 于 2011-6-2 15:14 编辑

这回可以顶了,哈哈
菜农的比喻形象生动,继续写笔记,俺们看着就是

作者: hotpower    时间: 2011-6-2 15:17
第五章的学习心得写完了,不喀嚓了

作者: 电子write_cai    时间: 2011-8-8 00:10
顶起来。有机会学学。

作者: hotpower    时间: 2011-12-3 12:57
顶起来学习

作者: zjsyjbb    时间: 2011-12-3 18:05
学习菜叔的思想..

作者: zzyaizll    时间: 2011-12-5 10:38
DINGiiiiiiiiiiiiiiiiii

作者: 呆板书生    时间: 2012-1-16 06:45
阻塞状态
这个状态最精彩。有了它,原本看着连续工作的任务被悄悄地让给了其他任务工作。
我们可以在任务里专心的工作,而不太关心他人。
但是也要注意谦让,照顾比自己级别低的任务。如同我们编写中断服务程序一样 ...
hotpower 发表于 2011-6-2 14:25

这个妙,但还要慢慢理解

作者: hotpower    时间: 2012-1-16 08:27
学习必须要有自己的理解和想像。

作者: abin0415    时间: 2012-4-29 02:18
看了菜叔的笔记后,更能理解阻塞的含义了。在此,感谢菜叔的无私奉献。

作者: ahljj    时间: 2013-1-1 21:24





欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)