Linux 系统中的进程表示
operating systemlinuxprogramming scripts更新于 2025/9/4 22:37:17
Linux 可以管理系统中的进程,每个进程都由一个 task_struct C 数据结构表示。它位于内核源代码目录下的 <linux/sched.h> 头文件中。任务向量是一个指向系统中每个 task_struct 数据结构的指针数组。除了普通类型的进程外,Linux 还支持实时进程。所有必需的信息,例如进程状态、调度和内存管理信息、打开文件列表、指向进程父进程及其子进程和兄弟进程列表的指针,都包含在该结构中。
创建进程的进程称为该创建进程的父进程;它的子进程是它创建的任何进程,而兄弟进程是具有相同父进程的子进程。
其中一些字段包括 −
long state; /*表示进程的状态 */ struct sched entity se; /*表示调度信息 */ struct task struct *parent; /*表示此进程的父进程 */ struct list head children; /*表示此进程的子进程 */ struct files struct *files; /*表示打开文件列表 */ struct mm struct *mm; /* 表示此进程的地址空间 */ struct task struct *p_opptr,*p_pptr,*p_cptr,*p_ysptr,*p_osptr /*表示,op = 原始父进程,p = 父进程,c = 最小子进程,ys = 最小兄弟进程,os = 较老的兄弟进程 */
在 Linux 内核中,所有活动进程都使用 task struct 的双向链表表示。内核维护一个指针 - current - 指向当前正在系统上执行的进程,如下所示 - minus;

例如,如果系统想要将当前正在运行的进程的状态更改为新状态。如果 current 是指向当前正在执行的进程的指针,则其状态将发生如下变化:current->state = new state;
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

