关于javascript:HDC2021技术分论坛HarmonyOS内核技术大揭秘

73次阅读

共计 3374 个字符,预计需要花费 9 分钟才能阅读完成。

作者:jikecheng,miaoxie,HarmonyOS 内核技术专家

HarmonyOS 整体框架分为四个层级,如图 1 所示。从上到下,顺次为:第一层是应用层,次要涵盖零碎利用、Launcher、设置,以及三方利用。第二层是框架层,提供根底 UI 框架、用户程序框架以及能力模块框架。第三层是零碎服务层,让 HarmonyOS 具备分布式流转负载的能力。大家看到的高速多设施协同能力就是由该层级提供。而承载整个操作系统,同时施展芯片算力的基石就积淀在第四层——内核层。宏观来说,内核的次要工作蕴含芯片资源管理、软件任务调度,以及连接用户空间与零碎调用能力。

图 1 HarmonyOS 整体框架

本期,咱们要重点给大家讲一讲 HarmonyOS 的内核层。

一、HarmonyOS 内核形成
为了撑持 HarmonyOS 在多设施、多场景下的性能体现,内核次要由三局部组成,如下图所示:

图 2 内核的组成

HarmonyOS 内核组件:具备智慧化资源管理能力的内核组件,包含 CPU/GPU 资源管理,内存治理,IO 调度治理以及高效的文件系统等。
规范的 Linux 内核:兼容了 LTS Linux 主线版本,做好外围生态的对接。
硬件平台 BSP:面向各种不同芯片与硬件平台(蕴含 1 +8+ N 的多种设施)的 BSP(board support package,板级撑持包)根底能力。
本期要为大家介绍的就是 HarmonyOS 内核组件的三项核心技术:高能效 CPU 资源调度、Hyperhold 内存治理引擎和高效的文件系统。上面为大家一一揭晓~

二、高能效 CPU 资源调度
业界少数的操作系统都是基于规范的 Linux 内核开发的。传统的 Linux 内核,晚期用于服务器和 PC 设施,与咱们当初用于手机、平板等的交互式内核相比,它们的设计理念和资源管理形式有所不同。以 CPU 资源为例,传统的 Linux 内核存在以下典型问题:

  1. 同优先级的业务过多,每次调度都不肯定抉择到要害过程。

传统的 Linux 内核偏差于在多用户的场景下偏心地分配资源。比拟显著的特色是,多个用户并发拜访,并发应用公共资源。因为同优先级的业务比拟多,每次任务调度不肯定可能抉择到要害过程。举个例子,当设施后盾存在多个利用或者服务工作时,零碎中和用户交互最敏感的渲染工作没法即时失去调度资源,导致设施会高概率呈现应用不晦涩或者点击无响应的景象,也就是咱们平时常说的随机卡顿。

  1. 抉择最优能效的 CPU 资源工夫过长,CPU 资源抉择适度。

传统的 Linux 内核抉择算力的流程,是一个慢速爬坡的过程。任务调度必须通过抉择 CPU 核簇、负载平衡、抉择频点等一系列流程。其漫长的过程,极易导致任务调度错过调度窗口,呈现算力供应有余的景象。

为了解决以上问题,HarmonyOS 内核提供了全栈式的调度框架,如下图所示:

图 3 HarmonyOS 调度治理框架

HarmonyOS 调度治理框架有以下特点:

● 工作按优先级调度

对现有零碎工作进行严格级别划分,在线标记与用户的操作体验间接相干的要害过程和关联工作,优先调度要害工作。

● 根据 CPU 负载状况抉择最优任务分配

咱们会动静检测不同 CPU 的负载,保障以后 CPU 有足够的算力提供。

● 抉择最优频点实现高能效

咱们提供了频点与性能、功耗之间的帕累托最优模型。每次工作,咱们都可能疾速抉择零碎最优的频点组合形式,实现最优能效。

通过试验,HarmonyOS 的全栈式调度框架能够帮忙用户取得在多场景(尤其是游戏场景)下继续且稳固的高帧率体验。

三、Hyperhold 内存治理引擎
对于内存治理,因为开源生态的不限度,导致利用开发的内存应用横蛮成长。设施长时间应用后,可回收内存越来越低。产生这个问题的起因有两个:

  1. 传统内存数据冷热治理,无奈感知业务个性

只管 Linux 内核提供了很多的内存回收机制,然而每种内存回收都会有相应的零碎代价。比方,回收文件页面后,如果零碎须要二次加载这部分数据,须要从底层器件 Flash 外面把数据读回来,这会引起 Flash 随机 IO 读的景象。对 IO 操作来说,Flash 器件速度和以后读取工作是随机读还是程序读有着很强的相关性,随机读容易导致系统随机卡顿。再比方,回收匿名页面后,如果零碎须要二次加载这部分数据,会触发 ZRAM 解压,耗费 CPU。

