319 Star 2.1K Fork 1K

OpenHarmony / kernel_liteos_a

 / 详情

【调度实时性】【调度框架】【模块间解耦】

已完成
需求 成员
创建于  
2022-01-21 11:00

【方案描述】:
【背景】:
调度、线程、软件定时器、sortlink、percpu、异常、workqueue模块相互耦合,存在很多不属于本模块的实现,导致这几个模块间依赖混乱、且到处引用其它模块的内部成员。

【方案描述】:
解决上述依赖混乱的问题,为后续调度框架打基础,优化后依赖关系:

                                                              | ---> los_swtmr_pri.h --> workqueue
los_sortlink_pri.h: ---> los_sched_pri.h --> los_task_pri.h -->
作为基础算法                                                   | ---> ipc
(现在为双向链表),
做到功能最小化,
便于后续其它算法替换

【调度框架大体方案描述】:

1.cpu run queue ----> 任务延时队列

                                         |---- 调度队列
                   |----  EDF        --->
                   |                     |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
                   |
                   |                     |---- 调度队列
2.task ---> 调度策略----> SCHED_RR   --->
                   |                     |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
                   |
                   |                     |---- 调度队列
                   |----> SCHED_IDLE --->
                                         |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)

评论 (3)

zhushengle 创建了需求
zhushengle 修改了描述
zhushengle 任务状态待办的 修改为开发中
zhushengle 通过openharmony/kernel_liteos_a Pull Request !791任务状态开发中 修改为已完成
展开全部操作日志

feat: 优化调度结构

将软件定时器相关的东西抽离,使得workqueue只依赖软件定时器提供的方法

Close #I4RPRW:【调度实时性】【调度框架】【模块间解耦】
Signed-off-by: zhushengle zhushengle@huawei.com
Change-Id: Ia6db62468968405e1aaa8c569e130b45ec593118

-----来自 commit 5e583ec

feat: 调度模块架构优化

将内核内核的私有字段抽离,使其只依赖内核提供的方法

Close #I4RPRW:【调度实时性】【调度框架】【模块间解耦】

Signed-off-by: zhushengle zhushengle@huawei.com
Change-Id: Ie23621693ba2cafd48f360a3b832fe2ec823a685

-----来自 commit a69079c

feat: 调度相关模块间依赖优化

背景:
调度、线程、软件定时器、sortlink、percpu、异常、workqueue模块相互耦合,存在很多不属于本模块的实现,
导致这几个模块间依赖混乱、且到处引用其它模块的内部成员。

方案描述:
解决上述依赖混乱的问题,为后续调度框架打基础,优化后依赖关系:

                                                          | ---> los_swtmr_pri.h --> workqueue

los_sortlink_pri.h: ---> los_sched_pri.h --> los_task_pri.h -->
作为基础算法 | ---> ipc
(现在为双向链表),
做到功能最小化,
便于后续其它算法替换

调度框架大体方案描述:

1.cpu run queue ----> 任务延时队列

                                     |---- 调度队列
               |----  EDF        --->
               |                     |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
               |
               |                     |---- 调度队列

2.task ---> 调度策略----> SCHED_RR --->
| |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
|
| |---- 调度队列
|----> SCHED_IDLE --->
|---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)

Close #I4RPRW:【调度实时性】【调度框架】【模块间解耦】
Signed-off-by: zhushengle zhushengle@huawei.com
Change-Id: Ia54dc1b8a4801a225a52e40555490c1dce0bd75e

-----来自 commit 0e3936c

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(1)
7989059 star rain 1599750608
C
1
https://gitee.com/openharmony/kernel_liteos_a.git
git@gitee.com:openharmony/kernel_liteos_a.git
openharmony
kernel_liteos_a
kernel_liteos_a

搜索帮助

53164aa7 5694891 3bd8fe86 5694891