允许通过通信设备在进程之间交换信息的方法

文档序号:6407914阅读:210来源:国知局
专利名称:允许通过通信设备在进程之间交换信息的方法
技术领域
本发明涉及允许通过通信设备在进程之间交换信息的方法。
例如由专利申请EP-A0492177和EP-A0164972可知,当与存储设备连接时,在适当配置下,控制设备能够处理进程之间的通信;这些设备能够与一个或多个处理机相连使用。尤其是,通过所提及的两个专利申请的第一个中所公开的设备,通过发送适当命令,一个RAM设备能够配置为一组独立存储块,每块根据选自FI-FO、LIFO、循环队列等的一种方式工作;通过另外的命令,数据能够引入到所述存储块或从所述存储块中抽取,而与其工作方式无关。尽管这样的设备在处理进程之间的通信时能有效地提高处理机性能,但是缺点在于仅能执行低级命令,一般严格相关于其内部硬件结构,并为所使用的特定设备特有。
这样的缺点实际上意味着要求为含有这种设备的硬件环境开发软件的程序员广泛地了解这种设备;如果这种软件用于多进程实时应用程序,则产生错误的可能性很高,因为也应考虑对这种设备的并行访问。
再者,这种软件难以修改。
本发明的目的在于克服这些缺点。
该目的通过允许通过通信设备在进程之间交换信息的方法得以实现。
假设,通过软件,更确切些通过系统软件(认为是固件更好)、能够执行高级命令(直接由硬件实现,因而相对于软件实现而言能提高执行速度)并用于每个进程的通信设备,上述缺陷受限于系统软件,因而极大地降低了其有害作用。
通过以下参照附图的说明,本发明将更加明显。


