文章目录
- 五、进程
- 8. 进程地址空间
- 未完待续
五、进程
8. 进程地址空间
上图可能很多人都看过了,这里再来验证一下:
验证位置:
验证堆栈的生长方向:
在上面的空间布局图中,有一个疑问,画的空间是 内存 吗?
没什么问题,我们来改点东西:
内容不一样,地址却一样?这是怎么回事?所以说,这个地址绝对不是真正的地址,绝对不是 物理地址 。这个地址我们叫做 虚拟地址 。因此,上面的空间布局图并不是内存,而是 进程地址空间 。
每一个进程都会有一个进程地址空间。 进程地址空间被操作系统所管理,根据 先描述再组织 ,操作系统会将进程地址空间给描述成一个特定的数据结构的对象,从而将对进程地址空间的管理转变为对数据结构的增删改查。
由于进程地址空间并不是内存,所以不具有储存数据的能力,其地址都是虚拟的,所以我们需要一张 映射表 ,将进程地址空间的虚拟地址给转换成内存上的物理地址。而这张表就叫做 页表 。
页表也是被操作系统所描述的一种数据结构。
同一个变量,地址相同,其实是虚拟地址相同,内容不同其实是被映射到了不同的物理地址。