分布式处理系统中的进程间通信技术方案

技术编号:2878963 阅读:231 留言:0更新日期:2012-04-11 18:40
在由两个或者多个互联的CPUs或者计算机构成的分布式处理系统中,每个CPUs或者计算机具有一个操作系统,其中,在一个用于工作量分配的静态方式下,不同的进程用于特定的CPUs,一个新的虚拟链接处理器(VLH)包括映象进程并且驱动适配器可以使进程在一个CPU或者计算机内驻留并运行,从而实现该进程与驻留并运行在其它CPU或者计算机内的进程之间的信号交换。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机系统,该系统包括两个或者多个处理单元(CPU),尤其是该系统中的内部进程通信,其中通过静态方式向可以独立操作的不同的CPUs分配不同的进程以及该系统中用于这样的内部进程通信的不包括公知的传统网络性能的操作系统(OS)来实现工作量共享。技术问题在计算机系统中,需要满足效率和速度的需求,由于一个标准计算机系统的单一CPU每次仅仅能够实现一条信号指令。对于这个问题,通常的解决方法是采用包括两个或者多个现行的CPUs(或者计算机)增加计算机系统的容量。对于不止一个CPU的上述系统,多项任务,典型的是,作为进程给每个CPU分配唯一的符号处理标识符(PID),该标识符包括由CPUs操作的计算机进程,可以被分布在CPUs中用于共享工作量并且允许在同一时刻可以执行不止一个指令。典型地,在多数系统中,为了不同的目的,例如信息交换或者信号接收和发送,需要进行通信,并且当不同的进程被存储在不同的CPUs时,这样的系统还必须包括一些装置,通过这些装置,不同的进程之间可以相互交流而不需要限制内部进程通信就可以处理同一CPU的分配。可以发现,在这样的系统中OS或者任何中断例程也可以发送信号,但是只有进程可以接收信号。当这些系统的CPUs或者计算机独立操作并且它们的OS不包括用于在不同的CPUs或者计算机之间用于系统内“透明”内部进程信号交换的网络能力,需要提供用于在不同的CPUs或者计算机进程之间完成内部进程通信的其它方法。现有技术以及相关的问题为了给内部进程通信提供方便,在上述提到类型的多处理器或者多个计算机系统中提到过的解决方法是公知的。其中一些解决方法建议使用普通存储器进行这样的通信,而其它的方法则建议在该系统的处理器之间附加其它类型的连接。美国专利US5062040揭露了一种用于确保信号不丢失而不对复制信号进行处理的多处理装置,并且多处理系统被“透明”的用于现有进程中。一个信号处理码片(signal-handling code fragment)总是在本地处理器中运行从而扩展处理的用户部分。用户核心进程必须发送当前信号结果(也就是,一个信号是否已经被接收到了,而没有被忽略)到一个含有占位包的占位进程,以及任意修改信号结果必须被发送到一个有效的占位进程中,如果任意非忽略信号在占位进程响应之前随后被用户进程接收。则种情况被定义为伪信号状态。每个核心进程用于维护一个表格链接目录,该表格包括前向发送信号,并且一个系统进程运行在基本水平,可以从列表中删除信号并且通过连接到每个处理器的通信信道前向发送到正确的目的地。专利技术目的因此,本专利技术的一个目的是通过一个分布式处理的多处理系统提供一种用于内部进程通信的方案,该方案可以维护处理器和OS的独立并且其中OS一般不需要控制元件或者信息。专利技术简述本专利技术的上述目的是通过提供一个新的虚拟链接处理器(VLH)实现的,该处理器包括用于系统内的现行处理通信的映象进程(shadow process,SP)以及用于CPUs之间通信的驱动适配器(DA)。在本专利技术的一个方案中,因为需要与其它系统的CPUs或者计算机驻留进程进行通信,CPUs或者计算机的现行驻留处理的符号PIDs也被定义在其它的通信CPUs或者计算机中。因此,一个CPU或者计算机的驻留SP的符号PID与别的CPU或者计算机的驻留SP的符号PID相同。从而,一个特定CPU的驻留进程将被保存在CPU中,其中该进程驻留查找一个与“远程”目标进程的符号PID具有相同符号PID的“本地”SP,该驻留进程由它的PID所定义并且可以传送一个信号到具有另一个PID的“远程”CPU的“远程”驻留目标进程。为了信号交换,本地SP到一个本地通信现行进程的接口与连接现行“远程’’目标进程的接口相同。本地“SP”,然而,实际并没有对该信号起作用,但是却服务于到另一个CPU前向接收信号的操作,“远程”目标进程被分配给该CPU并且对它进行操作。在接收端CPU,通过一个类似的SP接收信号消息,该接收方法轮流将信号转发到现行目标进程。因此,本专利技术所述系统的CPUs或者计算机之间的信号传送无需具有任何关于VLH存在信息的现行进程就很容易通过新的VLH装置实现。从上述内容可以直接看出,该SP可以用于从一个进程接收一个信号并将该信号转发到另一个CPU或者计算机,也可以向一个进程发送一个信号并且该信号曾经从另一个CPU或者计算机转发。为了在CPUs之间实现信号传送,每个CPU的映象进程都具有到驱动适配器的接口,该驱动适配器轮流具有到驱动器的接口用于发送装置,该发送装置用于提供从一个CPU或者计算机到另一个之间传送信息的系统信道。附图简述附图说明图1是一个包括两个CPUs或者计算机的系统的问题概况的示意图,每个CPUs或者计算机包括一个需要相互通信的不同驻留进程。图2是本专利技术用于解决图1所示问题的一个VLH解决方案范例示意图。图3是本专利技术的DA进程的一个实施例的示意图。图4是本专利技术的驱动适配器的一个过程的实施例的示意图。图5是本专利技术的驱动适配器另一个过程的实施例的示意图。图6是本专利技术的映象进程的是实例的示意图。图7是本专利技术含有VLH解决方案的系统范例的示意图。图8表示图7中所示系统范例的现行进程的PIDs之间关系,各个处理器的PIDs映象进程以及它们各自的位置。图9a-c表示图7中所示系统范例的查询表格的发展。图10表示在图7所示系统的一个方向传送一个信号。图11表示在图7所示系统的另一个方向传送一个信号。实施例的详细说明如下所述,通过实施例以及相关的附图,将对本专利技术作更详细的介绍。图1表示一个具有两个处理器并且进程P1和P2在处理器A和B中驻留和运行的系统的典型问题情况,分别地,其中进程之间希望可以进行通信。每个处理器的操作系统(OS)可以对同一个处理器内驻留和运行的进程进行相互通信,但是不能给驻留和运行在不同处理器中的进程之间提供通信。因此,图1所示的典型情况,虽然处理器通过物理连接进行信号传送,但是进程P1和P2却不能相互通信。图2表示一个类似图1所示情况的示意图,但是现在提供了两个新的P1’和P2’,本专利技术的驱动适配器,可以使进程之间进行信号传递。在本专利技术系统中已经实现并且其中利用了处理器的不同类型,系统设计者必须考虑多种处理器的格式,例如字节排序和填充。参见图3,本专利技术所示的一个DA进程实现范例的符号表达如图所示。在开始并且初始化之后,进程位于空闲等待(idle)状态直到出现一个信号事件。在信号事件时刻,如果信号来自一个驱动器,那么进程通过下述分支标记(1)表示,或者,如果信号将要被发送到一个驱动器,那么进程通过分支标记(2)表示。参见图4,本专利技术所示的一个DA实现的过程范例的符号表达如图所示。该过程用于发送一个信号到DA。参见图5,本专利技术所示的一个DA实现的过程范例的符号表达如图所示。该过程用于根据信号的初始进程从DA发送一个信号到SP。该过程的映象进程PID(SPID)取决于参数发送端并且利用GetPID()函数转换到本地PID。SHADOW SIGNAL可以是唯一的信号ID,仅仅用于从DA发送到任意SP。参见图6,本专利技术所示的一个(一般)SP执行中的符号表达如图所示。在开始并且初始化之后,进程位于空闲等待状态直到出现一个信号事件。在本文档来自技高网...

【技术保护点】
在含有两个或多个CPUs或者计算机的系统中,用于内部处理器(CPU)或者内部计算机进程信号交换的一种方法,其中CPUs或者计算机包括独立的操作系统(OS),内部CPU或者计算机通信驱动器以及在CPUs或者计算机之间的相关的内部连接驱动器,其特征在于一个虚拟连接处理器(VLH)包括至少一个用于每个现行进程的映象进程(SP),该进程可以与至少一个驻留在另一个CPU或者计算机中的现行进程进行通信,并且具有多个驱动适配器(DA),每个都可以与至少一个SP和/或驱动适配器(DA)进行通信。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:P约翰森PO克罗卡
申请(专利权)人:艾利森电话股份有限公司
类型:发明
国别省市:SE[瑞典]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1