|
SimpleKernel 1.17.0
|
每个核心的调度数据 (RunQueue) More...
#include <task_manager.hpp>

Public Member Functions | |
构造/析构函数 | |
| CpuSchedData ()=default | |
| CpuSchedData (const CpuSchedData &)=delete | |
| CpuSchedData (CpuSchedData &&)=delete | |
| auto | operator= (const CpuSchedData &) -> CpuSchedData &=delete |
| auto | operator= (CpuSchedData &&) -> CpuSchedData &=delete |
| ~CpuSchedData ()=default | |
Public Attributes | |
| SpinLock | lock {"sched_lock"} |
| std::array< etl::unique_ptr< SchedulerBase >, static_cast< uint8_t >(SchedPolicy::kPolicyCount)> | schedulers {} |
| 调度器数组 (按策略索引) | |
| etl::priority_queue< TaskControlBlock *, kernel::config::kMaxSleepingTasks, etl::vector< TaskControlBlock *, kernel::config::kMaxSleepingTasks >, TaskControlBlock::WakeTickCompare > | sleeping_tasks |
| 睡眠队列 (优先队列,按唤醒时间排序) | |
| etl::unordered_map< ResourceId, etl::list< TaskControlBlock *, kernel::config::kMaxBlockedPerGroup >, kernel::config::kMaxBlockedGroups, kernel::config::kMaxBlockedGroupsBuckets > | blocked_tasks |
| 阻塞队列 (按资源 ID 分组) | |
| uint64_t | local_tick {0} |
| Per-CPU tick 计数 (每个核心独立计时) | |
| uint64_t | idle_time {0} |
| 本核心的空闲时间 (单位: ticks) | |
| uint64_t | total_schedules {0} |
| 本核心的总调度次数 | |
| bool | scheduler_started {false} |
| Schedule() 是否已被显式调用 | |
每个核心的调度数据 (RunQueue)
Definition at line 33 of file task_manager.hpp.
|
default |
|
delete |
|
delete |
|
default |
|
delete |
|
delete |
| etl::unordered_map< ResourceId, etl::list<TaskControlBlock*, kernel::config::kMaxBlockedPerGroup>, kernel::config::kMaxBlockedGroups, kernel::config::kMaxBlockedGroupsBuckets> CpuSchedData::blocked_tasks |
阻塞队列 (按资源 ID 分组)
Definition at line 54 of file task_manager.hpp.
| uint64_t CpuSchedData::idle_time {0} |
| uint64_t CpuSchedData::local_tick {0} |
| SpinLock CpuSchedData::lock {"sched_lock"} |
Definition at line 34 of file task_manager.hpp.
| bool CpuSchedData::scheduler_started {false} |
| std::array<etl::unique_ptr<SchedulerBase>, static_cast<uint8_t>(SchedPolicy::kPolicyCount)> CpuSchedData::schedulers {} |
| etl::priority_queue< TaskControlBlock*, kernel::config::kMaxSleepingTasks, etl::vector<TaskControlBlock*, kernel::config::kMaxSleepingTasks>, TaskControlBlock::WakeTickCompare> CpuSchedData::sleeping_tasks |
睡眠队列 (优先队列,按唤醒时间排序)
Definition at line 46 of file task_manager.hpp.
| uint64_t CpuSchedData::total_schedules {0} |