任务管理
基本概念
1、从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。
2、HuaweiLiteOS的任务模块可以给用户提供多个任务,实现了任务之间的切换和通信,帮助用户管理业务程序流程。
3、HuaweiLiteOS是一个支持多任务的操作系统。在HuaweiLiteOS中,一个任务表示一个线程。
4、HuaweiLiteOS中的任务是抢占式调度机制,同时支持时间片轮转调度方式。
5、高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度。
6、HuaweiLiteOS的任务一共有32个优先级(0-31),最高优先级为0,最低优先级为31。
任务状态
任务状态通常分为以下四种:
就绪(Ready):该任务在就绪列表中,只等待CPU。
运行(Running):该任务正在执行。
阻塞(Blocked):该任务不在就绪列表中。包含任务被挂起、任务被延时、任务正在等待信号量、读写队列或者等待读写事件等。
退出态(Dead):该任务运行结束,等待系统回收资源。
为了让SDK能够更广泛的应用,所以提出了OSAL。
SDK内部集成的组件以及SDK本身使用的OS功能,都调用的是OSAL接口,因为SDK要运行起来,必须注册相关的OS进OSAL才行。
osal的api接口声明在<osal.h>中,使用相关的接口需要包含该头文件,关于函数的详细参数请参考该头文件的声明。
目前已经适配了LiteOS/LINUX/MACOS等,SDK可以在这些系统下运行。如果你需要在非上述系统下运行SDK,您需要将新系统适配进OSAL,保障SDK需要的OS功能正常。
适配OSAL您需要在您的系统初始化完毕之后,调用osal_install接口将您的系统注册进SDK即可。使用该接口需要包含<osal_imp.h>,相关的宏定义在<osal_type.h>中。详情参考该头文件。