图1是根据本发明的硬件环境的框图;
图2是根据本发明的软件环境的概念图。
如前述,在多进程软件环境下,由一个或多个处理机形成的硬件环境下实现时,总是需要在各进程之间交换信息;这些可以划分为系统进程和用户进程;另一个可能的细分是根据执行时间要求进行的。
根据本发明的方法与这种情形有关,这种信息交换通过使用通信设备(图1中标以CD)进行,因而并非简单地通过各种处理机(图1中标以PROC-1,…,PROC-N)的系统软件。
以下尤其参照图2说明本方法。
允许通过通信设备CD在第一用户进程P1和第二用户进程P2之间交换信息的方法包括步骤a)当收到第一高级原语(直接由硬件实现,因而相对于软件实现能提高其执行速度)时,例如称为CREATE-LINK,激活一个系统链路进程,标以LINKER,它能够利用通信设备CD在用户进程P1和P2之间建立一条通信信道,以及b)当收到发送信息的第二高级原语时,例如称为SEND-MSG,和等待信息的第三高级原语时,例如称为WAIT-MSG(直接由硬件实现,因而对于软件实现能提高其执行速度),激活至少一个系统处理进程,图中标以CD-HAND,它能够通过在设备CD上所建立的信道将信息从一个用户进程传递到另一个用户进程。
例如,在单向信道情形下,CREATE-LINK原语至少可以设有以下参数P-MITT发送进程标识;
P-DCST被访地址进程标识;
LINK-TYPE数据交换方式(FIFO,LIFO,……);
CHAN-PTR数据交换所用的存储区标识,也可理解为所建信道的标识;这种标识当然是原语输出参数。
自然,该原语可设有一个输出参数,指明信道建立操作的结果。为建立双向信道,利用适当的参数发送两次这种原语就足够了。当用户进程需要特意建立双向信道时,可以在原语CREATE-LINK中再设一个参数,或设两个单独的原语,例如称为CREATE-LINK-SIMPLEX和CREATE-LINK-DUPLEX。
进程之前的通信的多种变型应得到考虑例如具有一个发送端和多个被访地址的通信信道。
在多处理机环境下执行这样的原语,需要确定发送进程和被访地址进程在哪些处理机上是活动的。为此,可能设想存在一个特定系统进程,它负责用户进程的建立和摧毁,并能在任何时刻知道它们的状态(这种系统进程可以称为管理进程,即负责系统的各种进程交替执行的进程);它可以具有一个原语,为LINKER进程提供所需信息。
SEND-MSG原语的参数可以至少为P-DEST被访地址进程(希望向其发送一条信息)的标识;
CHAN-PTR用于发送一条信息的信道的标识;
MSG-PTR含有待发信息的存储区的标识。
自然,该原语可以设有一个输出参数,指明发送操作的结果。
WAIT-MSG原语的参数可以至少为P-MITT发送信息的标识,从其可得到一条信息;
CHAN-PTR信道的标识,从其可得到一条信息;
MSG-PTR将要含有所得信息的存储区的标识。
自然,该最后一个原语也可以设有一个指明接收操作的结果的输出参数。
例如,最后两个原语可以对发送它们的进程进行暂停即发送SEND-MSG原语的进程在信息被有效发送之前不继续执行,或者发送WAIT-MSG原语的进程在信息被有效接收之前不继续进行。
为解决对设备CD的并行访问问题的一个可能的和有利的方式是设置进一步的步骤c)激活至少一个系统仲裁进程,称为RES-MAN,用于控制系统进程对设备CD的并行访问。
对设备CD的访问必须尽可能仅由系统进程执行,并最好仅由进程LINKER和CD-HAND,或较好地仅由CD-HAND执行。这可通过为进程RES-MAN设置两个原语实现,例如称为GET-CD和RELEASE-CD,利用它们任何需要访问设备CD的进程请求互斥访问,并在使用之后释放设备。另外,进程RES-MAN可以利用类似的原语对来处理所有系统资源的互斥访问每个资源一对。
进程P1和进程P2应该在两个不同的处理机上活动,步骤b)必须能够激活第一和第二处理进程CD-HAND,然后根据处理原语SEND-MSG的第一进程的接收和根据处理原语WAIT-MSG的第二进程的接收,进行信息传送。
显然,高级原语CREATE-LINK、SEND-MSG和WAIT-MSG是由用户进程发送的,同时重要的是,这些进程尽可能仅利用这种高级原语进行通信。
至此一直讨论进程LINKER和CD-HAND所能接收的高级原语,自然,它们也能接收低级原语;例如,进程LINKER可以从进程CD-HAND接收一条低级原语,以请求与设备CD的已建的特定信道有关的详细信息。
例如,在只有通过进程CD-HAND的中间来访问设备CD的情形下,进程CD-HAND能够从进程LINKER接收关于设备CD的初始化和测试、从设备CD读出或写入数据、从设备CD传送或接收信号的低级原语;因此,能够在其内部限定设备的所有特征,并能看到使用不同类型的通信设备不必修改系统的其他进程。
需要看到,所有这样的低级原语一般不由用户进程发送,使得与进程之间信息交换有关的特征需要更多限定。
显然,本发明的方法一般要以至少一个程序来实现,因而该方法的步骤包括以机器语言字符编码的指令序列,并记录在存储装置中。现在仍参照图2说明根据本发明的软件环境。
这种软件环境包括至少第一用户进程P1和第二用户进程P2,还包括a)一个系统链路进程LINKER,用于在收到高级原语CRE-ATE-LINK时在用户进程之间建立一个通信设备CD,以及b)至少一个系统处理进程CD-HAND,在收到高级发送信息原语SEND-MSG和高级等待信息原语WAIT-MSG时,能够通过通信设备CD将信息从一个用户进程传递到另一个用户进程。
自然,所有这样的进程是同时活动的,并且一般一个系统管理进程SP具有实现在同一处理机上这些进程交替执行的功能;此外,若不用管理进程SP,交替执行也可通过进程之间控制的直接传递机制来实现,但从简化编程的观点来看并非十分有效。
如果用户进程在两个不同的处理机上是活动的,则该环境包括第一和第二处理进程CD-HAND,用于在第一处理进程收到原语SEND-MSG和第二处理进程收到原语WAIT-MSG时,传送信息;自然,在每个处理机上可以激活管理进程,但这是明显的,因为每个处理机具有多进程软件环境。该环境可以包括c)系统仲裁进程RES-MAN,也是活动的,用于控制系统进程对通信设备CD进行的并行访问。
图2中以椭圆标出了各种进程;各椭圆之间以线路相互链接,线路代表进程之间根据下述原语的传送和接收的主要链路进程P1和P2向进程LINKER和CD-HAND发送和/或从其接收原语,进程LINKER和CD-HAND向进程RES-MAN发送或从其接收原语,以及相互之间发送和接收原语;另外,可以有与软件系统的所有进程相连的管理进程SP,以及与进程SP严格相关的两个进程RT和BL,后两个进程也可以没有,它们分别负责具有严格时间要求的进程以及没有时间要求的进程的执行控制。
仍参照图2,两列堆起来的矩形代表进程LINKER和CD-HAND的高级原语HLP和低级原语LLP。最后需要指出,上述软件环境代表为实现本发明的方法的全部最小环境。尤其是,当硬件环境是变化的时,进程LINKER、CD-HAND、RES-MAN、SP等的数量可以很多,它们之间的链路可以更复杂。
现参照图1简述根据本发明的硬件环境。
这样的环境包括至少一个处理机PROC-2和与所述处理机PROC-2连接的通信设备CD,并且它以这种方法编程,使得处理机PROC-2能够实现根据本发明的方法的各步。
图1中,示出更复杂的环境,包括多个处理机PROC-1、PROC-2、PROC-3、PROC-4、…、PROC-N以及与这些处理机连接的设备CD。这种连接可以是各种类型的,例如,与PROC-1的连接是串行的,与PROC-2的连接是并行的,而与其他处理机的连接是总线共享型的。
在图示的实施例中,设备CD是由与开始提及的专利申请中所述类型的控制设备QRC相连的随机存取存储器RAM的连接实现的。
自然,硬件环境,即至少各处理机必须以这样的方法编程,使得所有处理机能够实现根据本发明的方法的各步。
权利要求
1.允许通过通信设备(CD)在第一用户进程(P1)和第二用户进程(P2)之间交换信息的方法,包括步骤a)在收到直接由硬件实现的第一原语(CREATE-LINK)时,激活一个系统链路进程(LINKER),它能够在所述用户进程(P1,P2)之间在所述设备(CD)上建立一条通信信道,以及b)在收到直接由硬件实现的第二发送信息原语(SEND-MSG)和直接由硬件实现的第三等待信息原语(WAIT-MSG)时,激活至少一个系统处理进程(CD-HAND),它能够通过建立在所述设备(CD)上的所述信道,将信息从所述用户进程之一传递到另一用户进程。
2.根据权利要求1的方法,还包括步骤c)激活至少一个系统仲裁进程(RES-MAN),它能够控制所述系统进程对所述设备(CD)进行的并行访问。
3.根据权利要求1的方法,其中所述步骤b)能激活第一和第二处理进程(CD-HAND),其中这样的信息传送发生在所述第一处理进程收到所述第二原语并且所述第二处理进程收到所述第三原语时。
4.根据权利要求1的方法,其中所述原语由所述用户进程发送。
5.根据权利要求1的方法,其特征在于所述处理进程用于接收与所述设备的初始化和测试、从所述设备读取或向所述设备写数据、向所述设备发送或从所述设备接收信号有关的低级原语,其特征还在于所述低级原语一般不能由用户进程发送。
6.根据前述任一权利要求的方法,其特征在于所述步骤包括存储装置中所存储的机器语言编码的指令序列。
7.包括至少一个用户进程(P1)和第二用户进程(P2)这一类型的软件环境,其特征在于包括a)一个系统链路进程(LINKER),在收到第一原语(CRE-ATE-LINK)时,在所述用户进程之间,在通信设备(CD)上建立一条通信信道,以及b)至少一个系统处理进程(CD-HAND),在收到第二发送信息原语(SEND-MSG)并且收到第三等待信息原语(WAIT-MSG)时,能够通过所述通信设备(CD),将信息从所述用户进程之一传递到另一用户进程;其中所有所述进程是活动的。
8.根据权利要求7的软件环境,包括第一和第二处理进程(CD-HAND),在所述第一处理进程收到所述第二原语并且所述处理进程收到所述第三原语时,能够传送信息。
9.根据权利要求7的软件环境,还包括c)一个系统仲裁进程(RES-MAN),用于控制所述系统进程对所述通信设备(CD)的并行访问;其中所有所述进程是活动的。
10.硬件环境,包括至少一个处理机(PROC-2)和连接于所述处理机(PROC-2)的通信设备(CD),其特征在于它以这种方法编程,使得所述至少一个处理机(PROC-2)能够实现权利要求1所述的方法的各步。
11.根据权利要求10的硬件环境,包括多个处理机(PROC-1、…、PROC-N)和连接于所述处理机的通信设备(CD),其特征在于它以这种方法编程,使得所有所述处理机能够实现权利要求1所述的方法的各步。
全文摘要
本发明涉及允许通过通信设备在进程之间交换信息的方法。本方法允许虚拟化,从若干进程共享的通信设备开始,能够执行低级命令,通信设备能够执行高级命令并用于每个进程。
文档编号G06F9/46GK1098580SQ9410811
公开日1995年2月8日 申请日期1994年7月2日 优先权日1993年7月2日
发明者法比欧·布托, 尼克拉·克森兹 申请人:阿尔卡塔尔有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1