- 20
- 0
- 约6.9千字
- 约 52页
- 2017-06-07 发布于湖北
- 举报
第九章 程序运行期间的存储空间组织 本节内容与要点 运行时存储空间的划分 活动记录概念 存储空间分配策略 1、静态存储分配 2、动态存储分配 简单栈式存储分配 嵌套过程语言的栈式分配 典型范例解析 运行时存储空间的划分 编译程序为了使它编译后得到的目标程序能够运行,要从操作系统中获得一块存储空间。 对这块提供运行的空间应该进行划分以便存放:生成的目标代码、数据对象和跟踪过程活动的控制栈。目标代码的大小在编译时可以确定,所以编译程序可以把它放在一个静态确定的区域。 有一些数据对象的大小在编译时也能确定,因此它们也可以放在静态确定的区域。 运行时存储空间的划分(续) 活动记录 为了管理过程在一次执行中所需要的信息,使用一个连续的存储块,这样的一个连续存储块称为活动记录(Activation Record)。 当过程调用时,产生一个过程的新的活动,用一个活动记录表示该活动的相关信息,并将其压入栈。 活动记录结构图 存储分配策略 静态分配策略在编译时对所有数据对象分配固定的存储单元,且在运行时始终保持不变。 栈式动态分配策略在运行时把存储器作为一个栈进行管理,运行时,每当调用一个过程,它所需要的存储空间就动态地分配于栈顶,一旦退出,它所占空间就予以释放。 堆式动态分配策略在运行时把存储器组织成堆结构,以便用户关于存储空间的申请与归还(回收),凡申请者从堆中分给一块,凡释放者退回给堆。 一、静态分配策略 适用范围和特点: 1、程序语言不允许递归过程; 2、不许含可变体积的数据项目或待定性质的名字; 3、在编译时就能够确定一个程序在运行时所需的存贮空间大小,能够安排好目标程序运行的全部数据空间,并能确定每个数据项的单元地址。 例:一个程序段的局部数据区 二、动态分配策略 适用:程序语言允许递归过程和可变(体积的)数组,其程序数据空间的分配需采用某种动态策略(在程序运行时动态地进行分配)。 栈式动态分配策略:目标程序可用一个栈作为动态的数据空间。运行时,每当进入一个过程或分程序,它所需的数据空间就动态地分配于栈顶,一旦退出,它所占用的空间就予以释放。 堆式动态分配策略:如果程序语言允许用户动态地申请和释放存贮空间,而且申请和释放之间不一定遵守先请后放和后请先放的原则,此时就必须让运行程序持有一个大存贮区(称为堆),凡申请者从堆中分给一块,凡释放者退还给堆。 简单的栈式存贮分配 适用于简单程序语言的实现:语言没有分程序结构,过程定义不允许嵌套,但允许过程的递归调用,允许过程含有可变数组。 C语言就是这样一种语言。其局部名称的存储分配,可以直接采用栈式存储分配策略。 1、栈式存储分配 使用栈式存储分配法意味着把存储组成一个栈。 运行时,每当进入一个过程(一个新的活动开始)时,就把它的活动记录压入栈,从而形成过程工作时的数据区,一个过程的活动记录的体积在编译时是可静态确定的。 当该活动结束(过程退出)时,再把它的活动记录弹出栈,这样,它在栈顶上的数据区也随即不复存在。 C语言的程序结构 全局数据说明 Main ( ) { Main中的数据说明 } void R ( ) { R中的数据说明 } void R ( ) { R中的数据说明 } C语言程序的存储组织 2、C的活动记录 C的活动记录有以下四个项目。 1、连接数据(两项): (1)老SP值,即前一活动记录的起始地址; (2)返回地址。 2、参数个数。 3、形式单元(存放实在参数的值或地址)。 4、过程的局部变量、数组内情向量和临时工作单元。 C过程的活动记录 3.、 过程的执行 分为三步: (1) 过程调用 (2)过程进入 (3)过程返回 (1) 过程调用---par相应的目标代码 过程调用的四元式序列为: par T1 par T2 … par Tn call p , n 每个par Ti (i=1,2,…,n)可直接翻译成如下指令: (i+3) [TOP]: =Ti /*传递参数值*/ 或 (i+3) [TOP]: =addr[Ti] /*传递参数地址*/ (1) 过程调用---call相应的目标代码 四元式 call p,n 翻译成: 1 [TOP]: =SP /*保护现行SP*/ 3[TOP]: =n /*传递参数个数*/ JSR P /*转子指令,转向P过程的第一条指令*/
您可能关注的文档
- 办公区域标识样本-副本.ppt
- 办公软件操作知识-副本.doc
- 办公软件简称-副本.doc
- 办公软件如何使用-副本.doc
- 第九篇 物流信息管理.ppt
- 第九篇:面向对象方法学引论.ppt
- 办公软件使用技巧-副本.pdf
- 第九篇查找3哈希表.ppt
- 第九篇-用户自定义数据类型.ppt
- 办公软件文档-副本.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
- 施工质量日志-.xls VIP
- 2025年国家公务员全国总工会面试题及答案.docx VIP
- 合肥市普通高中六校联盟2025-2026学年高三第一次语文教学质量监测+答案.docx VIP
- 局部晚期食管癌患者新辅助免疫治疗与常规新辅助治疗的比较:系统评价和meta分析.pdf
- 2025以骑手为代表的新就业群体研究报告:职业技能与跑单时长对收入的共同作用.pdf VIP
- 年产一亿片别嘌呤醇的车间工艺设计.doc VIP
- 商务型(带电梯、地下室、效果图)三层别墅设计图.pdf VIP
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
原创力文档

文档评论(0)