《嵌入式实时操作系统:RT-Thread设计与实现》 —3.5.2 内核对象管理架构

举报
华章计算机 发表于 2019/11/24 11:21:00 2019/11/24
【摘要】 本节书摘来自华章计算机《嵌入式实时操作系统:RT-Thread设计与实现》一书中第3章,第3.5.2节,作者是邱祎 熊谱翔 朱天龙 。

3.5.2 内核对象管理架构

RT-Thread采用内核对象管理系统来访问/管理所有内核对象,内核对象包含内核中绝大部分设施,这些内核对象可以是静态分配的静态对象,也可以是从系统内存堆中分配的动态对象。

通过这种内核对象的设计方式,RT-Thread做到了不依赖于具体的内存分配方式,系统的灵活性得到了极大的提高。

RT-Thread内核对象包括线程、信号量、互斥量、事件、邮箱、消息队列和定时器、内存池、设备驱动等。对象容器中包含每类内核对象的信息,包括对象类型、大小等。对象容器给每类内核对象分配了一个链表,所有的内核对象都被链接到该链表上,RT-Thread的内核对象容器及链表如图3-4所示。

图3-5则显示了RT-Thread中各类内核对象的派生和继承关系。对于每一种具体内核对象和对象控制块,除了基本结构外,还有自己的扩展属性(私有属性),例如,对于线程控制块,在基类对象基础上进行扩展,增加了线程状态、优先级等属性。这些属性在基类对象的操作中不会用到,只有在与具体线程相关的操作中才会使用。因此,从面向对象的观点上来说,可以认为每一种具体对象都是抽象对象的派生,继承了基本对象的属性并在此基础上扩展了与自己相关的属性。

 image.png

图3-4 RT-Thread的内核对象容器及链表

 image.png

图3-5 RT-Thread内核对象的继承关系

在对象管理模块中,定义了通用的数据结构,用来保存各种对象的共同属性,各种具体对象只需要在此基础上加上自己的某些特别的属性,就可以清楚地表示自己的特征。

这种设计方法的优点如下。

(1)提高了系统的可重用性和扩展性,增加新的对象类别很容易,只需要继承通用对象的属性再加少量扩展即可。

(2)提供统一的对象操作方式,简化了各种具体对象的操作,提高了系统的可靠性。

图3-5中由对象控制块rt_object派生的有:线程对象、内存池对象、定时器对象、设备对象和IPC对象(IPC即Inter-Process Communication,进程间通信。在RT-Thread实时操作系统中,IPC对象的作用是进行线程间的同步与通信);由IPC对象派生出信号量、互斥量、事件、邮箱与消息队列、信号等对象。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。