30 klog::Err(
"FifoScheduler::Enqueue: ready_queue full, dropping task");
72 [[nodiscard]]
auto IsEmpty() const ->
bool override {
99 etl::list<TaskControlBlock*, kernel::config::kMaxReadyTasks>
ready_queue_;
auto operator=(FifoScheduler &&) -> FifoScheduler &=delete
etl::list< TaskControlBlock *, kernel::config::kMaxReadyTasks > ready_queue_
就绪队列 (先进先出,固定容量)
auto operator=(const FifoScheduler &) -> FifoScheduler &=delete
auto Enqueue(TaskControlBlock *task) -> void override
将任务加入就绪队列尾部
FifoScheduler(FifoScheduler &&)=delete
auto OnPreempted(TaskControlBlock *task) -> void override
任务被抢占时调用
auto PickNext() -> TaskControlBlock *override
选择下一个要运行的任务(队列头部)
auto IsEmpty() const -> bool override
判断队列是否为空
~FifoScheduler() override=default
FifoScheduler(const FifoScheduler &)=delete
auto GetQueueSize() const -> size_t override
获取就绪队列大小
auto Dequeue(TaskControlBlock *task) -> void override
从就绪队列中移除指定任务
auto Err(etl::format_string< Args... > fmt, Args &&... args) -> void
以 ERROR 级别记录日志
size_t total_dequeues
总出队次数
size_t total_preemptions
总抢占次数
size_t total_enqueues
总入队次数