流程控制块,Linux中的流程描述符和task_struct?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流程控制块,Linux中的流程描述符和task_struct?相关的知识,希望对你有一定的参考价值。

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

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

非常感谢您的帮助!

答案

这些术语(“过程控制块”或“过程描述符”)都不被认为是Linux内核开发中的“术语”。当然,没有官方的Linux内核词汇表,因此人们可以随意调用对他们​​有意义的东西。

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

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

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

以上是关于流程控制块,Linux中的流程描述符和task_struct?的主要内容,如果未能解决你的问题,请参考以下文章

linux块设备读写流程

代码块与流程控制语句

程序流程控制2 for循环

js 中的流程控制—while和do while

Js 流程控制

流程控制语句