AU670874B2 - Inter-process communication - Google Patents

Inter-process communication Download PDF

Info

Publication number
AU670874B2
AU670874B2 AU65979/94A AU6597994A AU670874B2 AU 670874 B2 AU670874 B2 AU 670874B2 AU 65979/94 A AU65979/94 A AU 65979/94A AU 6597994 A AU6597994 A AU 6597994A AU 670874 B2 AU670874 B2 AU 670874B2
Authority
AU
Australia
Prior art keywords
processes
primitive
user
high level
communication device
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.)
Ceased
Application number
AU65979/94A
Other versions
AU6597994A (en
Inventor
Fabio Butto
Nicola Cosenza
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent NV
Original Assignee
Alcatel NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alcatel NV filed Critical Alcatel NV
Publication of AU6597994A publication Critical patent/AU6597994A/en
Application granted granted Critical
Publication of AU670874B2 publication Critical patent/AU670874B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Description

P/00/011 28/5/91 Regulation 3.2
AUSTRALIA
Patents Act 1990 a r
ORIGINAL
COMPLETE SPECIFICATION STANDARD PATENT Invention Title: "INTER-PROCESS COMMUNICATION" The following statement is a full description of this invention, including the best method of performing it known to us:-
S
*5
SS
2 This invention relates to a method of permitting the exchange of information between processes through a communication device.
Control devices are known, which, when connected to a storage device, are capable of handling communication between processes upon suitable configuration; iese devices can be used in connection with one or more processors. In particular, through the device disclosed in the first of the two mentioned patent application, through the sending of suitable commands, a RAM device can be configured as a set of independent memory blocks each 10 operating in accordance with a mode selected from FIFO, LIFO, circular queue, etc; through further commands, data can be, introduced into and extracted Sfrom said memory blocks without regard for their operation mode. Such devices, although very effective in achieving the processors from handling the communication between processes, nonetheless have the disadvantage of being capable of carrying out low level commands only, in general strictly related to their internal hardware structure and certainly characteristic of the special device used.
Such disadvantage has the practical implication of requiring a widened knowledge of the devices by the programmer who develops software for 2 hardware environments that include such devices; if such software is for multiprocess real-time applications the possibility of making mistakes is still S: higher since the concurrent access to such devices is to be taken into account, too.
Moreover, such software will result difficult to modify.
It is an object of the present invention to overcome these disadvantages.
According to the invention, there is provided a method of permitting the exchange of information, through a communication device, between a first user process and a second user process, comprising the steps of: a) activating a system linker process capable of establishing a communication channel on said device between said user process on receipt of a first high level primitive, and b) activating at least one system handler process capable of transferring information, through said channel established on said device, from one of said user processes to the other one on receipt of a second sendmessage, high level primitive and of a third wait-message, high level primitive.
According to a further aspect of the invention, there is provided a software environment of the type including at least one user process and a second user process, comprising: a) a system linker process designed to establish a communication channel on a communication device between said user processes on receipt of a first high level primitive, and b) at least one system handler process capable of transferring information through said communication device from one of said user processes to S.the other one on receipt of a second send-message high level primitive and of a third wait-message high level primitive: in which all said processes are active.
1 By virtualizing, through software, more precisely the system software (advantageously realizable as firmware), a communication device capable of carrying out hight level commends and dedicated for each process, the above mentioned drawbacks are restricted to the system software and therefore extremely reduced as to their harmful effects.
The present invention will become more apparent from the following description taken in conjunction with the attached drawings wherein: Figure 1 is a block diagram of an hardware environment according to the present invention, and Figure 2 is a concept diagram of a software environment in accord to the present invention.
As already said, in a multiprocess software environment, realized on an hardware environment formed by one or more processors, there is always the need of exchanging information between the various processes; these can be divided into system processes and user processes; another possible subdivision is the one made on the basis of execution time requirements.
The method in accordance with the present invention is concerned with the case in which such information exchange occurs through the use of a 4 communication device, indicated by CD in Figure 1, and hence not simply through the system software of the various processors, indicated by PROC-1, PROC-N in Figure 1.
In the following the description of the method will be made particularly with reference to Figure 2.
The method of permitting the exchange of information through the communication device CD, comprises the steps designed to: a) activate one system linker process labelled as LINKER, able to establish a communication channel between the user processes P1 and P2 using a .:lo0 communication device CD, on receipt of a first high level primitive called, coot CREATE-LINK, and b) activate at least one system handler process, labelled CD-HAND in the figure, able to transfer information through the channel established on device CD, from one of the user processes to the other on receipt of a 1 second high level, primitive of send-message, called, SEND-MSG, and of a third high level primitive of wait-message, called, WAIT-
MSG.
The CREATE-LINK primitive may provide, for instance, at least the following parameters, in case of unidirectional channel: P-MITT sender process identifier; *:P-DCST addressee process identifier; LINK-TYPE data exchange mode (FIFO, LIFO, CHAN-PTR identifier of the storage area used for data exchange, which can be understood also as identifier of the established channel; such identifier is a primitive output parameter, of course.
Naturally, the primitive may provide an output parameter indicating the outcome of the channel establishing operation.
In order to establish a bidirectional channel, it will be then enough to send such primitive twice with suitable parameters.
When it is desired to expressly contemplate the possibility of requiring the establishment of a bidirectional channel by the user processes, a further parameter in the CREATE-LINK primitive can be provided, or two separate primitives, called, CREATE-LINK-SIMPLEX and CREATE-LINK-DUPLEX, can be provided.
A lot of variants to communication between processes can be thought: for instance a communication channel having a sender and several addresses.
The execution of such a primitive, in a multiprocessor environment will require to determine on which processors the sender process and the addressee process are active. To this end, the existence of a particular system process can be contemplated, which is responsible of creation and destruction of the ~user processes and which at any time is able to know their status (such system process could be the so-called supervisor process, the one that takes care of the alternate execution of the various processes of the system); it could have a primitive providing the LINKER process with needed information.
The parameters of the SEND-NSG primitive may be at least: P-DEST identifier of the addressee process to which one wishes to send a message; CHAN-PTR identifier of the channel to be used for sending a message; MSG-PTR identifier of the storage area containing a message to be sent.
Naturally, the primitive may provide an output parameter indicating the outcome of the sending operation.
The parameters of the WAIT-MSG primitive can be at least: P-MITT identifier of the sender message from which a message is expected; CHAN-PTR identifier of the channel from which a message is expected; MSG-PTR identifier of the storage area which shall contain the expected message.
Naturally, also the last primitive may provide an output parameter indicating the outcome of the receive operation.
The last two primitives may be, suspensive for the processes sending them: that is to say the process sending a SEND-MSG primitive does not go on with its execution until the message is effectively sent or the process 6 sending a WAIT-MSG primitive does not go on with its prosecution until the message is effectively received.
A possible and advantageous manner of solving the problem of the concurrent access to device CD is to provide a further step designed to: c) activate at least one process arbitrator of system, called RES-MAN, designed to control the concurrent access to device CD by the system processes.
The access to device CD must be, as far as possible, carried out by system processes only, and ideally by processes LINKER and CD-HAND only or, oo 0 still better, by CD-HAND process only. This can be realized by providing process RES-MAN with two primitives called, GET-CD and RELEASE-CD, with which any process needing access to device CD requires the exclusive access and releases it after use. Process RES-MAN, in addition, may take care of the exclusive access of all resources of the system with similar pairs of primitives: one for each resource.
r Should process P1 and process P2 be active on two different processors, step b) must be able to activate a first and a second handler processes CD- HAND, and then the transfer of information occurs on the basis of reception by the first process handling the primitive SEND-MSG and of reception by the 20 second process handling the primitive WAIT-MSG.
It is clear that the high level primitives CREATE-LINK, SEND-MSG and WAIT-MSG are sent by the user processes, and it is important to see it that these processes communicate as far as possible only by using such high level primitives.
Up to now it has always been spoken of high level primitives that processes LINKER and CD-HAND are able to receive; naturally, they can receive also low level primitives; for instance, process LINKER may receive from process CD-HAND a low level primitive for the request of detailed information about a particular channel established of device CD.
Process CD-HAND can be able to receive, from process LINKER, low level primitives concerning initialization and test of device CD, readout and write of data from and to device CD, transmit and receive of signallings to and from device CD; in this case the access to device CD occurs only through the intermediation of process CD-HAND; therefore it will be possible to confine inside it all the peculiarities of the device itself and to see that the use of a different type of communication device does not entail modifications in other processes of the system.
It is necessary to see that all such low level primitives in general are not sent by the user processes so that the peculiarities relative to information exchange between processes result still more confined.
As it is obvious, the method of the present invention finds its most natural implementation in at least one program and therefore the steps of the method consist of instruction sequences coded in machine language characters and recorded into storage means.
Still referring to Figure 2 the software environment in accordance with the present invention will now be described.
Such software environment comprises at least one first user process P1 and a second user process P2, and further comprises: a) a system linker process LINKER to establish a communication device CD between the user processes on receipt of the high level CREATE-LINK primitive, and b) at least one system handler process CD-HAND capable of transferring information through the communication device CD from one of the user processes to the other on receipt of the high level send-message primitive SEND-MSG and of the high level wait-message primitive WAIT-MSG.
Naturally, all such processes are active simultaneously and in general a system supervisor process SP has the function of realizing their alternate execution on the same processor; the alternate execution can be realized, less advantageously from the simplicity of programming viewpoint, also without the supervisor process SP, through a mechanism of direct transfer of control between processes.
If the user processes are active on two different processors, then the environment comprises a first and a second handler processes CD-HAND designed to transfer information on receipt of primitive SEND-MSG by the first 8 handler process and of primitive WAIT-MSG by the second handler process; naturally, a supervisor process may be activated on each processor, but this is obvious since every processor houses multiprocess software environments.
The environment may further comprise: c) a system arbitrator process RES-MAN, also active, designed to control the concurrent access to the communication device CD by system processes.
In Figure 2 the various processes have been indicated by ellipses; the various ellipses are linked to each other by lines which represent the main links o r ::1f0 between processes in terms of transmit and receive of primitives as follows: .ooo O. processes P1 and P2 send to and/or receive primitives from processes LINKER and CD-HAND, processes LINKER and CD-HAND send to and/or receive primitives from process RES-MAN and from each other; in addition there are represented the supervisor process SP which is in connection with all the processes of the software system and two processes RT and BL, strictly related to process SP, that may even be not present, and that take care of the 0 execution control respectively of the processes having strict time requirements and of the processes without time requirements.
Still referring to Figure 2 there are represented therein, through two series of stacked rectangles, the high level primitives HLP and the low level primitives S LLP of processes LINKER and CD-HAND. Lastly, it is desired to point out that the software environment described above represents all the bare minimum for realizing the method in accordance with the present invention: in particular, as the hardware environment is carried, the number of processes LINKER, CD- HAND, RES-MAN, SP etc. can be much higher and the links between them more complicated.
Referring now to Figure 1, a hardware environment in accordance with the present invention will be illustrated briefly.
Such an environment comprises at least one processor PROC-2 and a communication device CD connected with said processor PROC-2, and it is programmed in such a way that processor PROC-2 is able to realize the steps of the method in accordance with the present invention.
9 In figure 2 there is shown a more complicated environment comprising a plurality of processors PROC-1, PROC-2, PROC-3, PROC-4, PROC-N and the device CD connected with such processors. Such connections can be of various types, connection with PROC-1 is serial, connection with PROC-2 is a parallel one and connection with remaining processors is a bus-shared one.
In the embodiment of Figure the device CD is realized by the connection of a random access memory RAM connected with a control device QRC of the type described in the patent applications mentioned at the outset.
Naturally the hardware environment, at least the various processors, must be programmed in such a way that all processors can realize the steps of the method in accordance with the present invention.
ee *o

