关于物联网:实践分享丨物联网操作系统中的任务管理

31次阅读

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

明天,咱们分享的内容次要是物联网操作系统中的工作治理。

在开始正式的浏览分享帖之前,按常规,咱们须要思考几个问题:

1. 过程和线程,你是否理解其区别与分割?

2. 什么是工作?

3. 物联网操作系统中的工作治理次要蕴含那几个方面?

如果你认真的思考了下面的问题,那么请你浏览上面的分享,也心愿你能 Get 到属于本人的盲点常识!

一、工作治理基本概念

过程: 正在运行程序的一个实例

线程: 过程中的一个实体,是被系 ** 立调度和分派的根本单位

过程与线程的区别

线程是程序执行的最小单位,过程是操作系统分配资源的最小单位

一个过程由一个或多个线程组成,线程是一个过程中代码的不同执行路线

过程之间互相独立,同一过程下的各个线程共享程序的内存空间

工作概念

从零碎的角度看,工作是竞争系统资源的最小运行单元;工作能够应用或期待 CPU、应用内存空间等系统资源,并独立于其它工作运行

Huawei LiteOS 的工作模块能够给用户提供多个工作,实现了工作之间的切换和通信,帮忙用户治理业务程序流程

Huawei LiteOS 是一个反对多任务的操作系统,在 LiteOS 中一个工作示意一个线程

Huawei LiteOS 中的工作是抢占式调度机制,同时反对工夫片轮转调度形式

二、工作治理原理

工作: 由一组元素组成的实体

元素 (用于治理每一个工作)

标识符:和工作相干的惟一标识符

工作名:工作名称

工作状态:用于示意当前任务正在执行或期待

优先级:代表工作执行的优先程序

上下文栈指针:工作行将被执行的下一条指令地址

工作管制块(TCB:Task Control Block)

工作状态

用于形容工作所体现出的行为

就绪态(Ready):该工作在就绪列表中,就绪的工作曾经具备执行的能力,只期待调度器进行调度,新创建的工作会初始化为就绪态

运行态(Running):该状态表明工作正在执行,此时它占用处理器,LiteOS 调度器抉择运行的永远是处于最高优先级的就绪态工作,当工作被运行的一刻,它的工作状态就变成了运行态

阻塞态(Blocked):如果工作以后正在期待某个时序或内部中断,咱们就说这个工作处于阻塞状态,该工作不在就绪列表中。蕴含工作被挂起、工作被延时、工作正在期待信号量、读写队列或者期待读写事件等

退出态(Dead):该工作运行完结,期待零碎回收资源

工作状态间的迁徙

**

**

就绪—> 运行态

工作创立后进入就绪态,产生工作切换时,就绪列表中最高优先级的工作被执行,从而进入运行态,但此刻该工作仍旧在就绪列表中

运行—> 阻塞态

正在运行的工作产生阻塞(挂起、延时、获取互斥锁、读音讯、读信号量期待等)时,该工作会从就绪列表中删除,工作状态由运行态变成阻塞态,而后产生工作切换,运行就绪列表中残余最高优先级工作

阻塞—> 就绪态

阻塞的工作被复原后(工作复原、延时工夫超时、读信号量超时或读到信号量等),被复原的工作会被退出就绪列表,从而由阻塞态变成就绪态;如果被复原工作的优先级高于正在运行工作的优先级,则会产生工作切换,将该工作由就绪态变成运行态

就绪—> 阻塞态

工作也有可能在就绪态时被阻塞(挂起),此时工作状态会由就绪态转变为阻塞态,该工作从就绪列表中删除,不会参加任务调度,直到该工作被复原

运行—> 就绪态

有更高优先级工作创立或者复原后,会产生任务调度,此刻就绪列表中最高优先级工作变为运行态,那么原先运行的工作由运行态变为就绪态,仍然在就绪列表中

运行—> 退出态

运行中的工作运行完结,内核主动将此工作删除,工作状态由运行态变为退出态

阻塞—> 退出态

阻塞的工作调用删除接口,工作状态由阻塞态变为退出态

工作栈

工作栈的大小按 8 字节对齐

作用

工作切断或响应中断时,工作栈用于保留 CPU 寄存器的内容

工作运行时,工作栈用于保留一些局部变量、函数参数等

工作优先级

优先级示意工作执行的优先程序

工作的优先级决定了在产生工作切换时行将要执行的工作

在就绪列表中的最高优先级的工作将失去执行

高优先级的工作可打断低优先级工作,低优先级工作必须在高优先级工作阻塞或完结后能力失去调度

Huawei LiteOS 的工作一共有 32 个优先级 (0-31),最高优先级为 0,最低优先级为 31

三、任务调度

工作上下文

Huawei LiteOS 在工作挂起的时候会将本工作的工作上下文信息,保留在本人的工作栈外面,以便工作复原后,从栈空间中复原挂起时的上下文信息,从而继续执行被挂起时被打断的代码

工作切换

工作切换蕴含获取就绪列表中最高优先级工作、切出工作上下文保留、切入工作上下文复原等动作

调度算法

抢占式调度机制

工夫片轮转调度机制

四、工作运行

创立工作

LOS_TaskCreateOnly:创立工作进入 suspend 态,不进行任务调度

LOS_TaskCreate:创立工作进入就绪态,进行任务调度

终止工作

LOS_TaskDelete:删除指定的工作

五、工作间通信

工作之间通过音讯队列进行信息传输,实现工作间的通信

音讯队列

用于工作间通信的数据结构

用于接管来自工作或中断的非固定长度音讯

可依据不同的接口抉择音讯是否寄存在本人的空间中

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0