|
SimpleKernel 1.17.0
|
先来先服务 (FIFO) 调度器 More...
#include <fifo_scheduler.hpp>


Public Member Functions | |
| auto | Enqueue (TaskControlBlock *task) -> void override |
| 将任务加入就绪队列尾部 | |
| auto | Dequeue (TaskControlBlock *task) -> void override |
| 从就绪队列中移除指定任务 | |
| auto | PickNext () -> TaskControlBlock *override |
| 选择下一个要运行的任务(队列头部) | |
| auto | GetQueueSize () const -> size_t override |
| 获取就绪队列大小 | |
| auto | IsEmpty () const -> bool override |
| 判断队列是否为空 | |
| auto | OnPreempted (TaskControlBlock *task) -> void override |
| 任务被抢占时调用 | |
构造/析构函数 | |
| FifoScheduler () | |
| FifoScheduler (const FifoScheduler &)=delete | |
| FifoScheduler (FifoScheduler &&)=delete | |
| auto | operator= (const FifoScheduler &) -> FifoScheduler &=delete |
| auto | operator= (FifoScheduler &&) -> FifoScheduler &=delete |
| ~FifoScheduler () override=default | |
Public Member Functions inherited from SchedulerBase | |
| virtual auto | OnTick (TaskControlBlock *current) -> bool |
| Tick 更新:每个时钟中断时调用,用于更新调度器状态 | |
| virtual auto | OnTimeSliceExpired (TaskControlBlock *task) -> bool |
| 时间片耗尽处理:当任务时间片用完时调用 | |
| virtual auto | BoostPriority (TaskControlBlock *task, int new_priority) -> void |
| 优先级提升:当任务持有资源时被更高优先级任务等待,提升其优先级 | |
| virtual auto | RestorePriority (TaskControlBlock *task) -> void |
| 优先级恢复:当任务释放资源后,恢复其原始优先级 | |
| virtual auto | OnScheduled (TaskControlBlock *task) -> void |
| 任务开始运行时调用 (从 Ready 变为 Running) | |
| 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 | |
| etl::list< TaskControlBlock *, kernel::config::kMaxReadyTasks > | ready_queue_ |
| 就绪队列 (先进先出,固定容量) | |
Additional Inherited Members | |
Public Attributes inherited from SchedulerBase | |
| const char * | name {"Unnamed Scheduler"} |
| 调度器名称 | |
Protected Attributes inherited from SchedulerBase | |
| Stats | stats_ {} |
先来先服务 (FIFO) 调度器
FIFO 调度器特点:
Definition at line 22 of file fifo_scheduler.hpp.
|
inline |
Definition at line 89 of file fifo_scheduler.hpp.
|
delete |
|
delete |
|
overridedefault |
|
inlineoverridevirtual |
从就绪队列中移除指定任务
| task | 要移除的任务 |
Implements SchedulerBase.
Definition at line 41 of file fifo_scheduler.hpp.

|
inlineoverridevirtual |
将任务加入就绪队列尾部
| task | 要加入的任务 |
Implements SchedulerBase.
Definition at line 28 of file fifo_scheduler.hpp.


|
inlineoverridevirtual |
获取就绪队列大小
Implements SchedulerBase.
Definition at line 64 of file fifo_scheduler.hpp.

|
inlineoverridevirtual |
判断队列是否为空
Implements SchedulerBase.
Definition at line 72 of file fifo_scheduler.hpp.

|
inlineoverridevirtual |
任务被抢占时调用
FIFO 是不可抢占调度器,但如果外部强制抢占,则需要统计
| task | 被抢占的任务 |
Reimplemented from SchedulerBase.
Definition at line 83 of file fifo_scheduler.hpp.

|
delete |
|
delete |
|
inlineoverridevirtual |
选择下一个要运行的任务(队列头部)
Implements SchedulerBase.
Definition at line 50 of file fifo_scheduler.hpp.

|
private |
就绪队列 (先进先出,固定容量)
Definition at line 99 of file fifo_scheduler.hpp.