Claims (12)

1. A method of permitting the exchange of information, through a communication device, between a first user process and a second user process, comprising the steps of: a) activating a system linker process capable of establishing a communication channel on said device between said user process on receipt of a first high level primitive, and b) activating at least one system handler process capable of transferring information, through said channel established on said device, from one of oooo said user processes to the other one on receipt of a second send- message, high level primitive and of a third wait-message, high level o,:primitive,
2. A method as claimed in claim 1 further comprising the step of: c) activating at least one system arbitrator process capable of controlling the concurrent access to said device by said system processes.
3. A method as claimed in claim 1, wherein said step b) is capable of activating a first and a second handler processes, and wherein such transfer of information occurs on receipt of said second primitive by said first handler process and on receipt of said third primitive by said second handler process.
4. A method as claimed in claim 1, wherein said high level primitives are S sent by said user processes.
A method as claimed in claim 1, wherein said handler process is arranged to receive low level primitives concerning initialization and test of said device, readout and write of data from and into said device, transmit and receive signallings to and from said device; said low level primitives in general not being sent by a user process.
6. A method as claimed in any one of the preceding claims, Nherein said steps consist in sequence, of machine language coded instructions stored in storage means.
7. A software environment of the type including at least one user process and a second user process, comorising: a) a system linker process designed to establish a communication channel cn a communication device between said user processes on receipt of a first high level primitive, and b) at least one system handler process capable of transferring information through said communication device from one of said user processes to the other one on receipt of a second send-message high level primitive and of a third wait-message high level primitive; in which all said processes are active.
8. A software environment as claimed in claim 7, comprising a first and a second handler processes capable of transferring information on receipt of said second primitive by said first handler process and on receipt of said third primitive by said handler process.
9. A software environment as claimed in claim 7, further comprising: c) a system arbitrator process designed to control the concurrent access to said communication device by said system processes; wherein all said processes are active.
A hardware environment comprising at least one processor and a communication device connected to said processor, wherein it is programmed in such a way that said at least one processor is able to realize the steps of the method of claim 1.
11. A hardware environment as claimed in claim 10, comprising a plurality of processors and a communication device connected to said processors, characterized by being programmed in such a way that all said processors are able to realize the steps of the method of claim 1.
12. A method and hardware environment substantially as herein described will reference to Figures 1 2 of the accompanying drawings. DATED THIS TWENTY-FIRST DAY OF JUNE 1994 ALCATEL N.V I. i ABSTRACT The invention relates to a method of permitting the exchange of information between processes through a communication device. The present method allows the virtualization, starting from a communication device shared among several processes and capable of executing low level commands, of a communication device capable of executing high level commands and dedicated for each process. P* a a. e** *~e e *e c~
AU65979/94A 1993-07-02 1994-06-27 Inter-process communication Ceased AU670874B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ITMI93A001427 1993-07-02
IT93MI001427A IT1264644B1 (en) 1993-07-02 1993-07-02 METHOD FOR ALLOWING THE EXCHANGE OF INFORMATION BETWEEN PROCESSES THROUGH A COMMUNICATION DEVICE

