1 / 72
文档名称:

ch07运行环境.ppt

格式:ppt   大小:1,726KB   页数:72页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ch07运行环境.ppt

上传人:可爱的嘎GD 2025/4/18 文件大小:1.69 MB

下载得到文件列表

ch07运行环境.ppt

相关文档

文档介绍

文档介绍:该【ch07运行环境 】是由【可爱的嘎GD】上传分享,文档一共【72】页,该文档可以免费在线阅读,需要了解更多关于【ch07运行环境 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。ch07--运行环境
2025/4/18
ch07运行环境
2
运行环境
程序运行时刻的环境,即运行中程序的信息是怎样存储和访问的。
执行过程中,程序中数据的存取是通过对应的存储单元来进行的。
存储组织与管理
早期的计算机上,存储管理工作是由程序员自己来完成
有了高级语言之后,程序中使用的存储单元都由标识符来表示,它们对应的内存地址由编译程序在编译时或由其生成的目标程序在运行时进行分配。
存储的组织及管理是编译程序要完成的一个复杂而又十分重要的工作。
ch07运行环境
3
运行环境
程序运行时的存储组织
存储分配策略
访问非局部名字
参数传递机制
小 结
ch07运行环境
4
程序运行时的存储组织
概念:过程与活动
一、程序运行空间的划分
二、控制栈与活动记录
三、作用域及名字绑定
ch07运行环境
5
概念:过程与活动
过程的定义
一个声明语句
把一个标识符和一个语句联系起来
标识符是过程名,语句是过程体。
过程的分类
过程:没有返回值的过程
函数:有返回值的过程
也可以把函数、一个完整的程序看作过程
过程引用:过程名出现在一个可执行语句中
参数:
形参、实参
ch07运行环境
6
活动
活动
一个过程的每次执行称为它的一次活动
如果一个过程在执行中,则称它的这次活动是活着的
过程与活动
过程是一个静态概念,活动是一个动态概念
过程与活动之间可以是1:1、1:m的关系
递归过程,同一时刻可能有若干个活动是活着的
每个活动都有自己独立的存储空间/数据空间
P
P
P
P有3个活着的活动
P有2个活着的活动
P有1个活着的活动
ch07运行环境
7
活动的生存期
程序执行时,过程之间的控制流
是连续的
过程的每一次执行都是从过程体的起点开始,最后控制返回到直接跟随本次调用点的位置。
活动的生存期
过程体的执行中,第一步和最后一步之间的一系列步骤的执行时间
过程P的一次活动的生存期,包括执行过程P所调用的过程的时间,以及这些过程所调用的过程的时间
如果a和b是过程的活动,那么它们的生存期要么是不重叠,要么是嵌套的。
递归过程:
如果一个过程,它的不同活动的生存期可以嵌套,则这个过程是递归的
直接递归、间接递归
a
b
a
b
a
b
ch07运行环境
8
一、程序运行空间的划分
编译程序在编译源程序时,向操作系统申请一块内存区域,以便被编译程序在其中运行
代码区/
保存目标代码
静态数据区
控制栈

编译时可以确定代码段的长度,
可以放在一个静态确定的区域内
编译时可确定大小的数据对象,放在静态确
定的区域内,目标地址可以编入目标代码中
用于管理过程的活动、
保存断点的现场信息,用于返回时的恢复
程序控制下进行的动态存储分配,
分配在堆中,如Pascal中new函数
???
ch07运行环境
9
二、控制栈与活动记录
控制栈:用于保存控制信息的栈。
程序执行过程中使用控制栈来保存活动的生存踪迹及活动的运行环境。
活动记录:一个连续的存储块
记录过程在一次执行中所需要的信息
通常,活动记录分配在控制栈中(像Pascal、C)
当一个过程被调用时,被调用过程的一次新的活动被激活,在栈顶为该活动创建一个新的活动记录来保存其环境信息;
当活动结束,控制从被调用过程返回时,释放该活动记录,使调用过程的活动记录成为栈顶活动记录,即恢复调用过程的执行环境。
ch07运行环境
10
活动记录的内容
返回值
实参区域
控制链
访问链
机器状态域
局部数据区
临时数据区
存放中间计算结果
在本次活动中,为过程中定义的局部变量
分配的存储空间
保存断点的现场信息,寄存器、PSW等
指向直接外围过程的最近一次活动的活动
记录的指针,用于对非局部名字的访问
指向调用过程的活动记录的指针,
用于本活动结束时的恢复
调用过程提供给本活动的实参值
本活动返回给调用过程的值
根据确定每个域所需空间大小的时间早晚安排其位置。
(1) 早:中间 晚:两头 (2) 用于通信:前面 自己用的:后面
ch07运行环境