【问题标题】:Process Control Block , Process Descriptor in Linux and task_struct?Linux中的进程控制块,进程描述符和task_struct?
【发布时间】:2018-05-29 16:32:56
【问题描述】:

我无法理解 Linux 中进程控制块和进程描述符之间的区别?

我已经看到这两种结构都称为task_struct,并且这些术语似乎可以互换使用 - 两者之间有什么区别?

非常感谢您的帮助!

【问题讨论】:

    标签: linux process linux-kernel


    【解决方案1】:

    这些术语(“进程控制块”或“进程描述符”)都不是 Linux 内核开发中的“艺术术语”。当然,没有官方的 Linux 内核词汇表,所以人们可以随意称呼他们认为有意义的东西。

    然而,task_struct 是一个特定的 C 结构,Linux 内核使用它来维护有关任务的状态。 Linux 中的一个任务大致对应一个线程。

    每个用户进程至少有一个线程,因此每个进程映射到一个或多个task_structs。更具体地说,进程是碰巧共享某些资源的一个或多个任务——文件描述符、地址空间/内存映射、信号处理、进程和进程组 ID 等。进程中的每个线程都有自己的特定版本其他资源:寄存器/执行上下文、调度参数等。

    一个进程只有一个线程是很常见的。在这种情况下,您可以考虑由单个 task_struct 表示一个进程。

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多