Publications (2)

Publication Number Publication Date
AU6597994A AU6597994A (en) 1995-01-12
AU670874B2 true AU670874B2 (en) 1996-08-01

Family

ID=11366516

Family Applications (1)

Application Number Title Priority Date Filing Date
AU65979/94A Ceased AU670874B2 (en) 1993-07-02 1994-06-27 Inter-process communication

Country Status (7)

Country Link
EP (1) EP0632374B1 (en)
JP (1) JPH07146801A (en)
CN (1) CN1074219C (en)
AU (1) AU670874B2 (en)
CA (1) CA2127213A1 (en)
DE (1) DE69420782T2 (en)
IT (1) IT1264644B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0164972A2 (en) * 1984-06-08 1985-12-18 AT&T Corp. Shared memory multiprocessor system
EP0380926A2 (en) * 1989-01-31 1990-08-08 International Business Machines Corporation Asynchronous microprocessor random access memory arbitration controller
EP0485282A1 (en) * 1990-11-07 1992-05-13 Matra Communication EMI protecting device for signal processing unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0164972A2 (en) * 1984-06-08 1985-12-18 AT&T Corp. Shared memory multiprocessor system
EP0380926A2 (en) * 1989-01-31 1990-08-08 International Business Machines Corporation Asynchronous microprocessor random access memory arbitration controller
EP0485282A1 (en) * 1990-11-07 1992-05-13 Matra Communication EMI protecting device for signal processing unit

