CN1074219C - 允许通过通信设备在进程之间交换信息的方法和装置 - Google Patents
允许通过通信设备在进程之间交换信息的方法和装置 Download PDFInfo
- Publication number
- CN1074219C CN1074219C CN94108113A CN94108113A CN1074219C CN 1074219 C CN1074219 C CN 1074219C CN 94108113 A CN94108113 A CN 94108113A CN 94108113 A CN94108113 A CN 94108113A CN 1074219 C CN1074219 C CN 1074219C
- Authority
- CN
- China
- Prior art keywords
- primitive
- consumer process
- equipment
- information
- wired
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Abstract
本发明涉及允许通过通信设备在进程之间交换信息的方法。本方法允许虚拟化,从若干进程共享的通信设备开始,能够执行低级命令,通信设备能够执行高级命令并用于每个进程。
Description
本发明涉及允许通过通信设备在进程之间交换信息的方法。
例如由专利申请EP-A0492177和EP-A0164972可知,当与存储设备连接时,在适当配置下,控制设备能够处理进程之间的通信;这些设备能够与一个或多个处理机相连使用。尤其是,通过所提及的两个专利申请的第一个中所公开的设备,通过发送适当命令,一个RAM设备能够配置为一组独立存储块,每块根据选自FI-FO、LIFO、循环队列等的一种方式工作;通过另外的命令,数据能够引入到所述存储块或从所述存储块中抽取,而与其工作方式无关。尽管这样的设备在处理进程之间的通信时能有效地提高处理机性能,但是缺点在于仅能执行低级命令,一般严格相关于其内部硬件结构,并为所使用的特定设备特有。
这样的缺点实际上意味着要求为含有这种设备的硬件环境开发软件的程序员广泛地了解这种设备;如果这种软件用于多进程实时应用程序,则产生错误的可能性很高,因为也应考虑对这种设备的并行访问。
再者,这种软件难以修改。
本发明的目的在于克服上述缺点。
为实现上述目的,本发明提供一种允许通过通信设备在第一用户进程与第二用户进程之间交换信息的方法,包括以下步骤:
a)在收到直接由硬件实现的第一原语时,激活一个系统链路进程,它能够在所述用户进程之间在所述设备上建立一条通信信道;以及
b)在收到直接由硬件实现的第二发送信息原语和直接由硬件实现的第三等待信息原语时,激活至少一个系统处理进程,它能够通过建立在所述设备上的所述信道,将信息从所述用户进程之一传递到另一用户进程。
本发明还提供一种用于允许在第一用户进程和第二用户进程之间交换信息的硬件装置,包括:
至少一个处理机;以及
连接于所述处理机的通信设备;
其特征在于:所述处理机包括:
用于在收到直接以硬件实现的第一原语时在所述用户进程之间于通信设备上建立一条通信信道的装置;以及
用于在收到直接以硬件实现的第二发送信息原语和直接以硬件实现的第三等待信息原语时经过在所述通信设备上建立的信道将信息从所述用户进程之一传递到另一用户进程的装置。
假设,通过软件,更确切些通过系统软件(认为是固件更好)、能够执行高级命令(直接由硬件实现,因而相对于软件实现而言能提高执行速度)并用于每个进程的通信设备,上述缺陷受限于系统软件,因而极大地降低了其有害作用。
通过以下参照附图的说明,本发明将更加明显。
图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的连接实现的。
自然,硬件环境,即至少各处理机必须以这样的方法编程,使得所有处理机能够实现根据本发明的方法的各步。
Claims (8)
1.一种允许通过通信设备在第一用户进程与第二用户进程之间交换信息的方法,包括以下步骤:
a)在收到直接由硬件实现的第一原语时,激活一个系统链路进程,它能够在所述用户进程之间在所述设备上建立一条通信信道;以及
b)在收到直接由硬件实现的第二发送信息原语和直接由硬件实现的第三等待信息原语时,激活至少一个系统处理进程,它能够通过建立在所述设备上的所述信道,将信息从所述用户进程之一传递到另一用户进程。
2.根据权利要求1的方法,还包括以下步骤:
c)激活至少一个系统仲裁进程,它能够控制所述系统进程对所述设备进行的同时访问。
3.根据权利要求1的方法,其中所述步骤b)能够激活第一和第二处理进程,其中这样的信息传送发生在所述第一处理进程收到所述第二原语并且所述第二处理进程收到所述第三原语时。
4.根据权利要求1的方法,其中所述原语由所述用户进程发送。
5.根据权利要求1的方法,其特征在于:所述处理进程用于接收与所述设备的初始化和测试、从所述设备读取或向所述设备写数据、向所述设备发送或从所述设备接收有关的低级原语,其特征还在于:所述的低级原语一般不能由用户进程发送。
6.根据前述任一权利要求的方法,其特征在于所述各步骤还包括提供机器语言编码的指令序列,所述编码的指令存储在存储装置中。
7.一种用于允许在第一用户进程和第二用户进程之间交换信息的硬件装置,包括:
至少一个处理机;以及
连接于所述处理机的通信设备;
其特征在于:所述处理机包括:
用于在收到直接以硬件实现的第一原语时在所述用户进程之间于通信设备上建立一条通信信道的装置;以及
用于在收到直接以硬件实现的第二发送信息原语和直接以硬件实现的第三等待信息原语时经过在所述通信设备上建立的信道将信息从所述用户进程之一传递到另一用户进程的装置。
8.根据权利要求7的硬件装置,其特征在于所述通信设备与所有处理机连接,并且每个处理机包括:
用于在收到直接以硬件实现的第一原语时在所述用户进程之间的通信设备上建立一条通信信道的装置;以及
用于在收到直接以硬件实现的第二发送信息原语和直接以硬件实现的第三等待信息原语时经过所述通信设备将信息从所述用户进程之一传递到另一用户进程的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT93MI001427A IT1264644B1 (it) | 1993-07-02 | 1993-07-02 | Metodo per permettere lo scambio di informazioni fra processi attraverso un dispositivo di comunicazione |
IT001427A/1993 | 1993-07-02 | ||
IT001427A/93 | 1993-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1098580A CN1098580A (zh) | 1995-02-08 |
CN1074219C true CN1074219C (zh) | 2001-10-31 |
Family
ID=11366516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94108113A Expired - Fee Related CN1074219C (zh) | 1993-07-02 | 1994-07-02 | 允许通过通信设备在进程之间交换信息的方法和装置 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP0632374B1 (zh) |
JP (1) | JPH07146801A (zh) |
CN (1) | CN1074219C (zh) |
AU (1) | AU670874B2 (zh) |
CA (1) | CA2127213A1 (zh) |
DE (1) | DE69420782T2 (zh) |
IT (1) | IT1264644B1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0164972A2 (en) * | 1984-06-08 | 1985-12-18 | AT&T Corp. | Shared memory multiprocessor system |
EP0485252A2 (en) * | 1990-10-22 | 1992-05-13 | Teknekron Software Systems, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047921A (en) * | 1989-01-31 | 1991-09-10 | International Business Machines Corporation | Asynchronous microprocessor random access memory arbitration controller |
FR2668877B1 (fr) * | 1990-11-07 | 1996-08-02 | Matra Communication | Dispositif de protection d'une unite de traitement de signaux electroniques contre des perturbations electromagnetiques. |
US5265239A (en) * | 1991-04-08 | 1993-11-23 | Ardolino Anthony A | Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers |
-
1993
- 1993-07-02 IT IT93MI001427A patent/IT1264644B1/it active IP Right Grant
-
1994
- 1994-06-27 AU AU65979/94A patent/AU670874B2/en not_active Ceased
- 1994-06-29 DE DE69420782T patent/DE69420782T2/de not_active Expired - Fee Related
- 1994-06-29 EP EP94110074A patent/EP0632374B1/en not_active Expired - Lifetime
- 1994-06-30 CA CA002127213A patent/CA2127213A1/en not_active Abandoned
- 1994-07-02 CN CN94108113A patent/CN1074219C/zh not_active Expired - Fee Related
- 1994-07-04 JP JP6152501A patent/JPH07146801A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0164972A2 (en) * | 1984-06-08 | 1985-12-18 | AT&T Corp. | Shared memory multiprocessor system |
EP0485252A2 (en) * | 1990-10-22 | 1992-05-13 | Teknekron Software Systems, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
Also Published As
Publication number | Publication date |
---|---|
IT1264644B1 (it) | 1996-10-04 |
JPH07146801A (ja) | 1995-06-06 |
CN1098580A (zh) | 1995-02-08 |
CA2127213A1 (en) | 1995-01-03 |
EP0632374B1 (en) | 1999-09-22 |
ITMI931427A0 (it) | 1993-07-02 |
DE69420782T2 (de) | 2000-04-06 |
DE69420782D1 (de) | 1999-10-28 |
ITMI931427A1 (it) | 1995-01-02 |
AU6597994A (en) | 1995-01-12 |
EP0632374A2 (en) | 1995-01-04 |
AU670874B2 (en) | 1996-08-01 |
EP0632374A3 (en) | 1995-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN1118029C (zh) | 用于高速总线的流控制的系统和方法 | |
CN1279790A (zh) | 快速16位分离事务i/o总线 | |
CN101107592A (zh) | 操作系统友好引导加载器 | |
CN1159657C (zh) | 总线系统和其数据传输方法 | |
CN101055536A (zh) | 在并行计算机数据通信网络中定位硬件故障的方法和设备 | |
CN110532109B (zh) | 一种共享多通道进程通信内存结构和方法 | |
CN1317640C (zh) | 实时操作系统环境下多任务应用软件模块的管理方法 | |
CN1961303A (zh) | 总线连接设备 | |
CN1879368A (zh) | 利用有序的加锁机制来维护诸如分组之类的项目的次序 | |
CN1074219C (zh) | 允许通过通信设备在进程之间交换信息的方法和装置 | |
CN1645351A (zh) | 多处理器系统中传送数据的方法、多处理器系统及处理器 | |
CN1224918C (zh) | 总线、属于此总线的冗余总线系统和其内传输信息的方法 | |
CN111400214B (zh) | 一种双核共用网口的实现方法、智能终端及存储介质 | |
CN1113298C (zh) | 在总线系统中提供和嵌入控制信息的方法和装置 | |
WO2001016761A2 (en) | Efficient page allocation | |
CN115022424B (zh) | 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质 | |
CN1776592A (zh) | 命令传达效能高的电子系统及其增进命令传达效能的方法 | |
CN1503152A (zh) | 处理多网络连接上的定序记录的设备和方法 | |
CN1303054A (zh) | 虚拟网络装置及其通信方法 | |
CN1318166A (zh) | 软件改写方法及软件改写装置 | |
CN1527974A (zh) | 核功能实现机制、具有该机制的娱乐设备以及利用该机制的外围设备控制方法 | |
CN113778916A (zh) | 数据处理方法及装置 | |
CN105549911B (zh) | Nvram的数据传输方法和装置 | |
CN1124549C (zh) | 在多个控制器之间进行分组数据通信的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |