gpt4 book ai didi

c - 我无法理解 PID 的内核内部表示

转载 作者:太空狗 更新时间:2023-10-29 11:39:23 27 4
gpt4 key购买 nike

Linux内核使用struct pid表示内核空间的PID,C代码如下。

struct pid
{
atomic_t count;
/* lists of tasks that use this pid */
struct hlist_head tasks[PIDTYPE_MAX];
int level;
struct upid numbers[1];
};

我不太明白为什么成员任务可以表示“任务列表”。因为task_struct是task的内核内部表示,一个任务只使用一个task_struct。为什么多个任务可以共享一个“struct pid “?

最佳答案

因为不止一个任务可以是同一个过程的一部分。例如,考虑使用像 NPTL 这样的一对一线程库的多线程进程。它有一个单一的进程ID,是一个单一的进程,但由内核调度的多个实体组成。

关于c - 我无法理解 PID 的内核内部表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com