梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记

wx62ed24fbe9e9e
发布于 2022-8-5 22:32
浏览
0收藏

3.1任务管理
任务基本概念
任务是竞争系统资源最小的单位

多个任务可以同时进行,并实现任务之间的切换和通信

LiteOS采用的是抢占式调度机制,高优先级任务可打断低优先级任务,当任务优先级相同时,先创建的任务先运行

同时具备时间片轮转功能

LiteOS的任务默认为32个优先级,从高优先级到低优先级为0-31

任务状态
就绪(Ready)

运行(Running)

阻塞(Blocked)

退出态(Dead)

任务状态迁移

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
API任务接口(code)

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
3.2软件定时器
概念
基于系统Tick时钟中断且由软件来模拟的定时器,当经过Tick时钟所设定的数值后会触发回调函数

功能

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
遵循队列规则(先进先出)

基本即使单位
Tick

API软件定时器接口(code)

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
3.3信号量
概念
信号量是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问

系统进行多任务时,信号量可以协助各任务之间的同步或互斥实现临界资源的保护

信号量数值
对应有效资源数,表示剩下可被占用的互斥资源数
0:没有Post任务积累,且有可能有任务在此信号量上阻塞

正值:有一个或多个Post任务积累

信号量用作互斥:
记数是满的,以将信号量取空,是其他任务阻塞来保护临界资源

信号量用作同步:
记数是空的,任务1取信号量阻塞,任务2运行时释放信号量,将阻塞的任务1变为运行状态,实现两个任务同步

运行原理:
信号量初始化

信号量创建

信号量申请

信号量释放

信号量删除

信号量运行

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
API信号量接口(code)

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
3.4事件管理
概念
事件是一种实现任务间通信的机制,可用于实现任务间的同步

一个任务可以等待多个事件的发生

事件集合用32位无符号整型变量来表示,每一位代衷一个事件

事件可以提供一对多、多对多的同步操作
一对多同步模型
一个任务等待多个事件的触发

多对多同步模型
多个任务等待多个事件的触发

事件运行机制

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
API事件接口(code)

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
3.5互斥锁
概念
互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理

状态
开锁
任务释放,失去该互斥锁所有权

闭锁
任务持有,获得该互斥锁所有权

互斥锁可被用于对共享资源的保护从而实现独占式访问

互斥锁可以解决信号量存在的优先级翻转问题

LiteOS提供的互斥锁特点
通过优先级继承算法

解决优先级翻转问题

运行机制:保证了公共资源操作的完整性、

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
API互斥锁接口

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
3.6消息队列
概念
消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间

消息队列里为空,则挂起读取任务

出现新消息,则唤醒挂起的读取任务并对新消息进行处理

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
运行机制(创建队列、写队列、读队列、删除队列)

梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区
API消息队列接口
梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区梅科尔工作室OpenHarmony设备开发培训笔记-第三章学习笔记-鸿蒙开发者社区

分类
收藏
回复
举报
回复
    相关推荐