openharmony_kernel_liteos_a/kernel/base/core
zhushengle 6d8cef40c8 feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能
背景:
原调度机制与软件定时器实现混合,调度时间链表存在两个链表,
任务切换时需要遍历两个链表才可以获取到最终的tick响应时间。
软件定时作为一个独立的功能,不应该和调度强耦合,而且软件定时
器作为一个任务,某个软件定时器的响应时间应该是软件定时器任务的
响应时间,不应该直接做为tick中断的响应时间。

方案描述:
1.将软件定时器从调度分离,作为一个独立的机制,从调度角度看其就是一个任务
2.软件定时器从调度分离之后,其timelist遍历从tick中断移动至软件定时器任务中
3.优化软件定时器的均衡调度

优势:
1.将软件定时器与调度完全分离,使得调度功能单一化,便于后续其它调度算法的引入
2.优化tick中断,减小tick中断耗时
3.优化通过写队列唤醒软件定时器任务去执行软件定时器钩子为插队列,减少软件定时
器机制本身的耗时,提升软件定时器的实时性
4.优化软件定时器均衡调度,使得软件定时器均匀分布于多核,提升软件定时器的实时性

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I07c01f134e69c1d9b7061ddf5a231df1ee99b68e
2022-03-19 11:23:36 +08:00
..
los_bitmap.c remove __cplusplus guards in .c files 2021-04-19 18:28:25 +08:00
los_process.c 【背景】内源代码检视问题 2022-03-08 09:45:17 +00:00
los_smp.c feat: 调度相关模块间依赖优化 2022-01-21 15:52:51 +08:00
los_swtmr.c feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能 2022-03-19 11:23:36 +08:00
los_sys.c fix: 修改DoNanoSleep 以纳秒为单位 2021-08-10 11:25:49 +08:00
los_task.c feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能 2022-03-19 11:23:36 +08:00
los_tick.c refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理 2021-07-01 09:08:18 +08:00