您当前的位置: 首页 > 

小生叫安辰

暂无认证

  • 7浏览

    0关注

    105博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

鸿蒙源码分析(六十六)

小生叫安辰 发布时间:2021-10-22 22:55:48 ,浏览量:7

分布式任务调度下的samgr文件夹整体把握

本篇我们主要来分析一下samgr该文件夹在这里起到的作用,按照官方文档中的介绍,samgr应该是起到管理系统资源的作用,这里主要是接口的调用,消息队列的实现,消息的收发,打包,解包以及服务的实现

先从整体文件夹开始

Samgr文件夹

  • adapter 这里是一些数据结构的定义
    • cmsis:消息队列,WDT,等的设置
      • memory_adapter:内存适配,主要是空间的申请和释放
      • queue_adapter:队列适配
      • thread_adapter:线程适配
      • time_adapter:WDT看门狗定时器的相关设置
    • posix:实现功能同cmsis,只不过二者使用环境不一样,一格式轻量级一个是标准级。
  • 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介绍,这里只是开个头

关注
打赏
1635606302
查看更多评论
立即登录/注册

微信扫码登录

0.0445s