Also Published As

Publication number Publication date
ITMI931427A0 (en) 1993-07-02
EP0632374A3 (en) 1995-04-26
JPH07146801A (en) 1995-06-06
CN1074219C (en) 2001-10-31
DE69420782D1 (en) 1999-10-28
EP0632374A2 (en) 1995-01-04
ITMI931427A1 (en) 1995-01-02
CN1098580A (en) 1995-02-08
CA2127213A1 (en) 1995-01-03
DE69420782T2 (en) 2000-04-06
EP0632374B1 (en) 1999-09-22
IT1264644B1 (en) 1996-10-04
AU6597994A (en) 1995-01-12

Similar Documents

Publication Publication Date Title
US4855905A (en) Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses
US5047917A (en) Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
US6108693A (en) System and method of data communication in multiprocessor system
US20030110166A1 (en) Queue management
US5410709A (en) Mechanism for rerouting and dispatching interrupts in a hybrid system environment
KR20090005078A (en) Embedded operating system of smart card and the method for processing the task
US5495619A (en) Apparatus providing addressable storage locations as virtual links and storing predefined destination information for any messages transmitted on virtual links at these locations
CN111274019A (en) Data processing method and device and computer readable storage medium
US5448708A (en) System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
US6052729A (en) Event-reaction communication protocol in an object oriented processor array
JP2024503168A (en) Multi-threaded controller for parallel robots
EP0614139A2 (en) External procedure call for distributed processing environment
US5758159A (en) Structured software for a telecommunication system, including a communication service object which uses relationship data to route a message from an originator object to a recipient object
AU670874B2 (en) Inter-process communication
US6289391B1 (en) System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
CN111310638B (en) Data processing method, device and computer readable storage medium
US7350015B2 (en) Data transmission device
JPS5833970B2 (en) Inter-processor communication method
US5392426A (en) Method and apparatus for use in program operation, control and control block management and storage
KR100227781B1 (en) The real time processing method of traffic data in the base station
JPH1165623A (en) Programmable controller
JPH01191967A (en) Data communication processing system
JPH03223955A (en) Information processing system
JPS6382536A (en) Channel device
JP2001265610A (en) Device control method

Legal Events

Date Code Title Description
MK14 Patent ceased section 143(a) (annual fees not paid) or expired