定义 过程的活动 一个过程的活动 ◆是指该过程的一次执行 ◆每次执行一个过程体,产生该过程体的一个活动 一个活动的生存期 ◆是指从该过程体的第一步操作到最后一步操作之 间的操作序 ◆包括执行该过程时调用其它过程花费的时间 ■名字说明作用域 ◆一个说明在程序里能起作用的范围 2025/4/3 国6
2025/4/3 6 定义 过程的活动 ◼ 一个过程的活动 ◆是指该过程的一次执行 ◆每次执行一个过程体,产生该过程体的一个活动 ◼ 一个活动的生存期 ◆是指从该过程体的第一步操作到最后一步操作之 间的操作序 ◆包括执行该过程时调用其它过程花费的时间 ◼ 名字说明作用域 ◆一个说明在程序里能起作用的范围
活动记录(Activation Record)p234 ■含义:存储管理过程活动所 需信息的一块连续的存储空间 目标代码区 临时单元 静态数据区 内情向量 活 栈区 动 局部变量 形武单元 运行栈区中的二二二二二二=二三 记 个栈单元 录 静态链 动态链 返回地址 ■ 作用:当调用过程时,将在栈顶 堆区 为过程此次活动分配活动记录 2025/4/3 国>
2025/4/3 7 活动记录(Activation Record) p234 临时单元 内情向量 局部变量 形式单元 静态链 动态链 返回地址 运行栈区中的 一个栈单元 目标代码区 静态数据区 栈 区 堆 区 ◼ 含义:存储管理过程活动所 需信息的一块连续的存储空间 活 动 记 录 ◼ 作用:当调用过程时,将在栈顶 为过程此次活动分配活动记录
活动记录结构与主要内容p234 T0P指向已用栈顶单元 T0P→ 临时单元 存放临时变量,用于表达式计算 内情向量 →存放局部数据(数组等) 局部变量 存放局部数据(局部变量) 3 形式单元 →1 保存实在参数的值或地址 2 静态链 用于存取非局部名(display表) 连接 保存调用者活动记录首地址(SP) 数据 1 动态链 SP 0 返回地址 → 目标代码中的返回地址 第一个形参 SP指向现行过程(即最 新进入工作的那个过程) 相对地址(相对数)=3 的活动记录在栈里的首地 栈中绝对地址=SP+3=3[SP] 址,用于访问局部数据 2025/4/3 章节目录国区
2025/4/3 8 活动记录结构与主要内容 p234 返回地址 动态链 静态链 形式单元 局部变量 内情向量 临时单元 存放临时变量,用于表达式计算 存放局部数据(数组等) 存放局部数据(局部变量) 保存实在参数的值或地址 用于存取非局部名(display表) 保存调用者活动记录首地址(SP) SP 目标代码中的返回地址 TOP TOP 指向已用栈顶单元 SP 指向现行过程(即最 新进入工作的那个过程) 的活动记录在栈里的首地 址,用于访问局部数据 连接 数据 0 1 2 3 第一个形参 相对地址(相对数)=3 栈中绝对地址=SP+3=3[SP] 章节目录
10.2.1简单栈式存储分配p234 ■用途 ◆过程的局部环境 ◆(活动记录) ■对语言的限制 ◆没有分程序结构 ◆过程定义不许嵌套 ◆允许过程的递归调用 ■适用语言 ◆C语言 2025/4/3 ☒g
2025/4/3 9 10.2.1 简单栈式存储分配 p234 ◼ 用途 ◆过程的局部环境 ◆(活动记录) ◼ 对语言的限制 ◆没有分程序结构 ◆过程定义不许嵌套 ◆允许过程的递归调用 ◼ 适用语言 ◆C语言