[发明专利]用于验证运行时引用的方法有效
| 申请号: | 201180057874.5 | 申请日: | 2011-10-25 |
| 公开(公告)号: | CN103250136A | 公开(公告)日: | 2013-08-14 |
| 发明(设计)人: | A.赖特;P.R.李;P.A.德沃尔;E.A.艾迪森 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45 |
| 代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 黄小临 |
| 地址: | 美国纽*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 验证 运行 引用 方法 | ||
技术领域
本发明涉及应用编程的领域。具体地,本发明涉及用于验证运行时引用的方法和系统。
背景技术
诸如IBM的CICS事务处理系统的大型复杂系统包括成千上万个分立和独立的程序。每个程序包括源代码,并且,源代码提供特定类型的功能或服务。为了使用此功能,程序将向需要使用的程序、或在需要使用的程序中,进行“调用(call)”,调取(invoke)函数,针对其他类发送消息或调取方法(在面向对象的语言中)。
在特定类型的应用中,将程序分组为域。域是被设计为提供特定功能的程序集合,如存储管理或锁定。域类似于面向对象语言中的类。每个域提供允许其他类调取其服务的门。
为了使程序调用另一程序,程序包括对数据结构和参数列表的声明(引用),用来调取另一域内的门。典型地,在程序起始附近的部分内声明参数列表,其定义不同类型的参数、选项、响应和原因代码字段等等,其允许代码在运行时对其它域进行调用。这些声明包括参数列表存储区,其在对另一域进行调用之前在运行时建立,且在从域调用返回时填充,其具有来自程序内的调用的例程的各种响应和原因代码。
经常,程序被表述为“单线程的”,这意味着:在任一时刻,仅存在通过程序运行的单线程控制。这还意味着:在任意时间点,仅一组参数存储正被使用于处理对另一域的调取。
将不同的参数列表区声明为彼此重叠是通常的实践。在诸如PLX的编程语言中,例如,这通过将参数列表定义为数据结构的“联合”来实现,所有数据结构全被映射到程序的工作存储器内的同一开始点。“联合”被声明为所有参数列表区中的最大者的最大存储大小。此途径的优点在于,其简化了程序的工作存储器的映射,并减小了对于较大的程序堆栈区的需要。
分别声明每个域的参数列表区意味着:在程序运行时,每一个将被映射到计算机存储器的独立区域。这将导致较大的程序堆栈区、以及存储使用的增大。重叠参数列表区通过将存储器中的相同区域重用于每个参数列表,而避免了该不必要的额外存储需求。
重叠参数列表区是编程环境内的更佳存储使用的有效途径。然而,在使用重叠参数列表,且在源代码内不确保正确地管理它们的引用范围时,可能出现问题。
考虑程序调取对“域1”的调用的情况。程序在参数列表中建立参数,以在共享存储区中调取“域1”,并调用“域1”。当“域1”已满足其目的时,整个程序的控制流从“域1”返回到程序。在程序内嵌入逻辑,其可测试已在参数列表区内设置的、诸如来自“域1”的响应和原因代码的字段,且可基于调用的结果进行运行时判定。
然而,在测试来自调用的“域1”的结果之前,对于程序调取另一个调用(对“域2”)没有约束。程序建立用来在共享存储区中调取“域2”的参数。随后,程序调用“域2”。当程序的控制流从“域2”返回到程序时,现在,逻辑可如同之前一样测试参数列表区内的字段,并基于调用的结果来进行运行时判定。程序逻辑测试对“域2”的调用的结果,这是由于,现在,在共享存储区内保持所述结果。然而,在不同情形中,程序逻辑可能决定检查较早的对“域1”的调用的结果。然而,因为在存储器的参数列表区内不再保持此信息(这是因为,其已被“域2”的结果覆写),所以,程序逻辑正在测试为“域2”建立或由“域2”返回的参数内的字段,而不是“域1”。这可能在运行时导致逻辑错误,因为共享存储区不包含正确信息。
因此,在现有技术中,存在减轻上述问题的需要。
发明内容
从第一方面,本发明提供了一种用于识别在程序列表中声明的共享存储区的重叠数据结构的、冲突的所声明的无效运行时引用的方法,该方法包括以下步骤:响应于在程序列表中识别出参数列表的第一参数声明,识别第一运行时调用、以及所述第一运行时调用的通过所述程序列表的顺序执行流,以便将数据写入所述共享存储区;响应于在所述程序列表中识别出第二参数列表的第二参数声明,识别第二运行时调用、以及所述第二运行时调用的通过所述程序列表的顺序执行流,以便将数据写入所述共享存储区;当所述第一和第二运行时调用中的每个请求对域访问时分析所述第一和第二运行时调用的所识别的顺序执行流,并生成所述第一和第二运行时调用的元数据状态;以及分析所述元数据状态,以确定所述第一运行时调用的元数据状态是否与所述第二运行时调用的元数据状态冲突。
优选地,本发明提供一种方法,其中,所述域包括所述运行时调用需要访问的资源。
优选地,本发明提供一种方法,其中,分析元数据的步骤还包括:访问规则集,所述规则集确定所识别的执行流内运行时调用的重要性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180057874.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:全自动贴合口字胶的装置
- 下一篇:半主动减振器端盖固定装置





