【问题标题】:How is the Address Space (of a process) and Process Control Block (PCB) are related in Operating System?(进程的)地址空间和进程控制块(PCB)在操作系统中是如何相关的?
【发布时间】:2019-04-11 18:11:42
【问题描述】:
如果我们谈论进程的地址空间,它是虚拟地址范围,包括该特定进程的静态数据、堆栈和堆内存。 进程控制块(PCB)是操作系统为其管理的每个进程维护的数据结构,其中PCB包含有关进程的大量信息,如进程号、进程状态、程序计数器、打开文件列表、cpu 调度信息……等等。
现在我感到困惑的是,地址空间也是一个存储有关进程信息的内存,类似的事情也是由 PCB 完成的。然后这些是如何相互连接的。我无法在脑海中想象这一点。为什么我们有这两个东西同时存在。 难道只用PCB就不能达到我们的目的吗?
【问题讨论】:
标签:
process
operating-system
virtual-address-space
【解决方案1】:
进程地址空间是指进程正在使用的内存区域。它通常由堆、堆栈、初始化数据、未初始化数据和文本组成。一个进程主要有两个地址空间——逻辑地址空间和物理地址空间。
PCB是驻留在内核中用于跟踪进程状态的结构。 PCB 包含的内容之一是内存信息。在典型的系统中,PCB 可能包含有关进程所具有的页面的信息。
为了回答您的问题,进程地址空间是建立在 PCB 和许多其他事物(例如页表)之上的一个想法。