鸿蒙LiteOS-M学习笔记-数据结构(2)任务就绪队列

本文介绍了鸿蒙轻内核中任务就绪队列的实现,它是一个双向循环链表数组,用于存放相同优先级的任务。在任务调度中,初始化、插入、删除和获取最高优先级节点等操作都是关键。理解这些概念有助于深入掌握系统任务管理机制。
摘要由CSDN通过智能技术生成

1.2 任务就绪队列
在任务调度模块,就绪队列是个重要的数据结构。任务创建后即进入就绪态,并放入就绪队列。在鸿蒙轻内核中,就绪队列是一个双向循环链表数组,每个数组元素就是一个链表,相同优先级的任务放入同一个链表。
任务就绪队列Priority Queue主要供内部使用,用户进行业务开发时不涉及,所以并未对外提供接口。双向循环链表数组能够更加方便的支持任务基于优先级进行调度。任务就绪队列的核心代码在kernel\src\los_task.c文件中。
1.2.1 任务就绪队列的定义
在这里插入图片描述

(1)表示队列数量最多有32个,也就是链表数组的长度为32,对应任务优先级为32.
(3)表示链表数组,也就是队列,对应索引为置表示优先级,索引越小,优先级越高。
(4)表示队列的bitmap,这是个32位的整形数据,对应的bit位0表示为31-优先级的队列没有就绪,1表示有就绪。
(2)表示为bitmap赋值,初始值为0x80000000,表示优先级为31的空线程就绪。
在这里插入图片描述

1.2.2 初始化任务就绪队列
在OsSchedInit()函数中,对就绪队列进行了初始化

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值