US5357612A - Mechanism for passing messages between several processors coupled through a shared intelligent memory - Google Patents
Mechanism for passing messages between several processors coupled through a shared intelligent memory Download PDFInfo
- Publication number
- US5357612A US5357612A US08/091,117 US9111793A US5357612A US 5357612 A US5357612 A US 5357612A US 9111793 A US9111793 A US 9111793A US 5357612 A US5357612 A US 5357612A
- Authority
- US
- United States
- Prior art keywords
- processor
- task
- sending
- tasks
- messages
- 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 OR CALCULATING; 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
- G06F9/546—Message passing systems or structures, e.g. queues
Definitions
- the present invention relates to a mechanism for passing messages between several processors coupled through a shared intelligent memory, and to a fault-tolerant protocol using said mechanism for determining, upon failure of a given processor, which processors will run back-up tasks to remedy the non-execution of primary tasks affected by the failing processor.
- fault tolerant machines are getting more and more commonplace because there is a need in the computer market for permanent service (airline control, banking and so on).
- Many of these machines like the one described in French Patent 2 261 568 are architected as a set of processors each of which can be replaced by another upon detection of a failure. In such a case, a control unit saves information from which the back-up processor can replace the failing processor and execute its tasks.
- all the message passing is to be done without altering the First-in First-out order of messages received or transmitted by tasks operated on a single or on different processors.
- a mechanism for the secure passing of messages between tasks operated on said processors is provided.
- means are provided within the shared intelligent memory for storing the messages transmitted by sending tasks, and further, each processor includes serving means for getting the messages to be sent to the task operated by said each processor.
- the passing of messages from a processor to the shared intelligent memory and from the latter to another processor is made, using a set of high-level microcoded commands.
- a process is provided, using the above cited message passing mechanism together with redundancies built into the shared memory, to ensure a fault-tolerant message passing, wherein the tasks operated primarily on a processor, are automatically replaced by back-up tasks executed on another processor if the first processor comes to fail.
- One of the advantages of the mechanism and process according to the invention is the increase of the granularity of the fault-tolerant message-passing, since when several tasks are executed on a given processor, the fault-tolerant message passing is possible not only on a processor to processor communication level, but also on a task to task communication level.
- the mechanism and process according to the invention allows the differentiation of tasks that are to be handled in a fault-tolerant manner, and tasks for which fault-tolerant message passing is not compulsory, which allows minimization of the processing power overhead due to intertask communication.
- FIG. 1 represents the general structure of the machine constituting the environment wherein the invention may be used.
- FIG. 2 represents the operation of a specific DEQUEUE command used in the system of FIG. 1.
- FIG. 3 schematically represents the structure of the operating systems underlying the machine structure of FIG. 1.
- FIG. 4 gives a schematic representation of intertask message passing in the environment of FIG. 3.
- FIG. 5 represents a more detailed view of an inter-processor message passing mechanism according to the invention.
- FIG. 6 represents a more detailed view of an intra-processor message passing mechanism according to the invention.
- FIG. 7 represents a schematic view of the message passing mechanism according to the invention, when used in a fault-tolerant process of passing messages between tasks.
- FIG. 1 shows a multiprocessor structure (1) wherein a plurality of processing units (5) are connected to a shared intelligent memory (3) by means of busses (13).
- the objects exchanged between the processing units (5), using the shared memory (3), are messages enqueued into and dequeued from queues (15).
- the objects stored within the shared memory (3) can thus be shared between all the processing units (5), and are accessible through a set of high-level commands submitted to the shared memory by the processors (9) of the processing units, through memory interfaces PMI (11).
- Such a structure and the corresponding high-level commands have already been described in detail in a European patent application No. 88480102.8 of same applicant.
- processors (9) all run their own operating system, so that different operating systems may coexist in the same system structure.
- Each individual processor of a processing unit is connected to a local RAM memory (7) by a local bus (17).
- the ENQ primitive is used by a processor to enqueue an element in a queue located in the shared memory.
- the primitive uses three parameters:
- All these parameters are passed by the processor to the PMI, which enqueues a copy of the message in the specified shared memory queue.
- the DEQ primitive is used to dequeue one, several or all elements from a shared memory queue. It uses the following parameters:
- MAX This is the maximum number of elements that the processor intends to receive.
- n This is the real number of dequeued elements; it is set by the PMI.
- the processor sets first the value of ⁇ max ⁇ according to the available storage in its local memory. Supplying this value prevents the PMI from flooding the local memory with a large number of elements while attempting to empty the queue.
- the ⁇ n ⁇ parameter is therefore always inferior or equal to ⁇ max ⁇ . If n is not equal to ⁇ max ⁇ , this implies that the DEQ operation retrieved all the elements from the queue. If n is equal to ⁇ max ⁇ , the number of remaining elements in the queue is unknown.
- the PURGE primitive uses an ⁇ index ⁇ as a parameter, set by the processor; this index is the sum of the one supplied by the PMI upon a DEQ operation, plus a count calculated by the processor.
- the DEQ operation yields an index for the first dequeued element; to be able to purge any element within the dequeued ones, a displacement number with regard to the first element is added to the index.
- FIG. 2 shows the use of the different parameters.
- the shared memory queue (15) contains 4 elements; the processor specifies to the PMI that it has room for up to 8 elements.
- 4 elements are dequeued (but not purged) and loaded into local memory (7), and an ⁇ index ⁇ is delivered so it can be used during a further PURGE operation.
- the PURGE primitive is a key function for the implementation of secure message passing. In fact, when a message is retrieved from the shared memory, this does not imply that the target task performed the corresponding processing. In other words, if a message is dequeued from the shared memory, but the receiving processor crashes during the treatment of the message and if the message was really erased from tile shared memory, the failing task cannot recover since the message is lost forever. Thus, the PURGE operation allows the task to clear the message from the shared memory, when the work associated with this message is really terminated, and any further recovery does no longer require this message.
- This primitive is to restore a shared memory queue, followed by a dequeuing of the elements.
- a queue is said to be restored when a reset is performed on all dequeued, but not purged elements; therefore after a restore, it is possible to retrieve again elements that were initially dequeued but not yet purged.
- the ability to restore a queue is essential in building fault tolerant systems, since retrieved elements from the shared memory should be protected until they are no longer needed, and then only can they be completely removed from the shared memory.
- the machine structure (1) represents a single system, which means that for it, the actual number of processors is unknown and the system behaves as if it were a signal processor with a unique operating system.
- MOS Machine Operating System
- LOS Local Operating System ⁇
- the MOS is a multi tasking operating system which is distributed over several processors.
- the MOS is composed of identical functions that run in each processor. These local functions can be decomposed into two components:
- the LOS which has the responsibility of managing the local resources of each processor, including the scheduling of local tasks; as stated earlier, the LOS can be any operating system that already runs on the processor.
- the machine layer provides the inter task communication interface, that is the set of system calls for exchanging messages between tasks. It is responsible also for co-operation with other coprocessors to locate remote tasks, so the user would not be aware of the real location of the tasks.
- FIG. 3 schematically shows the decomposition of MOS functions.
- the MOS has two types of system objects, which are tasks and message queues.
- a task is the execution, on a single processor, of a program consisting of instructions and initial data values.
- Several tasks can coexist at the same time on a single processor, and several processors can run in parallel.
- Tasks are dynamic objects that can be created and deleted by other supervisor tasks. Besides the code that composes the program of the task itself, a task can invoke the services of the MOS through System Calls. According to the invention, in addition to usual services such as memory allocation and operations on timers, a task can send a message to another task in the system, wherever the latter is (e.g. on same or different processor); in both cases, the sending task does not know the real location of this correspondent within the multiprocessor system.
- a task can execute on a processor as long as it can process its inputs; The decision of keeping a task on execution, is revisited each time the task issues a call for additional inputs. Typically, this decision depends on two conditions: the readiness of the requested input, and the priority level of other outstanding tasks of the same processor.
- the action of ordering the task execution by the kernel is called ⁇ scheduling ⁇ .
- This topic is specific to the LOS and thus falls outside the scope of the present subject.
- the scheduling mechanism for scheduling the various tasks is not critical, and will be supposed to be selected among any well-known scheduling mechanisms.
- a message queue (or queue for short) is a dynamic object that can be created and destroyed by a task.
- a queue is a kind of mailbox where messages can be kept and then wait to be retrieved by a task that will issue a RECEIVE call on this queue.
- a queue respects the FIFO scheme: the oldest message in the queue is the first to be served.
- queues are located in the shared memory.
- FIG. 3 shows the MOS functions decomposition, every Local Operating system manages its local resources.
- the machine layer provides inter task communication calls.
- each queue has a single owning task, which is the only task that has the right to read messages from it; the queue is owned automatically by the task that creates it.
- the MOS When a queue is created, the MOS returns an identifier, a ⁇ queueid ⁇ , which is unique in the system.
- a task When a task intends to send a message to a queue, the task should issue an OPEN call first, to get the right to send messages. It issues then a SEND call, giving as a parameter the ⁇ queueid ⁇ of the queue; the ⁇ queueid ⁇ designates the destination of the message.
- the owning task To be able to dequeue a message from a queue, upon receipt of a message by said queue, the owning task should issue a RECEIVE call, with the ⁇ queueid ⁇ as a parameter.
- FIG. 4 represents the system objects as they are viewed by the application programmer. For him, all tasks are bound by the same operating system and the actual number of processors is unknown.
- the sending task issues the OPEN call.
- the OPEN call uses two parameters:
- a queueid which is the identifier of the queue associated with this system name of the originating task, and which is returned by the machine layer.
- the CLOSE call uses a single parameter which is the queue identifier.
- queues can be created and removed dynamically, one problem to solve is how a newly created queue can be located by the LOS of other processors; in other terms, how a task on another processor can get the identifier (i.e. queueid) of the target queue.
- a queueid which is a parameter returned by the LOS to the task.
- c. gets the ⁇ processor number ⁇ , to locate the placement of the queue.
- a task can send a message to a queue with the SEND call.
- An OPEN call should be issued previously, otherwise the call would fail.
- the SEND call parameters are:
- queueid this is the identifier of the queue where a copy of the message should be sent.
- the task that owns a queue can read messages from it by issuing a RECEIVE call.
- the task issuing a Receive Call should pass the pointer to a string of bytes, where the dequeued message will be copied.
- the RECEIVE call parameters are:
- queueid this is the identifier of the queue from where the message should be read.
- pointer this is the pointer passed by the receiving task and where the machine layer will copy the message.
- IPIQ Inter Processor Inbound Queue
- MIH message inbound handler
- FIGS. 5 and 6 summarize the message flow in both cases:
- task A sends a message using the SEND call.
- this call there is a parameter specifying the ⁇ queueid ⁇ .
- the procedure SEND uses this parameter to locate the real place of the destination queue, as explained in section "Locating a queue”.
- the SEND procedure routes the message to the local queue feeding task C.
- the SEND procedure enqueues the message in the IPIQ of processor B.
- processor B will dequeue the message from the IPIQ and handle the message to the queues (25) feeding the local operating systems (LOS).
- LOS local operating systems
- the receiving task will issue a RECEIVE CALL.
- MIH primarily servicing a single queue (21) where all messages from other processors are enqueued.
- the most interesting point is that the message handler does not know a priori the state of the IPIQ, and there is no signalling from the PMI (e.g. an interrupt) to warn of the arrival of a message. This lack of signalling can be overcome by attempting a dequeue operation on the IPIQ, and discovering afterward that messages are outstanding.
- the problem associated with this scheme is the overhead caused by many unsuccessful dequeues in case of reduced traffic between processors.
- the message handler is designed as a task (not interrupt driven) that has the lowest priority, with regard to application tasks. It is dispatched by the LOS periodically, the time interval between two dispatches being dependent on the load of the processor. The message handler will use a timer which will be a function of the number of outstanding messages in the IPIQ and of the time elapsed between two dispatches. With this scheme, it is ensured that the local processing has a priority over external messages, and that MIH is dispatched often enough to service the inbound traffic.
- the MIH Whenever the MIH is dispatched, it tries to dequeue the maximum number of messages in a single operation to minimize the number of accesses to the shared memory.
- the number of messages the MIH is able to dequeue depends on the available storage for receiving messages in the local memory, and the real number of outstanding messages in the IPIQ.
- the real number of messages dequeued from the IPIQ will be less than the maximum number of messages that the local memory is able to store. Therefore, when issuing a DEQUEUE primitive on the PMI, the MIH specifies the maximum number of messages to transfer with parameter ⁇ MAX ⁇ ; the status code of the operation will give the real number of transferred messages.
- FIG. 5 shows the scenario for message passing to a protected task in another processor.
- the process for fault tolerant message passing includes the steps of:
- Task A sends a message to a protected task B (B1 or B2) in another processor.
- the SEND call enqueues the message in B IPIQ (21).
- the MIH dequeues the IPIQ. It tries to exhaust the queue from all messages. So far the message is dequeued from the IPIQ but not erased.
- the receiving task when dispatched by the LOS processes the message.
- the MIH gets the message from the IPIQ
- the receiving task processes the message
- FIG. 6 summarizes the scenario for message passing to a protected task in the same processor:
- task A sends a message to Task C; the message is enqueued in A IPIQ
- Task C receives the message.
- Task C passes to next recovery point and the message is purged from the shared memory.
- the message passing design provides the building block for architecting a fault tolerant machine.
- the intent of this section is to show how it allows a recovery after a processor crash, with a focus on message recovery.
- the considered situation is when during normal operations, a processor crashes, and we would like to resume the activities of tasks that were running on the failed processor.
- the major problem raised by this scenario is how another processor can take over the failed one whatever the point of execution of the latter is.
- the granularity of protection is the task, not the processor.
- Each protected primary task has a back up task that can be located on any other processor.
- Primary task and its back up are created at the same time and with a single system call; their locations are specified within this system call.
- the primary task is active whereas the back up is passive; in other words, the primary performs all the operational work, while the back up waits for the establishment by the primary of recovery points.
- the primary task synchronizes its operation with its back up by establishing regularity recovery points; this ⁇ checkpoint ⁇ can be performed either by the underlying machine layer or by the task itself.
- Each processor maintains a back up list of processors that contain protected tasks. As an example, let Ap be a primary task on processor Pa, its back up being processor Pb; thus the name of Pa figures in the list of processor Pb.
- Every processor has the address of all Inbound Processor Queues; this address is known either by design or during system bring up.
- FIG. 7 shows an example of the model when transposed in the described multiprocessor system.
- Processor 2 It is supposed that only primary tasks (A, B, C) are active while back up tasks remain passive.
- the list of Processor 2 is composed of the element ⁇ processor 3 ⁇ because it handles the back up of task A, which runs in processor 3.
- the operational ones discover that P3 crashed; the protocol is assumed sure enough to derive a decision for taking over. At that point, every processor checks its back up list. If the list is empty, no action is performed since this processor does not contain any back up task for the failing processor.
- the processor since the processor has the list of all its back up tasks, it is able to detect whether the messages should be received by the local back up tasks or not.
- Processor 1 would send to Processor 2,the message ⁇ BACK -- UP -- RESUME, (TASK A), PROCESSOR 1 ⁇ , and Processor 2 sends to Processor 1, the message ⁇ BACK -- UP -- RESUME, (TASK B), PROCESSOR 2.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/091,117 US5357612A (en) | 1990-02-27 | 1993-01-11 | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP90480029.9 | 1990-02-27 | ||
| EP90480029A EP0444376B1 (fr) | 1990-02-27 | 1990-02-27 | Dispositif de passage de messages entre plusieurs processeurs couplé par une mémoire partagée intelligente |
| US64404691A | 1991-01-22 | 1991-01-22 | |
| US08/091,117 US5357612A (en) | 1990-02-27 | 1993-01-11 | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US64404691A Continuation | 1990-02-27 | 1991-01-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US5357612A true US5357612A (en) | 1994-10-18 |
Family
ID=8205828
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US08/091,117 Expired - Fee Related US5357612A (en) | 1990-02-27 | 1993-01-11 | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5357612A (fr) |
| EP (1) | EP0444376B1 (fr) |
| JP (1) | JP2587141B2 (fr) |
| DE (1) | DE69029084D1 (fr) |
Cited By (100)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5530844A (en) * | 1992-06-16 | 1996-06-25 | Honeywell Inc. | Method of coupling open systems to a proprietary network |
| US5574862A (en) * | 1993-04-14 | 1996-11-12 | Radius Inc. | Multiprocessing system with distributed input/output management |
| US5640504A (en) * | 1994-01-24 | 1997-06-17 | Advanced Computer Applications, Inc. | Distributed computing network |
| US5737605A (en) * | 1993-10-12 | 1998-04-07 | International Business Machines Corporation | Data processing system for sharing instances of objects with multiple processes |
| US5894583A (en) * | 1996-04-09 | 1999-04-13 | International Business Machines Corporation | Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems |
| US5918011A (en) * | 1992-07-10 | 1999-06-29 | Canon Kabushiki Kaisha | Method for execution of program steps by a remote CPU in a computer network |
| US5944788A (en) * | 1997-03-26 | 1999-08-31 | Unisys Corporation | Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules |
| US5950170A (en) * | 1997-04-11 | 1999-09-07 | Vanguard International Semiconductor Corporation | Method to maximize capacity in IC fabrication |
| US5968185A (en) * | 1995-12-01 | 1999-10-19 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
| US5978931A (en) * | 1997-07-16 | 1999-11-02 | International Business Machines Corporation | Variable domain redundancy replacement configuration for a memory device |
| US5983266A (en) * | 1997-03-26 | 1999-11-09 | Unisys Corporation | Control method for message communication in network supporting software emulated modules and hardware implemented modules |
| US5999969A (en) * | 1997-03-26 | 1999-12-07 | Unisys Corporation | Interrupt handling system for message transfers in network having mixed hardware and software emulated modules |
| US6032267A (en) * | 1995-01-23 | 2000-02-29 | Compaq Computer Corporation | Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system |
| US6098105A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupt method for message arrival notification |
| US6098104A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupts for message arrival notification, and related data structures |
| US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
| US6105071A (en) * | 1997-04-08 | 2000-08-15 | International Business Machines Corporation | Source and destination initiated interrupt system for message arrival notification |
| US6119244A (en) * | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
| US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
| WO2000055749A1 (fr) * | 1999-03-18 | 2000-09-21 | Pasocs, Llc | Processeur distribue de regles numeriques pour image a systeme unique sur un reseau groupe et son procede |
| US6173386B1 (en) | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
| US6192418B1 (en) | 1997-06-25 | 2001-02-20 | Unisys Corp. | System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer |
| US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
| US6247064B1 (en) * | 1994-12-22 | 2001-06-12 | Unisys Corporation | Enqueue instruction in a system architecture for improved message passing and process synchronization |
| US6289391B1 (en) * | 1997-06-25 | 2001-09-11 | Unisys Corp. | System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer |
| US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
| US20020002631A1 (en) * | 2000-06-02 | 2002-01-03 | Inrange Technologies Corporation | Enhanced channel adapter |
| US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
| US6385747B1 (en) | 1998-12-14 | 2002-05-07 | Cisco Technology, Inc. | Testing of replicated components of electronic device |
| US6385659B1 (en) | 1998-08-19 | 2002-05-07 | International Business Machines Corporation | Handling of asynchronous message packet in a multi-node threaded computing environment |
| US6393503B2 (en) | 1995-01-23 | 2002-05-21 | Compaq Computer Corporation | Efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system |
| US20020069369A1 (en) * | 2000-07-05 | 2002-06-06 | Tremain Geoffrey Donald | Method and apparatus for providing computer services |
| US6412018B1 (en) | 1998-08-19 | 2002-06-25 | International Business Machines Corporation | System for handling asynchronous message packet in a multi-node threaded computing environment |
| US6415332B1 (en) | 1998-08-19 | 2002-07-02 | International Business Machines Corporation | Method for handling of asynchronous message packet in a multi-node threaded computing environment |
| US20020116555A1 (en) * | 2000-12-20 | 2002-08-22 | Jeffrey Somers | Method and apparatus for efficiently moving portions of a memory block |
| US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
| US20020166038A1 (en) * | 2001-02-20 | 2002-11-07 | Macleod John R. | Caching for I/O virtual address translation and validation using device drivers |
| US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
| US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
| US6519686B2 (en) * | 1998-01-05 | 2003-02-11 | Intel Corporation | Information streaming in a multi-process system using shared memory |
| US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
| US20030110232A1 (en) * | 2001-12-11 | 2003-06-12 | International Business Machines Corporation | Distributing messages between local queues representative of a common shared queue |
| US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
| US6629152B2 (en) * | 1998-06-29 | 2003-09-30 | International Business Machines Corporation | Message passing using shared memory of a computer |
| US20030236910A1 (en) * | 2002-05-28 | 2003-12-25 | International Business Machines Corporation | Method and apparatus using attached hardware subsystem to communicate between attached hosts |
| US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
| US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
| US20040024774A1 (en) * | 2002-08-01 | 2004-02-05 | Oracle International Corporation | Buffered message queue architecture for database management systems |
| US6691225B1 (en) | 2000-04-14 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Method and apparatus for deterministically booting a computer system having redundant components |
| US20040034640A1 (en) * | 2002-08-01 | 2004-02-19 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
| US6728839B1 (en) | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
| US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
| US6799317B1 (en) | 2000-06-27 | 2004-09-28 | International Business Machines Corporation | Interrupt mechanism for shared memory message passing |
| US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
| US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
| US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
| US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
| US6874102B2 (en) | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
| US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
| US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
| US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
| US20050172293A1 (en) * | 2004-01-27 | 2005-08-04 | Network Appliance, Inc. | Method and apparatus for allocating resources in a shared resource processor |
| US6996750B2 (en) | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
| US20060093124A1 (en) * | 2004-11-04 | 2006-05-04 | Sonali Inamdar | Techniques for performing multi-media call center functionality in a database management system |
| US7065672B2 (en) | 2001-03-28 | 2006-06-20 | Stratus Technologies Bermuda Ltd. | Apparatus and methods for fault-tolerant computing using a switching fabric |
| US20060143528A1 (en) * | 2004-12-27 | 2006-06-29 | Stratus Technologies Bermuda Ltd | Systems and methods for checkpointing |
| US20060149787A1 (en) * | 2004-12-30 | 2006-07-06 | Kapil Surlaker | Publisher flow control and bounded guaranteed delivery for message queues |
| US20060168080A1 (en) * | 2004-12-30 | 2006-07-27 | Kapil Surlaker | Repeatable message streams for message queues in distributed systems |
| US20070028144A1 (en) * | 2005-07-29 | 2007-02-01 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
| US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
| US7178137B1 (en) | 2001-04-05 | 2007-02-13 | Network Appliance, Inc. | Automatic verification of scheduling domain consistency |
| US20070038891A1 (en) * | 2005-08-12 | 2007-02-15 | Stratus Technologies Bermuda Ltd. | Hardware checkpointing system |
| US7185033B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
| US7203706B2 (en) | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
| US20070094529A1 (en) * | 2005-10-20 | 2007-04-26 | Lango Jason A | Method and apparatus for increasing throughput in a storage server |
| US20070094463A1 (en) * | 2005-10-25 | 2007-04-26 | Harris Corporation, Corporation Of The State Of Delaware | Mobile wireless communications device providing data management and security features and related methods |
| US20070101341A1 (en) * | 2005-10-07 | 2007-05-03 | Oracle International Corporation | Event locality using queue services |
| US20070124360A1 (en) * | 1999-05-28 | 2007-05-31 | Ittycheriah Abraham P | Systems and methods for processing audio using multiple speech technologies |
| US20090119676A1 (en) * | 2006-09-27 | 2009-05-07 | Supalov Alexander V | Virtual heterogeneous channel for message passing |
| US7694302B1 (en) | 2001-04-05 | 2010-04-06 | Network Appliance, Inc. | Symmetric multiprocessor synchronization using migrating scheduling domains |
| US7733789B1 (en) | 1999-03-05 | 2010-06-08 | Cisco Technology, Inc. | Remote monitoring of switch network |
| US8245207B1 (en) | 2003-07-31 | 2012-08-14 | Netapp, Inc. | Technique for dynamically restricting thread concurrency without rewriting thread code |
| US8365193B2 (en) | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
| US8458530B2 (en) | 2010-09-21 | 2013-06-04 | Oracle International Corporation | Continuous system health indicator for managing computer system alerts |
| US20130262783A1 (en) * | 2012-03-30 | 2013-10-03 | Fujitsu Limited | Information processing apparatus, arithmetic device, and information transferring method |
| US8627331B1 (en) | 2010-04-30 | 2014-01-07 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
| US9027025B2 (en) | 2007-04-17 | 2015-05-05 | Oracle International Corporation | Real-time database exception monitoring tool using instance eviction data |
| US20150201007A1 (en) * | 2005-06-15 | 2015-07-16 | Solarflare Communications, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities |
| US9128895B2 (en) | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
| US9251002B2 (en) | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
| US9588844B2 (en) | 2013-12-30 | 2017-03-07 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods using data forwarding |
| US9652338B2 (en) | 2013-12-30 | 2017-05-16 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
| US9760442B2 (en) | 2013-12-30 | 2017-09-12 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
| US20170329658A1 (en) * | 2014-11-12 | 2017-11-16 | Arm Ip Limited | Methods of communication between a remote resource and a data processing device |
| US10055128B2 (en) | 2010-01-20 | 2018-08-21 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
| US10382380B1 (en) | 2016-11-17 | 2019-08-13 | Amazon Technologies, Inc. | Workload management service for first-in first-out queues for network-accessible queuing and messaging services |
| US10540217B2 (en) | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
| US11137990B2 (en) | 2016-02-05 | 2021-10-05 | Sas Institute Inc. | Automated message-based job flow resource coordination in container-supported many task computing |
| US11169788B2 (en) | 2016-02-05 | 2021-11-09 | Sas Institute Inc. | Per task routine distributed resolver |
| US12131204B1 (en) * | 2022-08-31 | 2024-10-29 | Zoox, Inc. | Latency mitigation for inter-process communication |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5315707A (en) * | 1992-01-10 | 1994-05-24 | Digital Equipment Corporation | Multiprocessor buffer system |
| CA2123447C (fr) * | 1993-09-20 | 1999-02-16 | Richard L. Arndt | Structure d'interruption evolutive pour systeme multiprocesseur |
| EP0664509A1 (fr) * | 1994-01-20 | 1995-07-26 | International Business Machines Corporation | Méthode et appareil pour transférer le contrôle d'un processus à un autre processus |
| US6314501B1 (en) | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
| JP3769413B2 (ja) * | 1999-03-17 | 2006-04-26 | 株式会社日立製作所 | ディスクアレイ制御装置 |
| EP1049029A3 (fr) * | 1999-04-28 | 2003-07-09 | Emc Corporation | Système de fichiers avec adressage indirect et polyvalent |
| US20020144010A1 (en) * | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
| US20070288938A1 (en) * | 2006-06-12 | 2007-12-13 | Daniel Zilavy | Sharing data between partitions in a partitionable system |
| JP2010257262A (ja) * | 2009-04-27 | 2010-11-11 | Fujitsu Frontech Ltd | 通信制御プログラム、通信システム、通信制御装置および通信制御方法 |
| JP5636832B2 (ja) | 2009-09-15 | 2014-12-10 | 株式会社リコー | 画像形成装置、画像形成方法およびプログラム |
| JP2013533524A (ja) * | 2010-08-11 | 2013-08-22 | 日本電気株式会社 | マルチプロセッサ・システムのためのプライマリ−バックアップに基づくフォールト・トレラント方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
| US4674033A (en) * | 1983-10-24 | 1987-06-16 | British Telecommunications Public Limited Company | Multiprocessor system having a shared memory for enhanced interprocessor communication |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59117619A (ja) * | 1982-12-24 | 1984-07-07 | Omron Tateisi Electronics Co | デ−タ転送処理装置 |
| NL8400186A (nl) * | 1984-01-20 | 1985-08-16 | Philips Nv | Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem. |
| JPS63292364A (ja) * | 1987-05-26 | 1988-11-29 | Fujitsu Ltd | 共通メモリ制御方式 |
| JPH01292559A (ja) * | 1988-05-20 | 1989-11-24 | Fujitsu Ltd | 並列計算機メッセージ処理方式及びデータ転送方式 |
-
1990
- 1990-02-27 EP EP90480029A patent/EP0444376B1/fr not_active Expired - Lifetime
- 1990-02-27 DE DE69029084T patent/DE69029084D1/de not_active Expired - Lifetime
-
1991
- 1991-02-07 JP JP3036667A patent/JP2587141B2/ja not_active Expired - Lifetime
-
1993
- 1993-01-11 US US08/091,117 patent/US5357612A/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
| US4674033A (en) * | 1983-10-24 | 1987-06-16 | British Telecommunications Public Limited Company | Multiprocessor system having a shared memory for enhanced interprocessor communication |
Non-Patent Citations (2)
| Title |
|---|
| Milan Milenkovic, "Operating Systems Concepts and Design", 1987 pp. 189-190, McGraw Hill. |
| Milan Milenkovic, Operating Systems Concepts and Design , 1987 pp. 189 190, McGraw Hill. * |
Cited By (144)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5530844A (en) * | 1992-06-16 | 1996-06-25 | Honeywell Inc. | Method of coupling open systems to a proprietary network |
| US5918011A (en) * | 1992-07-10 | 1999-06-29 | Canon Kabushiki Kaisha | Method for execution of program steps by a remote CPU in a computer network |
| US5574862A (en) * | 1993-04-14 | 1996-11-12 | Radius Inc. | Multiprocessing system with distributed input/output management |
| US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
| US5737605A (en) * | 1993-10-12 | 1998-04-07 | International Business Machines Corporation | Data processing system for sharing instances of objects with multiple processes |
| US5640504A (en) * | 1994-01-24 | 1997-06-17 | Advanced Computer Applications, Inc. | Distributed computing network |
| US6247064B1 (en) * | 1994-12-22 | 2001-06-12 | Unisys Corporation | Enqueue instruction in a system architecture for improved message passing and process synchronization |
| US6393503B2 (en) | 1995-01-23 | 2002-05-21 | Compaq Computer Corporation | Efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system |
| US6032267A (en) * | 1995-01-23 | 2000-02-29 | Compaq Computer Corporation | Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system |
| US5968185A (en) * | 1995-12-01 | 1999-10-19 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
| US5894583A (en) * | 1996-04-09 | 1999-04-13 | International Business Machines Corporation | Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems |
| US5983266A (en) * | 1997-03-26 | 1999-11-09 | Unisys Corporation | Control method for message communication in network supporting software emulated modules and hardware implemented modules |
| US5999969A (en) * | 1997-03-26 | 1999-12-07 | Unisys Corporation | Interrupt handling system for message transfers in network having mixed hardware and software emulated modules |
| US5944788A (en) * | 1997-03-26 | 1999-08-31 | Unisys Corporation | Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules |
| US6098105A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupt method for message arrival notification |
| US6098104A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupts for message arrival notification, and related data structures |
| US6105071A (en) * | 1997-04-08 | 2000-08-15 | International Business Machines Corporation | Source and destination initiated interrupt system for message arrival notification |
| US5950170A (en) * | 1997-04-11 | 1999-09-07 | Vanguard International Semiconductor Corporation | Method to maximize capacity in IC fabrication |
| US6192418B1 (en) | 1997-06-25 | 2001-02-20 | Unisys Corp. | System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer |
| US6289391B1 (en) * | 1997-06-25 | 2001-09-11 | Unisys Corp. | System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer |
| US5978931A (en) * | 1997-07-16 | 1999-11-02 | International Business Machines Corporation | Variable domain redundancy replacement configuration for a memory device |
| SG79234A1 (en) * | 1997-07-16 | 2001-03-20 | Ibm | Variable domain redundancy replacement configuration for a memory device |
| US6519686B2 (en) * | 1998-01-05 | 2003-02-11 | Intel Corporation | Information streaming in a multi-process system using shared memory |
| US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
| US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
| US6154765A (en) * | 1998-03-18 | 2000-11-28 | Pasocs Llc | Distributed digital rule processor for single system image on a clustered network and method |
| US6389451B1 (en) | 1998-03-18 | 2002-05-14 | Pasocs, Llc | Distributed digital rule processor for single system image on a clustered network and method |
| US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
| US7895412B1 (en) | 1998-06-29 | 2011-02-22 | Cisco Tehnology, Inc. | Programmable arrayed processing engine architecture for a network switch |
| US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
| US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
| US7380101B2 (en) | 1998-06-29 | 2008-05-27 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
| US6629152B2 (en) * | 1998-06-29 | 2003-09-30 | International Business Machines Corporation | Message passing using shared memory of a computer |
| US6442669B2 (en) | 1998-06-29 | 2002-08-27 | Cisco Technology, Inc. | Architecture for a process complex of an arrayed pipelined processing engine |
| US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
| US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
| US6272621B1 (en) | 1998-06-29 | 2001-08-07 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
| US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
| US6412018B1 (en) | 1998-08-19 | 2002-06-25 | International Business Machines Corporation | System for handling asynchronous message packet in a multi-node threaded computing environment |
| US6415332B1 (en) | 1998-08-19 | 2002-07-02 | International Business Machines Corporation | Method for handling of asynchronous message packet in a multi-node threaded computing environment |
| US6385659B1 (en) | 1998-08-19 | 2002-05-07 | International Business Machines Corporation | Handling of asynchronous message packet in a multi-node threaded computing environment |
| US6829720B2 (en) | 1998-08-25 | 2004-12-07 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
| US6119244A (en) * | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
| US6496942B1 (en) | 1998-08-25 | 2002-12-17 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
| US6728839B1 (en) | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
| US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
| US6468150B1 (en) | 1998-11-30 | 2002-10-22 | Network Appliance, Inc. | Laminar flow duct cooling system |
| US6385747B1 (en) | 1998-12-14 | 2002-05-07 | Cisco Technology, Inc. | Testing of replicated components of electronic device |
| US6173386B1 (en) | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
| US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
| US7733789B1 (en) | 1999-03-05 | 2010-06-08 | Cisco Technology, Inc. | Remote monitoring of switch network |
| GB2363228B (en) * | 1999-03-18 | 2003-11-26 | Pasocs Llc | Distributed digital rule processor for single system image on a clustered network and method |
| WO2000055749A1 (fr) * | 1999-03-18 | 2000-09-21 | Pasocs, Llc | Processeur distribue de regles numeriques pour image a systeme unique sur un reseau groupe et son procede |
| GB2363228A (en) * | 1999-03-18 | 2001-12-12 | Pasocs Llc | Distributed digital rule processor for single system image on a clustered network and method |
| US20070124360A1 (en) * | 1999-05-28 | 2007-05-31 | Ittycheriah Abraham P | Systems and methods for processing audio using multiple speech technologies |
| US8494127B2 (en) * | 1999-05-28 | 2013-07-23 | International Business Machines Corporation | Systems and methods for processing audio using multiple speech technologies |
| US7185224B1 (en) | 1999-11-03 | 2007-02-27 | Cisco Technology, Inc. | Processor isolation technique for integrated multi-processor systems |
| US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
| US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
| US6662252B1 (en) | 1999-11-03 | 2003-12-09 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
| US7395332B2 (en) | 2000-03-28 | 2008-07-01 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
| US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
| US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
| US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
| US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
| US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
| US6691225B1 (en) | 2000-04-14 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Method and apparatus for deterministically booting a computer system having redundant components |
| US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
| US20020002631A1 (en) * | 2000-06-02 | 2002-01-03 | Inrange Technologies Corporation | Enhanced channel adapter |
| US6799317B1 (en) | 2000-06-27 | 2004-09-28 | International Business Machines Corporation | Interrupt mechanism for shared memory message passing |
| US20020069369A1 (en) * | 2000-07-05 | 2002-06-06 | Tremain Geoffrey Donald | Method and apparatus for providing computer services |
| US7448079B2 (en) * | 2000-07-05 | 2008-11-04 | Ernst & Young, Llp | Method and apparatus for providing computer services |
| US6948010B2 (en) | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
| US20020116555A1 (en) * | 2000-12-20 | 2002-08-22 | Jeffrey Somers | Method and apparatus for efficiently moving portions of a memory block |
| US20020166038A1 (en) * | 2001-02-20 | 2002-11-07 | Macleod John R. | Caching for I/O virtual address translation and validation using device drivers |
| US6886171B2 (en) | 2001-02-20 | 2005-04-26 | Stratus Technologies Bermuda Ltd. | Caching for I/O virtual address translation and validation using device drivers |
| US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
| US6874102B2 (en) | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
| US7065672B2 (en) | 2001-03-28 | 2006-06-20 | Stratus Technologies Bermuda Ltd. | Apparatus and methods for fault-tolerant computing using a switching fabric |
| US7694302B1 (en) | 2001-04-05 | 2010-04-06 | Network Appliance, Inc. | Symmetric multiprocessor synchronization using migrating scheduling domains |
| US7178137B1 (en) | 2001-04-05 | 2007-02-13 | Network Appliance, Inc. | Automatic verification of scheduling domain consistency |
| US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
| US6996750B2 (en) | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
| US20030110232A1 (en) * | 2001-12-11 | 2003-06-12 | International Business Machines Corporation | Distributing messages between local queues representative of a common shared queue |
| US7480697B2 (en) | 2002-05-28 | 2009-01-20 | International Business Machines Corporation | Method and apparatus using attached hardware subsystem to communicate between attached hosts |
| US20030236910A1 (en) * | 2002-05-28 | 2003-12-25 | International Business Machines Corporation | Method and apparatus using attached hardware subsystem to communicate between attached hosts |
| US7185034B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
| US7185033B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
| US7181482B2 (en) * | 2002-08-01 | 2007-02-20 | Oracle International Corporation | Buffered message queue architecture for database management systems |
| US7203706B2 (en) | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
| US20040024774A1 (en) * | 2002-08-01 | 2004-02-05 | Oracle International Corporation | Buffered message queue architecture for database management systems |
| US20040034640A1 (en) * | 2002-08-01 | 2004-02-19 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
| US8245207B1 (en) | 2003-07-31 | 2012-08-14 | Netapp, Inc. | Technique for dynamically restricting thread concurrency without rewriting thread code |
| US8365193B2 (en) | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
| US8171480B2 (en) | 2004-01-27 | 2012-05-01 | Network Appliance, Inc. | Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor |
| US20050172293A1 (en) * | 2004-01-27 | 2005-08-04 | Network Appliance, Inc. | Method and apparatus for allocating resources in a shared resource processor |
| US7792274B2 (en) | 2004-11-04 | 2010-09-07 | Oracle International Corporation | Techniques for performing multi-media call center functionality in a database management system |
| US20060093124A1 (en) * | 2004-11-04 | 2006-05-04 | Sonali Inamdar | Techniques for performing multi-media call center functionality in a database management system |
| US7496787B2 (en) | 2004-12-27 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
| US20060143528A1 (en) * | 2004-12-27 | 2006-06-29 | Stratus Technologies Bermuda Ltd | Systems and methods for checkpointing |
| US20100281491A1 (en) * | 2004-12-30 | 2010-11-04 | Kapil Surlaker | Publisher flow control and bounded guaranteed delivery for message queues |
| US8397244B2 (en) | 2004-12-30 | 2013-03-12 | Oracle International Corporation | Publisher flow control and bounded guaranteed delivery for message queues |
| US20060149787A1 (en) * | 2004-12-30 | 2006-07-06 | Kapil Surlaker | Publisher flow control and bounded guaranteed delivery for message queues |
| US7779418B2 (en) | 2004-12-30 | 2010-08-17 | Oracle International Corporation | Publisher flow control and bounded guaranteed delivery for message queues |
| US20060168080A1 (en) * | 2004-12-30 | 2006-07-27 | Kapil Surlaker | Repeatable message streams for message queues in distributed systems |
| US7818386B2 (en) | 2004-12-30 | 2010-10-19 | Oracle International Corporation | Repeatable message streams for message queues in distributed systems |
| US11210148B2 (en) | 2005-06-15 | 2021-12-28 | Xilinx, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities |
| US10445156B2 (en) | 2005-06-15 | 2019-10-15 | Solarflare Communications, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities |
| US10055264B2 (en) * | 2005-06-15 | 2018-08-21 | Solarflare Communications, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities |
| US20150201007A1 (en) * | 2005-06-15 | 2015-07-16 | Solarflare Communications, Inc. | Reception according to a data transfer protocol of data directed to any of a plurality of destination entities |
| US20070028144A1 (en) * | 2005-07-29 | 2007-02-01 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
| US20070038891A1 (en) * | 2005-08-12 | 2007-02-15 | Stratus Technologies Bermuda Ltd. | Hardware checkpointing system |
| US8196150B2 (en) | 2005-10-07 | 2012-06-05 | Oracle International Corporation | Event locality using queue services |
| US20070101341A1 (en) * | 2005-10-07 | 2007-05-03 | Oracle International Corporation | Event locality using queue services |
| US8347293B2 (en) | 2005-10-20 | 2013-01-01 | Network Appliance, Inc. | Mutual exclusion domains to perform file system processes on stripes |
| US20070094529A1 (en) * | 2005-10-20 | 2007-04-26 | Lango Jason A | Method and apparatus for increasing throughput in a storage server |
| EP1952247A4 (fr) * | 2005-10-25 | 2009-09-09 | Harris Corp | Dispositif de communications sans fil mobile a caracteristiques de securite et de gestion de donnees et procedes associes |
| US8443158B2 (en) | 2005-10-25 | 2013-05-14 | Harris Corporation | Mobile wireless communications device providing data management and security features and related methods |
| US20070094463A1 (en) * | 2005-10-25 | 2007-04-26 | Harris Corporation, Corporation Of The State Of Delaware | Mobile wireless communications device providing data management and security features and related methods |
| US20090119676A1 (en) * | 2006-09-27 | 2009-05-07 | Supalov Alexander V | Virtual heterogeneous channel for message passing |
| US8281060B2 (en) | 2006-09-27 | 2012-10-02 | Intel Corporation | Virtual heterogeneous channel for message passing |
| US7949815B2 (en) * | 2006-09-27 | 2011-05-24 | Intel Corporation | Virtual heterogeneous channel for message passing |
| US9027025B2 (en) | 2007-04-17 | 2015-05-05 | Oracle International Corporation | Real-time database exception monitoring tool using instance eviction data |
| US9128895B2 (en) | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
| US10191656B2 (en) | 2010-01-20 | 2019-01-29 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
| US10055128B2 (en) | 2010-01-20 | 2018-08-21 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
| US9071622B2 (en) | 2010-04-30 | 2015-06-30 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
| US8627331B1 (en) | 2010-04-30 | 2014-01-07 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
| US8458530B2 (en) | 2010-09-21 | 2013-06-04 | Oracle International Corporation | Continuous system health indicator for managing computer system alerts |
| US20130262783A1 (en) * | 2012-03-30 | 2013-10-03 | Fujitsu Limited | Information processing apparatus, arithmetic device, and information transferring method |
| US9003082B2 (en) * | 2012-03-30 | 2015-04-07 | Fujitsu Limited | Information processing apparatus, arithmetic device, and information transferring method |
| US9251002B2 (en) | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
| US9760442B2 (en) | 2013-12-30 | 2017-09-12 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
| US9652338B2 (en) | 2013-12-30 | 2017-05-16 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
| US9588844B2 (en) | 2013-12-30 | 2017-03-07 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods using data forwarding |
| US10922155B2 (en) * | 2014-11-12 | 2021-02-16 | Arm Ip Limited | Methods of communication between a remote resource and a data processing device |
| US20170329658A1 (en) * | 2014-11-12 | 2017-11-16 | Arm Ip Limited | Methods of communication between a remote resource and a data processing device |
| US11144293B2 (en) | 2016-02-05 | 2021-10-12 | Sas Institute Inc. | Automated message-based job flow resource management in container-supported many task computing |
| US11137990B2 (en) | 2016-02-05 | 2021-10-05 | Sas Institute Inc. | Automated message-based job flow resource coordination in container-supported many task computing |
| US11169788B2 (en) | 2016-02-05 | 2021-11-09 | Sas Institute Inc. | Per task routine distributed resolver |
| US11204809B2 (en) * | 2016-02-05 | 2021-12-21 | Sas Institute Inc. | Exchange of data objects between task routines via shared memory space |
| US10540217B2 (en) | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
| US10382380B1 (en) | 2016-11-17 | 2019-08-13 | Amazon Technologies, Inc. | Workload management service for first-in first-out queues for network-accessible queuing and messaging services |
| US12131204B1 (en) * | 2022-08-31 | 2024-10-29 | Zoox, Inc. | Latency mitigation for inter-process communication |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0444376A1 (fr) | 1991-09-04 |
| JP2587141B2 (ja) | 1997-03-05 |
| JPH04217059A (ja) | 1992-08-07 |
| DE69029084D1 (de) | 1996-12-12 |
| EP0444376B1 (fr) | 1996-11-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5357612A (en) | Mechanism for passing messages between several processors coupled through a shared intelligent memory | |
| Rashid et al. | Accent: A communication oriented network operating system kernel | |
| Buzzard et al. | An implementation of the Hamlyn sender-managed interface architecture | |
| US5452430A (en) | System and method for storing persistent and non-persistent queued data and for recovering the persistent data responsive to a system restart | |
| CA2091993C (fr) | Systeme informatique insensible aux defaillances | |
| US6401216B1 (en) | System of performing checkpoint/restart of a parallel program | |
| US5448698A (en) | Inter-processor communication system in which messages are stored at locations specified by the sender | |
| US6393583B1 (en) | Method of performing checkpoint/restart of a parallel program | |
| EP0592117A2 (fr) | Arrangement asynchrone de communications entre processus | |
| US6338147B1 (en) | Program products for performing checkpoint/restart of a parallel program | |
| US20040034807A1 (en) | Roving servers in a clustered telecommunication distributed computer system | |
| US6415332B1 (en) | Method for handling of asynchronous message packet in a multi-node threaded computing environment | |
| US6862595B1 (en) | Method and apparatus for implementing a shared message queue using a list structure | |
| KR20030011301A (ko) | 매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델 | |
| US7418703B2 (en) | Parallel processing system by OS for single processor | |
| EP0747813A2 (fr) | Système et méthode CICS avec des fonctions de file d'attente pour la mémoire temporaire dans un environnement de traitement parallèle à couplage lâche | |
| US6385659B1 (en) | Handling of asynchronous message packet in a multi-node threaded computing environment | |
| CN116700901A (zh) | 基于微内核的容器构建与运行系统及方法 | |
| US6393503B2 (en) | Efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system | |
| US6412018B1 (en) | System for handling asynchronous message packet in a multi-node threaded computing environment | |
| US6032267A (en) | Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system | |
| US20060167916A1 (en) | Non-intrusive method for logging external events related to an application process, and a system implementing said method | |
| US7533296B2 (en) | Method for optimizing the transmission of logging data in a multi-computer environment and a system implementing this method | |
| Becker | Transparent service reconfiguration after node failures | |
| Schröder-Preikschat | Peace—A distributed operating system for high-performance multicomputer systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Lapse for failure to pay maintenance fees | ||
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 19981018 |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |