Linux内核学习笔记 -17 物理内存分配与回收机制 - 上

当我们说一个进程在执行的时候,从操作系统的角度看,一个进程最关键的特征是它拥有独立的虚拟地址空间,创建并执行一个进程通常需要执行如下步骤:

第一步:建立可执行文件与虚拟地址空间的映射。当执行一个程序时,加载器读取的是可执行文件的头部,建立虚拟空间和可执行文件的映射,主要调用了do_mm_map()函数。同时虚拟地址空间所需的数据结构mm_struct结构和vm_area_struct结构也填充相应的值,如上图左边的虚拟内存部分

第二部分:将指令寄存器设置为可执行文件入口,并启动运行。

当我们说一个程序在装载的时候,是在说什么?在上述步骤之后,执行文件的指令和数据加载进内存,但是并没有真正的装入到物理内存,只是通过可执行文件的头部信息,建立起了可执行文件与虚拟地址空间的映射关系而已。而真正的加载过程将在发生缺页异常处理时才进行。

猜你喜欢

转载自blog.csdn.net/f2157120/article/details/107728918