From 47281ebeb51951cf138e8d2bd691932c3ac89935 Mon Sep 17 00:00:00 2001 From: edwardcaoyue Date: Mon, 5 Jun 2023 19:54:46 +0800 Subject: [PATCH] fix readme Signed-off-by: edwardcaoyue --- README.en.md | 2 +- README.md | 2 +- README_zh.md | 22 +++++++++++++++++----- figures/zh-cn_image_fwk.JPG | Bin 0 -> 73415 bytes 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 figures/zh-cn_image_fwk.JPG diff --git a/README.en.md b/README.en.md index ba924a8..d1cf594 100644 --- a/README.en.md +++ b/README.en.md @@ -1,4 +1,4 @@ -# resourceschedule_qos_manager +# qos_manager #### Description {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} diff --git a/README.md b/README.md index faa7e9a..e4e34de 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# resourceschedule_qos_manager +# qos_manager #### 介绍 {**以下是 Gitee 平台说明,您可以替换此简介** diff --git a/README_zh.md b/README_zh.md index ed9633e..4a6b77f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,17 +1,17 @@ -# resourceschedule_qos_manager +# qos_manager ## 简介 -权限管控服务目前服务于并发编程框架FFRT,为特定的线程提供调用底层Qos和RTG接口的能力。服务接收全局资源调度管控子系统中的帧感知调度插件发送的场景信息,为系统服务uid与前台app的uid赋予调用底层对应接口的权限。同时将多级Qos的配置信息下发到内核,为而为并发编程框架FFRT提供支撑。 +Qos Manager为特定的线程提供调用底层Qos和RTG接口的能力。其接收全局资源调度管控子系统中的帧感知调度插件发送的场景信息,为系统服务uid与前台app的uid赋予调用底层对应接口的权限。同时将多级Qos的配置信息下发到内核,为而为并发编程框架FFRT提供支撑。 ## 目录 ``` //foundation/resourceschedule/qos_manager ├── etc -│ └── init # 权限管控服务配置文件 +│ └── init # 服务配置文件 | -├── sa_profile # 权限管控服务xml +├── sa_profile # 服务sa配置xml ├── include # 部件通用工具类 │ └── concurrent_task_log.h # 封装hilog,用于日志打印 │ @@ -29,7 +29,7 @@ ## 框架 -权限管控服务根据其对接的内核功能模块,主要可以分为两个部分。即RTG权限管控与分组管理、多级QoS权限管控与信息下发。 +Qos Manager根据其对接的内核功能模块,主要可以分为三个部分。即RTG权限管控与分组管理、多级QoS权限管控与信息下发。 - **RTG权限管控与分组管理**:主要分为基于uid的RTG权限管控模块、RTG分组管理模块。其中: @@ -43,8 +43,20 @@ 多级QoS信息下发模块,将不同场景下的不同QoS等级对应的nice、uclamp等参数下发到内核,为线程的QoS等级设置服务。 +- **Qos线程标注**:主要负责与外部模块对接的功能,为外部模块提供线程级别的Qos属性管理接口,可以为线程设置/重置Qos。 + +- **Qos/RTG权限管控**:对于通过Qos接口与FFRT接入的线程,对其调用底层Qos/RTG相关接口的权限进行管理。 + + 权限管控功能基于uid的设置 + +- **Qos属性动态调节**:下发并调节qos参数 + 两个部分中的权限管控模块,统筹了权限管控服务所需要的外部事件,并根据事件类型下发对应的参数和权限,和并发编程框架相互合作,共同保障系统的性能供给。 + +![](figures/zh-cn_image_fwk.JPG) + + ## 使用说明 系统开发者可以通过配置productdefine/common/products下的产品定义json文件,增加或移除本部件,来启用或停用本部件: diff --git a/figures/zh-cn_image_fwk.JPG b/figures/zh-cn_image_fwk.JPG new file mode 100644 index 0000000000000000000000000000000000000000..1cae05f26c9807fab3610bd4bde6febf3c45702e GIT binary patch literal 73415 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