[发明专利]在分离的地址空间内执行的各实体之间的协调引用计数无效
申请号: | 200680016693.7 | 申请日: | 2006-05-16 |
公开(公告)号: | CN101632070A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | J·M·伯纳布-奥班;J·L·海文斯;Y·A·凯丽迪 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F15/16 | 分类号: | G06F15/16;G06F15/173;G06F3/00;G06F9/44;G06F9/46;G06F13/00;G06F15/00;G06F15/76 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈 斌 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分离 地址 空间 执行 实体 之间 协调 引用 计数 | ||
发明领域
本发明涉及计算机内各进程之间的通信,尤其涉及一种用于协调引用计数的机制。
发明背景
在(相同机器上运行或在不同机器上运行的)两进程A和B之间通信的一种标准方法是发送消息。例如,通常期望能够允许进程A向进程B发送消息以要求进程B代表进程A执行代码。典型地,进程A为实现上述目的必须知晓用于进程B的端口或联系点。
能够允许进程A呼叫进程B的一种方法是经由远程过程调用(RPC)。远程过程调用允许在一个计算机上的进程引发代码在相同或不同计算机上的另一进程内执行,而无需由开发人员或程序员写入的显式代码执行该具体调用。RPC通过调用者进程(客户机)向远程系统或第二进程(服务器)发送一请求消息以使用所供应的自变量值执行某一过程来启动。结果消息被返回给调用者。例如,在一远程过程调用中,函数调用可由进程A做出,而在其中指定了进程B代表进程A执行的该过程的名称以及用于该过程的一参数集合。进程B执行代码并将一消息返回给进程A。在所述代码是使用面向对象的编程原则写出的情况下,RPC有时被称为远程调用或远程方法调用。
远程过程调用通常遵守一具体协议(另一种说法是“它使用一具体接口”)以使得潜在不相关的各进程能够通信。上述协议或接口限定了各进程达成一致用以协作的各方法和值。
将函数调用转换成消息的过程被称为编集(marshalling)。编集可以包括聚集来自一个或多个应用程序或者计算机存储装置内各非邻接源的数据,把各数据片段放入消息缓冲器,并且将上述数据组织成或转化成为某一具体接收器或编程接口所规定的格式。编集通常将在进程A中看成是函数调用的代码转化成消息发送给进程B。该消息通常包括以进程B能够理解的方式编码的函数名和一参数集合。进程B接收该消息并且必须把该消息转化成对进程B的内部函数的调用。这一将消息转化成函数调用的进程被称为非编集(unmarshalling)。在进程A中执行编集的代码片段被称为代理(proxy)并且通常驻留在客户机进程内。在服务器侧上执行非编集的相应的代码片段被称为承接程序(stub)。
在面向对象的编程的上下文中,进程A和进程B可以被看作是对象封装的数据和函数。采取此种方法的一些周知技术是Sun Microsystem的JAVA以及Microsoft的COM和DCOM。也就是说,进程B可以被看作是一个或多个对象的容器,而这些对象的方法是由进程A调用的函数。因此在面向对象的系统中,进程A调用进程B的某一对象的一种方法来代替对进程B内一函数的调用。为此,进程A必须能够在进程B内识别进程A期望调用的对象。
存储在进程A内的能让进程A识别进程B的这一对象的数据被称为对此对象的引用。该引用存储了与如何定位此对象有关的信息:也就是说,该引用必须足以识别此进程并且足以在该进程内识别其方法要被调用的对象。
对一进程来说知晓何时不再存在对一资源的引用通常是有用的。这对遵守用于无用单元收集的协议(例如,从而能够回收用于存储与所共享的资源相关联的信息的存储器资源)、或者遵守用于信令目的协议(例如,从而能够确定该第二进程的执行状况)、或者遵守出于各种其他原因的协议而言是被要求的。引用计数是一种用于存储对诸如一对象或存储器块之类的资源的多个引用、指针或句柄的技术。使用简单的引用计数,只要一引用被破坏或覆盖,引用该资源的引用计数就减1,而只要一引用被创建或复制,引用该资源的引用计数就加1。当对一资源的引用数变为零时,该资源就被认为是不可访问,并且通常已损坏。某些引用计数方法要求共享该引用的进程以及接收该引用的进程积极地涉及引用计数并且彼此协调。与此方法相关联的一个问题是它只有在两进程完美运行时才能起作用:如果一进程失败或者无法成功完成,则该引用计数就会不正确。于是一种能够克服这些或其他引用计数问题的方法将会是有用的。
发明概述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680016693.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:景观水体水质净化系统
- 下一篇:带相干反馈的光学系统