|
SimpleKernel 1.17.0
|
Idle 调度器 More...
#include <idle_scheduler.hpp>


Public Member Functions | |
| auto | Enqueue (TaskControlBlock *task) -> void override |
| 将 idle 任务加入队列 | |
| auto | Dequeue (TaskControlBlock *task) -> void override |
| 从队列中移除任务 | |
| auto | PickNext () -> TaskControlBlock *override |
| 选择下一个要运行的任务(返回 idle 任务) | |
| auto | GetQueueSize () const -> size_t override |
| 获取队列大小 | |
| auto | IsEmpty () const -> bool override |
| 判断队列是否为空 | |
| auto | OnTick (TaskControlBlock *current) -> bool override |
| Tick 更新(idle 任务不需要时间片管理) | |
| auto | OnTimeSliceExpired (TaskControlBlock *task) -> bool override |
| 时间片耗尽处理(idle 任务不使用时间片) | |
| auto | OnPreempted (TaskControlBlock *task) -> void override |
| 任务被抢占时的处理(idle 任务不需要特殊处理) | |
| auto | OnScheduled (TaskControlBlock *task) -> void override |
| 任务被调度时的处理(idle 任务不需要特殊处理) | |
构造/析构函数 | |
| IdleScheduler () | |
| IdleScheduler (const IdleScheduler &)=delete | |
| IdleScheduler (IdleScheduler &&)=delete | |
| auto | operator= (const IdleScheduler &) -> IdleScheduler &=delete |
| auto | operator= (IdleScheduler &&) -> IdleScheduler &=delete |
| ~IdleScheduler () override=default | |
Public Member Functions inherited from SchedulerBase | |
| virtual auto | BoostPriority (TaskControlBlock *task, int new_priority) -> void |
| 优先级提升:当任务持有资源时被更高优先级任务等待,提升其优先级 | |
| virtual auto | RestorePriority (TaskControlBlock *task) -> void |
| 优先级恢复:当任务释放资源后,恢复其原始优先级 | |
| virtual auto | GetStats () const -> const Stats & |
| 获取调度器统计信息 | |
| virtual auto | ResetStats () -> void |
| 重置统计信息 | |
| SchedulerBase ()=default | |
| SchedulerBase (const SchedulerBase &)=default | |
| SchedulerBase (SchedulerBase &&)=default | |
| auto | operator= (const SchedulerBase &) -> SchedulerBase &=default |
| auto | operator= (SchedulerBase &&) -> SchedulerBase &=default |
| virtual | ~SchedulerBase ()=default |
Private Attributes | |
| TaskControlBlock * | idle_task_ {nullptr} |
| Idle 任务指针(通常只有一个) | |
Additional Inherited Members | |
Public Attributes inherited from SchedulerBase | |
| const char * | name {"Unnamed Scheduler"} |
| 调度器名称 | |
Protected Attributes inherited from SchedulerBase | |
| Stats | stats_ {} |
Idle 调度器
Idle 调度器特点:
Definition at line 19 of file idle_scheduler.hpp.
|
inline |
Definition at line 108 of file idle_scheduler.hpp.
|
delete |
|
delete |
|
overridedefault |
|
inlineoverridevirtual |
从队列中移除任务
| task | 要移除的任务 |
Implements SchedulerBase.
Definition at line 34 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
将 idle 任务加入队列
| task | 要加入的任务(通常只有一个 idle 任务) |
Implements SchedulerBase.
Definition at line 25 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
获取队列大小
Implements SchedulerBase.
Definition at line 57 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
判断队列是否为空
Implements SchedulerBase.
Definition at line 65 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
任务被抢占时的处理(idle 任务不需要特殊处理)
| task | 被抢占的任务 |
Reimplemented from SchedulerBase.
Definition at line 93 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
任务被调度时的处理(idle 任务不需要特殊处理)
| task | 被调度的任务 |
Reimplemented from SchedulerBase.
Definition at line 102 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
Tick 更新(idle 任务不需要时间片管理)
| current | 当前任务 |
Reimplemented from SchedulerBase.
Definition at line 74 of file idle_scheduler.hpp.
|
inlineoverridevirtual |
时间片耗尽处理(idle 任务不使用时间片)
| task | 任务 |
Reimplemented from SchedulerBase.
Definition at line 84 of file idle_scheduler.hpp.
|
delete |
|
delete |
|
inlineoverridevirtual |
选择下一个要运行的任务(返回 idle 任务)
Implements SchedulerBase.
Definition at line 45 of file idle_scheduler.hpp.
|
private |