运行时的存储组织与分配.pptVIP

  • 1
  • 0
  • 约3.83千字
  • 约 20页
  • 2019-08-30 发布于湖北
  • 举报
第七章 运行时的存储组织与分配 编译程序必须为源程序中所出现的量(常量,变量及数组等等)分配运行时的存储空间. 分配方案选择的是否得当将关系到资源的合理使用,从而会影响到程序的运行效率. 存储分配的策略有静态分配与动态分配两类. 静态分配适合于无动态申请内存,无可变长数组,无递归调用的程序.如FORTRAN,BASIC等. 动态存储分配适用面广是目前最常用的分配方案 动态分配又有栈式分配与堆式分配两种. 7.1 存储组织 运行时内存的划分 运行时,系统为目标程序分配的存储空间按用途可划分为下面几个部分: 1.目标代码区: 存放目标程序; 2.静态数据区: 存放编译时可确定的占用存储空间大小的数据; 3.运行栈区: 运行时才能分配存储空间的数据区; 4.堆区: 用于用户动态申请存储空间 存储分配策略 目标代码的长度在编译时就可确定,可放在静态区内; 对于在编译时已知大小的数据对象(如常量,全局变量,静态变量等等), 也可放在静态区内; 为提高运行效率,应尽可能多地分配静态数据空间. FORTRAN,BASIC的分配一般可全部放在静态区内. 像PASCAL,C这类语言的实现,由于子程序允许递归地调用,因此应用一数据栈来动态地管理内存分配. 另外PASCAL和C还允许动态地申请的内存,这种数据的空间可由堆式分配实现. 7.1.2 活动记录 执行过程时所需进行的信息管理,是通过活动

文档评论(0)

1亿VIP精品文档

相关文档