SimpleKernel 1.17.0
Loading...
Searching...
No Matches
CpuSchedData Struct Reference

每个核心的调度数据 (RunQueue) More...

#include <task_manager.hpp>

Collaboration diagram for CpuSchedData:
Collaboration graph

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::WakeTickComparesleeping_tasks
 睡眠队列 (优先队列,按唤醒时间排序)
 
etl::unordered_map< ResourceId, etl::list< TaskControlBlock *, kernel::config::kMaxBlockedPerGroup >, kernel::config::kMaxBlockedGroups, kernel::config::kMaxBlockedGroupsBucketsblocked_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() 是否已被显式调用
 

Detailed Description

每个核心的调度数据 (RunQueue)

Definition at line 33 of file task_manager.hpp.

Constructor & Destructor Documentation

◆ CpuSchedData() [1/3]

CpuSchedData::CpuSchedData ( )
default

◆ CpuSchedData() [2/3]

CpuSchedData::CpuSchedData ( const CpuSchedData )
delete

◆ CpuSchedData() [3/3]

CpuSchedData::CpuSchedData ( CpuSchedData &&  )
delete

◆ ~CpuSchedData()

CpuSchedData::~CpuSchedData ( )
default

Member Function Documentation

◆ operator=() [1/2]

auto CpuSchedData::operator= ( const CpuSchedData ) -> CpuSchedData &=delete
delete

◆ operator=() [2/2]

auto CpuSchedData::operator= ( CpuSchedData &&  ) -> CpuSchedData &=delete
delete

Member Data Documentation

◆ blocked_tasks

阻塞队列 (按资源 ID 分组)

Definition at line 54 of file task_manager.hpp.

◆ idle_time

uint64_t CpuSchedData::idle_time {0}

本核心的空闲时间 (单位: ticks)

Definition at line 60 of file task_manager.hpp.

60{0};

◆ local_tick

uint64_t CpuSchedData::local_tick {0}

Per-CPU tick 计数 (每个核心独立计时)

Definition at line 57 of file task_manager.hpp.

57{0};

◆ lock

SpinLock CpuSchedData::lock {"sched_lock"}

Definition at line 34 of file task_manager.hpp.

34{"sched_lock"};

◆ scheduler_started

bool CpuSchedData::scheduler_started {false}

Schedule() 是否已被显式调用

Definition at line 66 of file task_manager.hpp.

66{false};

◆ schedulers

std::array<etl::unique_ptr<SchedulerBase>, static_cast<uint8_t>(SchedPolicy::kPolicyCount)> CpuSchedData::schedulers {}

调度器数组 (按策略索引)

Definition at line 39 of file task_manager.hpp.

39{};

◆ sleeping_tasks

睡眠队列 (优先队列,按唤醒时间排序)

Definition at line 46 of file task_manager.hpp.

◆ total_schedules

uint64_t CpuSchedData::total_schedules {0}

本核心的总调度次数

Definition at line 63 of file task_manager.hpp.

63{0};

The documentation for this struct was generated from the following file: