地址Space(进程的)和进程控制块(PCB)在操作系统中有什么关系?
How is the Address Space (of a process) and Process Control Block (PCB) are related in Operating System?
如果我们谈论进程的地址Space,它是虚拟地址范围,其中包括该特定进程的静态数据、堆栈和堆内存。然后来到 Process Control Block (PCB),它是由操作系统为它管理的每个进程维护的数据结构,其中 PCB 包含很多关于进程的信息,比如进程号、进程状态、程序计数器、打开文件列表、cpu 调度信息...等等。
现在这就是我感到困惑的地方,地址 Space 也是一个存储有关进程信息的内存,PCB 也可以完成类似的事情。那么这些是如何相互联系的。我无法在脑海中想象这一点。为什么我们同时存在这两个东西。 光是用PCB不就可以达到我们的目的吗?
进程地址space指的是进程正在使用的内存区域。它通常由堆、栈、初始化数据、未初始化数据和文本组成。一个进程主要有两个地址space——逻辑地址和物理地址。
PCB 是一个驻留在内核中的结构,用于跟踪进程的状态。 PCB 包含的内容之一是内存信息。在典型的系统中,PCB 可能包含有关进程拥有的页面的信息。
要回答您的问题,Process Address space 是建立在 PCB 和许多其他东西(例如页面 table)之上的想法。
如果我们谈论进程的地址Space,它是虚拟地址范围,其中包括该特定进程的静态数据、堆栈和堆内存。然后来到 Process Control Block (PCB),它是由操作系统为它管理的每个进程维护的数据结构,其中 PCB 包含很多关于进程的信息,比如进程号、进程状态、程序计数器、打开文件列表、cpu 调度信息...等等。
现在这就是我感到困惑的地方,地址 Space 也是一个存储有关进程信息的内存,PCB 也可以完成类似的事情。那么这些是如何相互联系的。我无法在脑海中想象这一点。为什么我们同时存在这两个东西。 光是用PCB不就可以达到我们的目的吗?
进程地址space指的是进程正在使用的内存区域。它通常由堆、栈、初始化数据、未初始化数据和文本组成。一个进程主要有两个地址space——逻辑地址和物理地址。 PCB 是一个驻留在内核中的结构,用于跟踪进程的状态。 PCB 包含的内容之一是内存信息。在典型的系统中,PCB 可能包含有关进程拥有的页面的信息。 要回答您的问题,Process Address space 是建立在 PCB 和许多其他东西(例如页面 table)之上的想法。