MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / AllocatePid

Method AllocatePid

src/task/task_manager.cpp:165–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

163}
164
165auto TaskManager::AllocatePid() -> size_t {
166 /// @note 当前 PID 分配器为简单的原子自增,存在以下限制:
167 /// 1. 不支持 PID 回收与重用(已退出的任务的 PID 不会被回收)
168 /// 2. 不检测溢出(size_t 耗尽后回绕为 0,可能与现有 PID 冲突)
169 /// 3. 不保证全局唯一性(依赖 size_t 足够大 + 系统生命周期内不会耗尽)
170 /// 对于教学内核而言,size_t 的范围(2^64)在实际使用中不会溢出。
171 /// 生产级实现应使用位图或 ID 分配器(如 Linux 的 IDR/IDA)。
172 return pid_allocator_.fetch_add(1);
173}
174
175auto TaskManager::FindTask(Pid pid) -> TaskControlBlock* {
176 LockGuard lock_guard{task_table_lock_};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected