操作系统中进程的地址空间和进程控制块(PCB)之间有什么关系?

3

如果我们谈论一个进程的地址空间(Address Space),那么它就是该特定进程所包含的静态数据、堆栈和堆内存的虚拟地址范围。接下来谈到进程控制块(Process Control Block,PCB),这是由操作系统维护的每个进程管理的数据结构,在 PCB 中包含了有关进程的许多信息,例如进程号、进程状态、程序计数器、打开文件列表、CPU 调度信息等等。

现在我感到困惑的是,地址空间也是一种存储有关进程信息的内存,而 PCB 也执行类似的操作。那么它们之间如何相互连接呢?我无法在脑海中形象地想象出来。为什么我们需要同时存在这两个东西?使用 PCB 就不能达到我们的目标吗?

1个回答

2

进程地址空间是指进程正在使用的内存区域。通常包括堆、栈、初始化数据、未初始化数据和文本。一个进程有两个主要的地址空间,逻辑地址空间和物理地址空间。 PCB是一种在内核中用于跟踪进程状态的结构。其中之一是包含内存信息。在一个典型的系统中,PCB可能包含进程所拥有页面的信息。 回答你的问题,进程地址空间是建立在PCB和许多其他内容(如页表)之上的概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接