OpenHarmony轻量系统服务管理|系统服务管理之基础框架及功能详解

前言

本文是对分布式任务调度之系统服务管理中的一些基础框架、数据和操作总体概述,包含底层内存管理、底层队列操作、底层线程管理、时间操作、令牌桶操作、vector操作、系统功能存储结构等。这也是Samgr部分中的最后一个子主题。它们作为底层操作为上层服务和功能间的交互提供相应的支持。分析思路采用1篇总体概述+n篇代码标注的方式进行技术分享。在本文中提到的数据结构或函数的详细分析可以在文末的附录中找到,其中也包含了许多优秀代码的分析。

基础框架适配层概述

鸿蒙操作系统的设计初衷是实现万物互联,使用同一套系统能力即可适配多种终端形态。由于平台资源有限且终端底层硬件的多样化,因此需要屏蔽不同硬件架构和资源的差异,提供统一化的系统服务开发框架。鸿蒙系统的设计将种硬件平台划分为两类,简称为M核、A核。   
M核:处理器架构为Cortex-M或同等处理能力的硬件平台,系统内存一般低于512KB,无文件系统或者仅提供一个可有限使用的轻量级文件系统,遵循CMSIS接口规范。   
A核:处理器架构为Cortex-A或同等处理能力的硬件平台,内存资源大于512KB,文件系统完善,可存储大量数据,遵循POSIX接口规范。 注:M核和A核的介绍摘自鸿蒙系统的简介。

综上所述,不同硬件的底层差异主要是来源于它们所遵循的接口规范,所以鸿蒙操作系统通过实现统一的内存管理、线程管理、队列管理等来屏蔽这种差异,最终实现一套系统能力适配多种终端设备。

内存管理

POSIXCMSIS中底层内存分配和回收的差异主要在于引用头文件的不同。在POSIX下,malloc()free()stdlib.h中,而CMSISmalloc.h中。屏蔽它们的差异是通过定义一个统一的内存分配和回收的头文件,然后不同的平台进行差异性实现。在不同平台编译时,内存分配和回收的接口是不变的,我们就不需要改上层代码。

队列相关操作

鸿蒙操作系统对于POSIXCMSIS两类平台在队列的实现上也存在差异,也是通过在头文件中定义统一的队列操作接口,然后进行不同的实现。在CMSIS下,鸿蒙系统的队列相关操作是通过封装cmsis_os.h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值