
# 各模块简介
**任务管理**
提供任务的创建、删除、延迟、挂起、恢复等功能，以及锁定和解锁任务调度。支持任务按优先级高低的抢占调度以及同优先级时间片轮转调度。
**内存管理**
- 提供静态内存和动态内存两种算法，支持内存申请、释放。目前支持的内存管理算法有固定大小的BOX算法、动态申请的bestfit算法和bestfit_little算法。
- 提供内存统计、内存越界检测功能。
**硬件相关**
提供中断管理、异常管理、系统时钟等功能。
- 中断管理：提供中断的创建、删除、使能、禁止、请求位的清除功能。
- 异常管理：系统运行过程中发生异常后，跳转到异常处理模块，打印当前发生异常的函数调用栈信息，或者保存当前系统状态。
- Tick：Tick是操作系统调度的基本时间单位，对应的时长由每秒Tick数决定，由用户配置。
**IPC通信**
提供消息队列、事件、信号量和互斥锁功能。
- 消息队列：支持消息队列的创建、删除、发送和接收功能。

- 事件：支持读事件和写事件功能。
- 信号量：支持信号量的创建、删除、申请和释放功能。
- 互斥锁：支持互斥锁的创建、删除、申请和释放功能。
**软件定时器**
软件定时器提供了定时器的创建、删除、启动、停止功能。
**自旋锁**
多核场景下，支持自旋锁的初始化、申请、释放功能。
**低功耗**
- Run-stop：即休眠唤醒，是Huawei LiteOS提供的保存系统现场镜像以及从系统现场镜像中恢复运行的机制。
- Tickless：Tickless机制通过计算下一次有意义的时钟中断的时间，来减少不必要的时钟中断，从而降低系统功耗。打开Tickless功能后，系统会在CPU空闲时启动Tickless机制。
**维测**
- CPU占用率：可以获取系统或者指定任务的CPU占用率。
- Trace事件跟踪：实时获取事件发生的上下文，并写入缓冲区。支持自定义缓冲区，跟踪指定模块的事件，开启/停止Trace，清除/输出trace缓冲区数据等。
- LMS：实时检测内存操作合法性，LMS能够

- 检测的内存问题包括缓冲区溢出（buffer overflow），释放后使用（use after free），多重释放（double free）和释放野指针（wild pointer）。
- Shell：Huawei LiteOS Shell使用串口接收用户输入的命令，通过命令的方式调用、执行相应的应用程序。Huawei LiteOS Shell支持常用的基本调试功能，同时支持用户添加自定义命令。
**C++支持**
Huawei LiteOS支持部分STL特性、异常和RTTI特性，其他特性由编译器支持。
