运行a.out,OS做了什么

246 阅读1分钟

运行a.out,操作系统会在RAM中给程序分配一块内存,由低地址到高地址依次是 text段,初始化数据,未初始化数据,堆,栈,环境变量。

各部分 说明
text段 自然语言程序经过编译之后的内容,都是0和1组成
初始化数据 初始化的全局变量和静态变量
未初始化数据 未初始化的全局变量和静态变量
由系统分配,通过new 和malloc函数获得内存,由低向高地址存储
函数入参,函数内定义局部变量,函数调用结束后的返回地址都是在栈中存储,由高到低地址,函数A调用函数B,函数A的变量等数据存储在栈的某处,调用B,B的数据会在A之上,B调用完成,内存归还,继续执行A
环境变量 记录一些程序运行的环境变量之类