目的
学习和理解实时操作系统
声明
习题答案是笔者基于相关书籍和网上内容自己理解的,有不对或疑问的地方大家一起沟通
硬件平台
Arm-CortexM3内核
五.什么叫消息邮箱
在任务之间传递信息的数据结构。相对于互斥信号量而言,多了传递内容。
六.能否用全局变量实现任务之间的通信?如果可以,他有什么缺点?
可以实现,因为任务之间的通信内核代码本质上也是逻辑代码加全局变量来实现的。
重复造轮子;控制逻辑复杂,比如实现同步锁的时候,控制全局变量的逻辑要和内核任务切换等代码进行耦合。
七.使用消息邮箱实现任务之间通信有什么好处?
如果不使用消息邮箱,一般使用全局变量的方式实现消息的传递(涉及消息的请求和发送)。如果任务A请求消息,但是一直没有任务进行发送。这个时候对于任务A正常来讲,应当等待直到有任务发送了消息或超时时间到,才会继续运行。如果用全局变量实现的话,需要调用内核代码来时现同样的逻辑,否则的话,就需要自己写逻辑了。
总之好处就是:减轻了应用者的负担,应用者只是需要理解工作原理,注意使用方式即可达到业务目的。
八.什么是消息队列?
消息队列:公用一个任务等待列表的消息邮箱数据组。他可以在任务之间传递多条消息。
九.在应用程序中消息队列可以做哪些工作
解耦,异步处理,限流削峰