EP0201063A2

Method of locating processes in a distributed data processing system.

Abstract

A multi-processor, multi-tasking virtual machine (Fig. 2) comprises processes, messages, and contexts. Processes communicate only through messages. Contexts are groups of related processes. The virtual machine is implemented in a distributed data processing system comprising a plurality of individual cells coupled by a local area network (LAN). Each cell may comprise one or more processes and/or contexts. A network interface module (NIM) provides the interface between any individual cell and the LAN. To facilitate message transmission between processes resident on different cells, each NIM (Fig. 11) is provided with tables identifying the locations of resident and non-resident processes, respectively. Each NIM also provides addressing modes allowing messages to be sent to processes according to the processes' names. Cells may be added to or deleted from the LAN without disrupting the LAN operations.

EP0201063A2, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Projected expiry passed 2 May 2006, 20.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

20 claims: 15 independent, 5 dependent

  1. 1
    A method of locating processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and at least two processes resident on different ones of said cells, said method comprising the steps of:(a) generating a request by a first process in a first one of said cells to find the location of a second process not resident on said first cell;(b) transmitting said request to a different one of said cells;(c) determining whether said second process is resident on said different cell;and (d) if said second process is resident on said different cell, informing said first cell of the location of said different cell.
  2. 3
    A method of locating processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and at least two processes resident on different ones of said cells, said method comprising the steps of:(a) providing in at least one of said cells a table of non-resident processes;(b) generating a request by a first process in said one cell to find the location of a second process identified only by name, said second process not resident on said first cell;(c) transmitting said request to a different one of said cells;(d) determining whether said second process is resident on said different cell;and (e) if said second process is resident on said different cell, storing the location of said different cell in said table.
  3. 5
    In a distributed data processing system comprising a plurality of individual cells (FIG. 11), a method of indicating the processes resident within one of said cells, said method comprising the steps of:(a) providing in said one cell a table of resident processes;and (b) making an entry in said table every time a new process is created in said one cell.
  4. 7
    In a distributed data processing system comprising a plurality of individual cells (FIG. 11), a method of indicating the processes resident within one of said cells, said method comprising the steps of:(a) providing in said one cell a table of resident processes, each entry in said said table comprising a first portion corresponding to the name of a process and a second portion corresponding to the number of processes having the same name which are resident in said one cell;(b) making a new entry in said table every time a process having a unique name is created in said one cell, including indicating the name of said process in said first portion of said table entry;and (c) incrementing said second portion of the appropriate table entry every time a process is created in said one cell whose name is the same as that contained in the first portion of said table entry.
  5. 9
    A method of communicating between processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and at least two processes resident on different ones of said cells, said method comprising the steps of:(a) providing in at least a first one of said cells a table of non-resident processes, each entry in said table comprising a first portion indicating the name of a process and a second portion indicating the location of a cell where said process is resident;(b) generating a request by a first process in said first cell to transmit a message to a second process identified only by name, said second process not resident on said first cell;(c) looking up the location of said second process in said table in said first cell and finding the location of the cell where said second process is resident;and (d) transmitting said message to the cell containing said second process.
  6. 11
    A method of communicating between processes in a distributed data processing system, said system comprising a plurality of individual cells and at least three processes resident on different ones of said cells, said method comprising the steps of:(a) generating a request by a first process located in a first one of said cells to transmit a message to a second process and to a third process, said second and third processes being identified only by name, said name being identical for said second and third processes;(b) transmitting said message from said first process to said second process;and (c) transmitting said message from said second process to said third process.
  7. 12
    The method of communicating between processes recited in claim 11, said method further comprising the steps of:(d) transmitting said message from said third process to said first process;and (e) providing confirmation to said first process in said message that at least one of said second or third processes has received said message.
  8. 13
    A method of communicating between processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and a plurality of processes resident on said cells, at least two of said processes being resident on different cells and having the same name, said method comprising the steps ot:(a) generating a request by a first process located in a first one of said plurality of cells to transmit a message to each of said two processes, each of said two processes being identified only by name, said names being identical;(b) transmitting said message from said first process to one of said two processes;and (c) transmitting said message from said one of said two processes to the other of said two processes.
  9. 14
    The method of communicating between processes recited in claim 13, said method further comprising the steps of:(d) transmitting said message from said other of said two processes back to said first process;and (e) providing confirmation to said first process in said message that at least one of said two processes has received said message.
  10. 15
    A method of communicating between processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and a plurality of processes resident on said cells, at least two of said processes being resident on different cells and having the same name, said method comprising the steps of:(a) generating a request by a first process located in a first one of said plurality of cells to transmit a message to at least one but not both of said two processes, said at least one process being identified only by name;and (b) attempting to transmit said message from said first process to one of said two processes.
  11. 16
    The method of communicating between processes recited in claim 15, said method further comprising the steps of:(c) if said one of said two processes received said message, transmitting said message back to said first process;and (d) providing an indication to said first process in said message that said one of said two processes received said message.
  12. 17
    The method of communicating between processes recited in claim 15, said method further comprising the step of:(c) if said one process did not receive said message, transmitting said message from said cell containing said one process to the cell containing said second process.
  13. 18
    The method of communicating between processes recited in claim 15, said method further comprising the step of:(c) if said one process received said message, forwarding said message from said cell containing said one process to the cell containing said second process, in response to a forwarding request by said one process.
  14. 19
    The method of communicating between processes recited in claim 18, said method further comprising the steps of:(d) transmitting said message back to said first process;and (e) providing an indication to said first process in said message as to whether either of said first and second processes received said message.
  15. 20
    A method of communicating between processes in a distributed data processing system, said system comprising a plurality of individual cells (FIG. 11) and a plurality of processes resident on said cells, at least two of said processes being resident on different cells and having the same name, said method comprising the steps of:(a) generating a request by a first process located in a first one of said plurality of cells to transmit a message to at least one but not both of said two processes, said at least one process being identified only by name;(b) attempting to transmit said message from said first process to one of said two processes;and (c) if said one process received said message, forwarding said message from said cell containing said one process to the cell containing said second process, in response to a forwarding request by said one process.
Independent claims15