3.进程控制块PCB

2019-07-14 08:06发布

  前面说过,Linux操作系统会为每个进程分配一段虚拟地址空间,而在内核区中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。
其内部成员很多,重点掌握一下部分即可:1.进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。
2.进程的状态,有就绪、运行、挂起、停止等状态。
3.进程切换时需要保存的恢复的一些CPU寄存器,用于保存进程的状态,以便下次继续处理进程。
4.描述虚拟地址空间的信息。
5.描述控制终端的信息。
6.当前工作目录(Current Working Directory)。
7.描述控制终端的信息。
8.umask掩码。
9.文件描述符表,包含很多指向file结构体的指针。
10.和信号相关的信息。
11.用户id和组id。
12.会话和进程组。
13.进程可以使用的资源上限。