文章目录
(1)由“进程”到进程
前面说过,在Linux中创建一个进程通常会包含以下操作
- 创建进程所需要的一系列数据结构(比如经典的
task_struct
,mm_struct,
也就是地址空间等) - 为它开辟物理内存,把代码和数据加载进物理内存
- 创建页表,负责映射
- ········
如果再创建一个进程,无非就是重复上面的操作而已,也就是说我们创建进程的时候就是从0到1创建了很多很多的东西。
如果有三个进程,那么这三个进程分别各自有自己的地址空间,如果让第二个和第三个进程同时指向第一个进程的地址空间,也就是说这三个进程享有同一份地址空间,如下
接着我们这份地址空间的代码区和数据段一分为三,让这三个进程分别访问代码区和数据段中的某一块
这样一来在进程1的地址