第六章运行时存储空间的组织和管理

第六章运行时存储空间的组织和管理

ID:5649135

大小:1.34 MB

页数:150页

时间:2017-12-21

第六章运行时存储空间的组织和管理_第1页
第六章运行时存储空间的组织和管理_第2页
第六章运行时存储空间的组织和管理_第3页
第六章运行时存储空间的组织和管理_第4页
第六章运行时存储空间的组织和管理_第5页
资源描述:

《第六章运行时存储空间的组织和管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章运行时存储空间的组织和管理术语过程的活动过程的一次执行称为过程的一次活动活动记录过程的活动需要可执行代码和存放所需信息的存储空间,后者称为活动记录本章内容讨论一个活动记录中的数据布局程序执行过程中,所有活动记录的组织方式第六章运行时存储空间的组织和管理影响存储分配策略的语言特征过程能否递归当控制从过程的活动返回时,局部变量的值是否要保留过程能否访问非局部变量过程调用的参数传递方式过程能否作为参数被传递过程能否作为结果值传递存储块能否在程序控制下动态地分配存储块是否必须显式地释放6.1局部存储分配6.1.1过程语言概念:过程定义、过程调用、形式参

2、数、实在参数、活动的生存期6.1局部存储分配6.1.2名字的作用域和绑定1、名字的作用域一个声明起作用的程序部分称为该声明的作用域即使一个名字在程序中只声明一次,该名字在程序运行时也可能表示不同的数据对象6.1局部存储分配2、环境和状态环境把名字映射到左值,而状态把左值映射到右值(即名字到值有两步映射)赋值改变状态,但不改变环境过程调用改变环境如果环境将名字x映射到存储单元s,则说x被绑定到s名字存储单元状态值环境6.1局部存储分配3、静态概念和动态概念的对应静态概念动态对应过程的定义过程的活动6.1局部存储分配3、静态概念和动态概念的对应静态概念动

3、态对应过程的定义过程的活动名字的声明名字的绑定6.1局部存储分配3、静态概念和动态概念的对应静态概念动态对应过程的定义过程的活动名字的声明名字的绑定声明的作用域绑定的生存期6.1局部存储分配6.1.3活动记录活动记录的常见布局临时数据参数局部数据机器状态访问链控制链返回值6.1局部存储分配6.1.4局部数据的布局字节是可编址内存的最小单位变量所需的存储空间可以根据其类型而静态确定一个过程所声明的局部变量,按这些变量声明时出现的次序,在局部数据域中依次分配空间局部数据的地址可以用相对于活动记录中某个位置的地址来表示数据对象的存储布局还有一个对齐问题6.

4、1局部存储分配例在SPARC/Solaris工作站上下面两个结构体的size分别是24和16,为什么不一样?typedefstruct_a{typedefstruct_b{charc1;charc1;longi;charc2;charc2;longi;doublef;doublef;}a;}b;对齐:char:1,long:4,double:86.1局部存储分配例在SPARC/Solaris工作站上下面两个结构体的size分别是24和16,为什么不一样?typedefstruct_a{typedefstruct_b{charc1;0charc1;0l

5、ongi;4charc2;1charc2;8longi;4doublef;16doublef;8}a;}b;对齐:char:1,long:4,double:86.1局部存储分配例在X86/Linux机器的结果和SPARC/Solaris工作站不一样,是20和16。typedefstruct_a{typedefstruct_b{charc1;0charc1;0longi;4charc2;1charc2;8longi;4doublef;12doublef;8}a;}b;对齐:char:1,long:4,double:46.1局部存储分配6.1.5程序块本

6、身含有局部变量声明的语句可以嵌套最接近的嵌套作用域规则并列程序块不会同时活跃并列程序块的变量可以重叠分配6.1局部存储分配main()/例/{/beginofB0/inta=0;intb=0;{/beginofB1/intb=1;{/beginofB2/inta=2;}/endofB2/{/beginofB3/intb=3;}/endofB3/}/endofB1/}/endofB0/6.1局部存储分配main()/例/{/beginofB0/inta=0;intb=0;{/beginofB1/intb=

7、1;{/beginofB2/inta=2;}/endofB2/{/beginofB3/intb=3;}/endofB3/}/endofB1/}/endofB0/声明作用域inta=0;B0B2intb=0;B0B1intb=1;B1B3inta=2;B2intb=3;B3a0b0b1a2,b3重叠分配存储单元6.2全局栈式存储分配本节介绍介绍程序运行时所需的各个活动记录在存储空间的分配策略描述过程的目标代码怎样访问绑定到局部名字的存储单元介绍三种分配策略静态分配策略栈式分配策略堆式分配策略6.2全局栈式存储分配6.2.1

8、运行时内存的划分代码静态数据堆栈6.2全局栈式存储分配1、静态分配名字在程序被编译时绑定到存储单元,不需要运

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。