[发明专利]代码堆栈管理方法有效
申请号: | 201480051802.3 | 申请日: | 2014-09-28 |
公开(公告)号: | CN105556466B | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | M·K·克施温德 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/30;G06F9/4401 |
代理公司: | 中国贸促会专利商标事务所有限公司 11038 | 代理人: | 申发振 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 堆栈 管理 方法 | ||
实施例涉及代码栈管理。一个方面包括配置为执行软件应用的处理器。另一个方面包括代码栈存储器区域和数据栈存储器区域,代码栈存储器区域与数据栈存储器区域分离。另一个方面包括将数据栈保持在数据栈存储器区域中,数据栈包括多个栈帧,该多个栈帧包括与软件应用的执行相对应的一个或者多个数据变量。另一个方面包括将代码栈保持在代码栈存储器区域中,代码栈包括多个代码栈条目,该多个代码栈条目包括与软件应用的执行相对应的可执行计算机代码。
技术领域
本发明通常涉及计算机系统,并且更具体地涉及执行计算机程序期间的代码堆栈管理。
背景技术
计算机系统典型地包括计算机程序和硬件(诸如半导体、晶体管、芯片、电路板、存储设备和处理器)的组合。存储设备存储数据和由处理器执行的计算机程序。
计算机程序通常分成彼此调用的片段。片段典型地称为方法、函数、模块、部分、类、程序或者子例程。当第一方法(调用方)调用第二方法(被调用方)时,调用方的方法停止执行以及被调用方的方法获得处理器的控制并且开始执行。当被调用方的方法停止执行时,它将处理器的控制返回至调用方的方法,调用方的方法在调用被调用方的方法的调用指令之后的下一个指令处重新开始执行。
为了促进该调用和返回技术,计算机可以使用调用栈,也称为运行期栈、函数栈、执行栈、调用栈或者简称栈。调用栈包括每个主动方法的条目(也称为帧)。条目存储关于执行其相应方法的信息。信息可以包括方法的标识符、方法的返回地址(在被调用方的方法返回之后接着执行的调用方的方法中的指令位置)、由方法读取或者写入的局部变量的值、传递至方法的参数、用于算术运算或者逻辑运算的操作数的求值栈、指向方法当前实例的指针、封装方法上下文和/ 或方法的特权或者授权级别中的任何一个、一些或者全部。
调用栈使用后进先出(LIFO)原则,意思是添加(推入)至调用栈顶部的最后(或者最近)条目是从调用栈顶部移除(弹出)的第一(或者下一个)条目。例如,响应于第一方法调用第二方法,新条目被创建以保存第一方法的上下文以及容纳第二方法的局部变量并且被推至调用栈顶部。如果第二方法调用第三方法,则保存第二方法上下文以及容纳第二方法局部变量的新条目被推至调用栈上。一旦当前执行的方法结束,则其调用方的方法的条目从栈顶部弹出并且用于恢复调用方的方法的运行环境。由于许多方法可以彼此调用并且调用可以是嵌套或者甚至递归的,因此调用栈随着程序执行而增长和缩小。
在计算机程序中,嵌套函数(还称为嵌套程序或者嵌套子例程)是在词法上封装在另一个函数(称为当前函数)内的函数。在许多方法中,嵌套函数用于结构化编程。由于嵌套,嵌套函数的范围在嵌套函数的当前函数内。这意味着嵌套函数可以访问当前函数中从当前函数外部不可见的局部变量和其它局部函数以及局部常量和类型。尽管在实用程序中通常仅使用少数级别,但是理论上嵌套可以到任何级别的深度。在一些环境中,嵌套函数的代码动态地生成并且一直持续到从当前函数和其子例程退出。这种动态生成的代码的示例是蹦床函数和信号处理程序。操作系统可以将该动态生成的代码分配在调用栈上。
发明内容
实施例包括用于代码栈管理的方法、系统和计算机程序产品。一个方面包括配置为执行软件应用的处理器。另一个方面包括代码栈存储器区域和数据栈存储器区域,代码栈存储器区域与数据栈存储器区域分离。另一个方面包括将数据栈保持在数据栈存储器区域中,数据栈包括多个栈帧,该多个栈帧包括与软件应用的执行相对应的一个或者多个数据变量。另一个方面包括将代码栈保持在代码栈存储器区域中,代码栈包括多个代码栈条目,该多个代码栈条目包括与软件应用的执行相对应的可执行计算机代码。
附图说明
在说明书结论处的权利要求中特别指出了被看作实施例的主题并且对其明确地要求保护。通过与附图结合理解的下列详细说明,实施例的前述特性和其它特性以及优点是显而易见的。
图1描绘了根据实施例的用于代码栈管理的计算机系统;
图2A-2C描绘了数据栈和代码栈的实施例;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480051802.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种I/O任务处理的方法、设备和系统
- 下一篇:用于数字杂志的动态布局引擎