当前位置: 首页 > article >正文

鸿蒙OpenHarmony【小型系统基础内核(进程管理调度器)】子系统开发

调度器

基本概念

OpenHarmony LiteOS-A内核采用了高优先级优先 + 同优先级时间片轮转的抢占式调度机制,系统从启动开始基于real time的时间轴向前运行,使得该调度算法具有很好的实时性。

OpenHarmony 的调度算法将 tickless 机制天然嵌入到调度算法中,一方面使得系统具有更低的功耗,另一方面也使得 tick 中断按需响应,减少无用的 tick 中断响应,进一步提高系统的实时性。

OpenHarmony 的进程调度策略支持 SCHED_RR(时间片轮转),线程调度策略支持 SCHED_RR 和 SCHED_FIFO(先进先出)。

OpenHarmony 调度的最小单元为线程。

运行机制

OpenHarmony 采用进程优先级队列 + 线程优先级队列的方式,进程优先级范围为0-31,共有32个进程优先级桶队列,每个桶队列对应一个线程优先级桶队列;线程优先级范围也为0-31,一个线程优先级桶队列也有32个优先级队列。

图1 调度优先级桶队列示意图

1

OpenHarmony 在系统启动内核初始化之后开始调度,运行过程中创建的进程或线程会被加入到调度队列,系统根据进程和线程的优先级及线程的时间片消耗情况选择最优的线程进行调度运行,线程一旦调度到就会从调度队列上删除,线程在运行过程中发生阻塞,会被加入到对应的阻塞队列中并触发一次调度,调度其它线程运行。如果调度队列上没有可以调度的线程,则系统就会选择KIdle进程的线程进行调度运行。

图2 调度流程示意图 2

开发指导

接口说明

接口名称描述
LOS_Schedule触发系统调度
LOS_GetTaskScheduler获取指定任务的调度策略
LOS_SetTaskScheduler设置指定任务的调度策略
LOS_GetProcessScheduler获取指定进程的调度策略
LOS_SetProcessScheduler设置指定进程的调度参数,包括优先级和调度策略

开发流程

说明: 系统启动初始化阶段,不允许触发调度。

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习路线,展示如下:
1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

2

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!
3


http://www.kler.cn/a/318229.html

相关文章:

  • 任务2 配置防火墙firewalld
  • MFC/C++学习系列之简单记录9——简单加法
  • Java字符串的|分隔符转List实现方案
  • 记录仪方案_记录仪安卓主板定制_音视频记录仪PCBA定制开发
  • 图书管理系统:提升图书馆服务质量的技术解决方案
  • Unity中有什么情况下是需要用UniTask替代其他异步方式的吗?
  • 【爬虫】PlayWright使用说明
  • 如何查看docker 镜像的sha256值
  • Python编码系列—Python模板方法模式:定义算法骨架,让子类实现细节
  • Element Plus图片上传组件二次扩展
  • 《探索云原生与相关技术》
  • 【nvm管理多版本node】下载安装以及常见问题和解决方案
  • 分发饼干00
  • 苹果手机邮箱添加阿里云邮箱的设置步骤
  • Tomcat 乱码问题彻底解决
  • BigDecimal的使用
  • Vue.js props 子组件可以从父组件接收数据(通过 props)并可以向父组件发送事件(通过 $emit)
  • 力扣206.反转链表
  • 24/9/24 算法笔记 超参数优化算法
  • 模型验证 — 交叉验证Cross Validation的方法
  • 大数据新视界 --大数据大厂之算法在大数据中的核心作用:提升效率与智能决策
  • 【linux】file命令
  • 数据篇| 关于Selenium反爬杂谈
  • Python3将Excel数据转换为文本文件
  • 【鸿蒙 HarmonyOS NEXT】组件嵌套滚动:nestedScroll
  • 【html】基础(二)