分布式任务调度下的samgr文件夹整体把握
本篇我们主要来分析一下samgr该文件夹在这里起到的作用,按照官方文档中的介绍,samgr应该是起到管理系统资源的作用,这里主要是接口的调用,消息队列的实现,消息的收发,打包,解包以及服务的实现
先从整体文件夹开始Samgr文件夹
- adapter 这里是一些数据结构的定义
- cmsis:消息队列,WDT,等的设置
- memory_adapter:内存适配,主要是空间的申请和释放
- queue_adapter:队列适配
- thread_adapter:线程适配
- time_adapter:WDT看门狗定时器的相关设置
- posix:实现功能同cmsis,只不过二者使用环境不一样,一格式轻量级一个是标准级。
- cmsis:消息队列,WDT,等的设置
- registry 接口的定义:主要定义了M核心服务注册和发现的存根函数。
- source
- common.c:就是提供Samgr和外部模块的常用对象和函数,具体就是这个文件提供了简化的矢量容器和向下转换函数。
- feature.c :注册系统服务能力feature,也是生命周期相关接口
- iunknow.c : iunknown接口
- message.c :消息的打包发送,已经不同类型消息的处理API
- service.c
- samgr_lite.c
- take_manager.c :任务池相关定义
以上为该文件下具体文件的介绍。
分布式调度的示例分布式任务调度模块负责跨设备组件管理,提供访问和控制远程组件的能力,支持分布式场景下的应用协同。而这一块提供了实现这一功能的API支撑,尤其是服务的注册和消息的发送处理任务池原理等,实现了分布式通信的机制。 下面是轻量设备中分布式调度的实现原理图: 其中samgr文件主要就是实现服务的管理,其中服务的注册主要是由source中的server.c来实现,具体实现过程可以观看注册服务系列博客,这里只列出一篇,大家可以观看相关的几篇,其中服务的注册和发现都是为了通信而做准备,通信过程又需要借用消息的处理机制,以及任务池机制来实现消息发送和任务的管理。
任务的介绍 系统服务注册 消息的处理 以上为samgr整体上的一个简单功能介绍,本篇博客后续会再次编辑完善samgr介绍,这里只是开个头