另外,因为利用的内存负载越来越重,当零碎冷热数据辨认不失当,会导致系统的 CPU 负载长期处于高负载状态,最终影响前台利用的根底性能。

  1. 传统共享式内存调配,无奈感知数据重要性

从内存调配角度看,当初的操作系统根本采纳对立接口的调配形式,使得手机外面多个过程或多个业务会共用一块内存区域。数据回收时,会频繁呈现数据搬移,以及内存震荡的景象。这个景象会减轻内核治理内存的开销。

为了解决传统 Linux 内核的内存问题,HarmonyOS 提供了 Hyperhold 内存治理引擎。Hyperhold 内存治理引擎买通了下层零碎到内核的调用栈,让内核残缺感知到利用的整个生命周期,并联合利用生命周期以及周期内的数据拜访特色,对每一块内存数据做正当的内存治理。同时,为了升高内核治理内存的开销,咱们提出了自研的压缩体系,包含多线程压缩、自研的压缩算法。为了进一步扩充可用空间,咱们在 Flash 器件上开出了一块可替换区,联合自研的聚合换出和内存标记技术,充分利用 Flash 器件的性能。

图 4 Hyperhold 内存治理引擎

通过试验,Hyperhold 内存治理引擎能够让利用在后盾的驻留能力晋升 50% 以上,用户能够显著感知到后盾利用的保活率有大幅晋升。

四、高效的文件系统
存储处于整个缓存体系下的最慢门路,容易成为零碎性能瓶颈。不仅如此,因为存储器件碎片化的问题,存储还容易呈现越用越慢的难题。其次,随着零碎的倒退,零碎占用存储越来越多。而在多设施流转的场景下,分布式文件系统的高效转存能力显得尤为重要。为应答上述问题,HarmonyOS 提供了高效的自研文件系统体系。从第一代的 eF2FS 到最新的 HMDFS,文件系统逐渐解决了碎片化问题、容量问题与多设施流转问题。

图 5 HarmonyOS 文件系统

上面咱们从第一代的 eF2FS 到最新的 HMDFS,顺次介绍 HarmonyOS 文件系统的技术特点。

  1. 第 1 代数据盘 eF2FS:智能感知空间治理,改善越用越慢

面对存储越用越慢的业界难题,咱们通过数据类型感知的多流算法和空间感知的调配算法,缩小碎片产生。同时,通过高效、业务感知的两层智能垃圾空间回收,实现智能感知空间治理。

上面咱们通过一个视频,更好地理解 HarmonyOS 的空间管理机制。

https://v.qq.com/x/page/b3309…

  1. 系统盘 EROFS:变长压缩,反对压缩与性能双赢

针对零碎占用存储越来越多的问题,业界其余操作系统也采取过改良措施,比方 squashfs 采纳“定长输出,变长输入”的压缩策略,但会存在读放大的问题。而咱们的 EROFS(Extendable Read-Only File System,超级文件系统)采纳“变长输出,定长输入”的压缩策略,尽可能地将不等长的文件块压缩成一个等长的存储块进行存储。这样,咱们拜访任何文件块,只需读取一个存储块,缩小了有效读取。除此之外,咱们在解压性能和 IO 流程上也做了优化。

图 6 系统盘 EROFS 的变长压缩

通过以上关键技术,系统盘 EROFS 的性能失去大幅晋升:

随机读性能均匀晋升 20%。
零碎初始空间相比 Ext4 节俭 2GB,相当于用户能够多存 1000 张照片或 500 首歌曲。
升级包大小降落约 5%-10%,降级工夫缩短约 20%。

  1. 跨设施 HMDFS:“批流”联合的分布式文件系统

HarmonyOS 同一套零碎能力、适配多种终端状态的分布式理念,就要求咱们有一套数据流转的底座——分布式文件系统 HMDFS。

图 7 HMDFS

应答多设施流转,HMDFS 提供了多种文件系统能力,包含:

文件类型聚合
高效的缓存治理
批处理接口
分布式的权限管控
高效传输
数据一致性治理
通过上述一系列技术的研发与集成,最终实现了现有的跨设施高效文件系统,为用户提供晦涩的分布式体验。

五、将来演进方向
下面就是咱们本期要介绍的 HarmonyOS 内核核心技术内容了。将来还有很多方向值得咱们持续摸索,下图列出了 HarmonyOS 内核的将来演进方向。

图 8 将来演进方向

置信通过咱们一直的摸索,咱们能打造出更好的内核,为大家提供更晦涩、体验更好的 HarmonyOS!

正文完
 0