如果我们谈论一个进程的地址空间(Address Space),那么它就是该特定进程所包含的静态数据、堆栈和堆内存的虚拟地址范围。接下来谈到进程控制块(Process Control Block,PCB),这是由操作系统维护的每个进程管理的数据结构,在 PCB 中包含了有关进程的许多信息,例如进程号、进程状态、程序计数器、打开文件列表、CPU 调度信息等等。
现在我感到困惑的是,地址空间也是一种存储有关进程信息的内存,而 PCB 也执行类似的操作。那么它们之间如何相互连接呢?我无法在脑海中形象地想象出来。为什么我们需要同时存在这两个东西?使用 PCB 就不能达到我们的目标吗?