mirror of
https://github.com/openharmony/frame_aware_sched.git
synced 2026-06-30 22:08:38 -04:00
+19
-20
@@ -4,7 +4,7 @@
|
||||
|
||||
## 简介<a name="section_introduction"></a>
|
||||
|
||||
智能感知调度部件位于全局资源调度管控子系统中,基于应用的生命周期状态、绘帧信息等,更新进程调度分组,通过设置进程组、线程优先级及其他内核调度参数等手段管理系统调度,保障系统进程调度供给。
|
||||
智能感知调度部件位于全局资源调度管控子系统中,通过帧感知调度机制,更新进程调度分组。通过获取应用的生命周期状态、应用绘帧等信息,调节内核调度参数,从而控制内核调度行为,保障系统进程调度供给。
|
||||
|
||||
|
||||
|
||||
@@ -14,14 +14,13 @@
|
||||
//foundation/resourceschedule/plugins/frame_aware_sched
|
||||
├── common # 部件通用工具类
|
||||
│ └── include
|
||||
│ ├── frame_info_const.h # UI及render绘帧过程信息
|
||||
│ ├── frame_info_const.h # 绘帧过程信息
|
||||
│ ├── frame_aware_constants.h # 通用参数配置
|
||||
│ ├── frame_aware_log_domain.h # 封装hilog,用于日志打印
|
||||
│ └── single_instance.h # 封装单例类,方便实现单例
|
||||
│ └── single_instance.h # 封装了单例模式的类模板
|
||||
│
|
||||
├── interfaces
|
||||
│ └── innerkits # 对内接口目录
|
||||
│ └── frameintf # 感知调度专用接口
|
||||
│
|
||||
├── frameworks
|
||||
│ └── core
|
||||
@@ -35,25 +34,25 @@
|
||||
|
||||
## 说明<a name="section_illustration"></a>
|
||||
|
||||
智能感知调度部件根据执行时所属线程进行划分,可包含两大组件,即运行在App进程的绘帧信息收集器组件和运行在系统服务进程的帧感知调度机制组件,每个组件分为若干模块。
|
||||
智能感知调度部件根据执行时所属线程进行划分,可包含两大组件,即运行在App进程的绘帧信息收集组件和运行在系统服务进程的帧感知调度机制组件,每个组件分为若干模块。
|
||||
|
||||
- **绘帧信息收集组件**:主要分为绘帧事件处理模块、滑动场景策略模块以及模型处理模块,三者构成绘帧核心策略。其中:
|
||||
- **绘帧信息收集组件**:主要分为帧事件处理模块、滑动场景策略模块以及模型处理模块,三者构成绘帧核心策略。其中:
|
||||
|
||||
消息处理模块负责统筹JS-UI子系统及Graphic子系统的绘帧子过程的消息信息并分发;
|
||||
绘帧事件处理模块,主要负责统筹JS-UI子系统及Graphic子系统的绘帧子过程的消息信息并分发。
|
||||
|
||||
帧事件处理模块主要负责提供各个子过程的调节调度算法;
|
||||
模型处理模块,主要负责提供各个子过程的调节调度算法。
|
||||
|
||||
滑动场景策略模块主要负责针对滑动场景,使用帧事件处理模块的算法接口提供应用主线程绘帧策略,进行场景化精细调度。
|
||||
滑动场景策略模块,主要负责针对滑动场景,使用模型处理处理模块的算法接口提供应用主线程绘帧策略,进行场景化精细调度。
|
||||
|
||||
- **帧感知调度机制组件**:主要分为场景处理模块、应用管控模块、调度参数管控模块和RTG(Related-Thread-Group)分组管理模块,四者构成应用线程调度机制。其中:
|
||||
|
||||
场景处理模块主要负责注册接收来自全局资源管控子系统的消息,诸如应用前后台切换、窗口焦点变化等,并分发消息给应用管控模块和RTG分组模块;
|
||||
|
||||
应用管控模块,主要负责把维护接收到的消息,形成应用消息管理;
|
||||
|
||||
RTG分组管理模块即调用内核接口设置,根据应用状态设置RTG分组实现线程调度管理;
|
||||
|
||||
调度参数管控模块主要负责读取默认调度参数配置。
|
||||
- **帧感知调度机制组件**:主要分为事件处理模块、应用管控模块、调度参数管控模块和RTG(Related-Thread-Group)分组管理模块,四者构成应用线程调度机制。其中:
|
||||
|
||||
事件处理模块,主要负责注册接收来自全局资源管控子系统的消息,诸如应用前后台切换、窗口焦点变化等,并分发消息给应用管控模块和RTG分组模块。
|
||||
|
||||
应用管控模块,主要负责统一管理事件处理模块的应用消息。
|
||||
|
||||
RTG分组管理模块,即调用内核接口设置,根据应用状态设置RTG分组实现线程调度管理。
|
||||
|
||||
调度参数管控模块,主要负责读取默认调度参数配置。
|
||||
|
||||
两个组件中的事件处理模块,均统筹了智能感知调度部件所要对外相应的事件,而调度特性内核接口模块则负责将管控调度命令以帧的频率下发,两个组件相互合作,共同保障系统线程的性能供给。
|
||||
|
||||
@@ -65,10 +64,10 @@
|
||||
|
||||
应用绘帧感知主要负责调节内核调度的参数,进行线程负载的缩放。当用户在APP界面滑动时,识别出应用的关键线程(诸如绘帧主线程、渲染线程),感知应用绘帧子过程的执行情况,根据是否超时来判断是否调整内核调度参数,进行实时的资源供给,进行优先调度。
|
||||
|
||||
- 根据屏幕刷新率,判断当前帧率信息,根据越接近绘帧结束时刻,越加大关键线程的资源供给;
|
||||
- 根据屏幕刷新率,判断当前帧率信息,根据越接近绘帧结束时刻,越加大关键线程的资源供给。
|
||||
|
||||
|
||||
- 根据界面绘帧图形渲染过程中的各个子阶段的时长,调节资源供给;
|
||||
- 根据界面绘帧图形渲染过程中的各个子阶段的时长,调节资源供给。
|
||||
|
||||
|
||||
- 对可能发生丢帧卡顿的高概率事件,增加资源供给。
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 268 KiB |
Reference in New Issue
Block a user