1.什么是进程地址空间
下图就是进程地址空间概念图。
- 进程并不是一直占用所有的地址空间资源,地址空间是进程的活动范围 。
- 进程地址空间是虚拟地址空间,不是物理地址空间,在语言上打印出来的地址叫做虚拟地址,地址空间是对物理内存的一种虚拟化表示。虚拟空间最终以某种方法转化到物理内存上。(OS负责将虚拟地址转化为物理地址)
说明:
- 上面的图就足矣说名问题,同一个变量,地址相同,其实是虚拟地址相同,内容不同其实是被映射到了不同的物理地址。
每个进程都有一个进程的地址空间,系统中一定存在多个地址空间。
地址空间本质上就是一个数据结构struct。
struct mm_struct{
//...
}