COMPUTER SYSTEM AND METHOD FOR OPERATING MULTIPLE OPERATING...

Electrical computers and digital processing systems: memory – Storage accessing and control – Shared memory area

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S173000, C711S209000

Reexamination Certificate

active

06314501

ABSTRACT:

COPYRIGHT AND TRADEMARK NOTICES
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the United States Patent & Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Unix is a registered trademark of The Open Group. SCO and Unixware are registered trademarks of The Santa Cruz Operation, Inc. Microsoft, Window, Window NT and/or other Microsoft products referenced herein are either trademarks or registered trademarks of Microsoft Corporation. Intel, Pentium, Pentium II Xeon, Merced and/or other Intel products referenced herein are either trademarks or registered trademarks of Intel Corporation.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to computer systems and, more particularly, to a computer system that operates multiple operating systems in different partitions on the computer system and that allows the different partitions to communicate with one another through shared memory.
2. Related Art
A computer system typically includes a processor, main memory, and I/O devices (e.g., printers, network interfaces, graphic display interfaces). The computer system uses an addressing scheme to designate the source or destination of an item of data. Memory management functions, including the accessing of data, as well as other management functions, are controlled via an operating system. There are a variety of operating systems on the market, each having their own unique characteristics and abilities. Conventional computer systems typically employ a single operating system.
As modem computer systems grow, and the demands of the user increases, the necessity of employing a plurality of operating systems increases. Unfortunately, a plurality of operating systems substantially increases the complexity of operating the computer system.
What is needed is a computer system and method for allowing multiple operating systems, including different operating systems, to operate in different partitions on the computer system, and for allowing the different partitions, including the operating systems and other clients running in the different partitions, to communicate with one another through a shared memory.
SUMMARY OF THE INVENTION
The present invention is directed to a computer system and methods for allowing multiple operating systems to operate in different partitions within a single computer architecture and for allowing the different partitions to communicate with one another through shared memory.
According to a first aspect of the present invention, the computer system comprises a plurality of processing modules and a main memory to which each processing module is connected such that processor-to-memory latency is the same for each processing module across all of the main memory. Groups of one or more processing modules are configured as separate partitions within the computer system, and each partition operates under the control of a separate operating system. Further according to this first aspect of the present invention, the main memory has defined therein at least one shared memory window to which at least two different partitions have shared access. Program code executing on different partitions enables those different partitions to communicate with each other through the shared memory window.
For each different partition configured within the computer system, the main memory may further have defined therein an exclusive memory window to which only that partition has access and in which the operating system of that partition executes. The separate operating systems on two different partitions may be different operating systems, or may be different instances of a same operating system.
In one embodiment, the program code that enables inter-partition communication (by managing the shared memory window resources) implements a process by which a sending partition generates an inter-processor interrupt on a receiving partition to signal the receiving partition that information is being transferred to it through the shared memory window. According to this embodiment, the shared memory window comprises a set of input queues associated with each partition, each input queue of the set associated with a given partition corresponding to another partition and storing entries representing communications from that other partition. In order for one partition (a sending partition) to communicate with another partition (a receiving partition), the program code on the sending partition (i) causes an entry to be created in the input queue of the receiving partition that corresponds to the sending partition; and then (ii) causes an inter-processor interrupt to be generated on the receiving partition to signal the receiving partition that the entry has been created in that input queue.
Assuming an embodiment in which each partition is assigned only a single interrupt vector for receipt of shared memory inter-processor interrupts from other partitions, when the inter-processor interrupt is detected on the receiving partition, the program code on the receiving partition (i) causes each of its input queues to be examined to determine which of the input queues contain entries representing communications from other partitions; and (ii) causes any such entries to be extracted from the input queues that contain them. Preferably, each input queue contains a count of the number of entries in the queue.
Alternatively, in an embodiment in which each partition assigns a separate interrupt vector for each other partition from which it may receive an inter-processor interrupt, and wherein the sending partition specifies the interrupt vector assigned to it when sending an inter-processor interrupt to the receiving partition, the receiving partition can use the specified interrupt vector to identify the input queue associated with the sending partition and process it directly, without having to cycle through all of its input queues (as is the case where each partition assigns only a single interrupt vector for shared memory inter-processor interrupts).
Further in accordance with this first embodiment, the shared memory window further comprises a plurality of pages of memory that can be allocated to the partitions, as needed, to facilitate communication of information between them. An input queue entry representing a communication between a sending partition and a receiving partition may comprise a handle to one or more allocated pages of the shared memory window. A sending partition can use one or more allocated pages to store data representing a message to be communicated to a receiving partition.
Still further according to this first embodiment, each input queue is capable of storing a pre-defined number of entries and contains an overflow flag that is caused to be set whenever the input queue is full. A sending partition causes the overflow flag of an input queue to be set if the creation of an entry in that input queue causes the input queue to become full On the receiving side, if a receiving partition encounters an input queue in which the overflow flag is set, it empties the queue and then resets the overflow flag. The receiving partition may then send a communication back to the sending partition to alert the sending partition that the input queue is no longer full. If an attempt is made to send a communication via an input queue that is full, the sending partition can return an error, or alternatively, each partition can maintain a location in its exclusive memory window for storing input queue entries that could not be placed in a designated input queue because the overflow flag of that input queue was set previously. The entries stored in the exclusive memory window location can remain there until the overflow flag of the designated input queue is reset by the receiving partition.
Yet further according to the preferred e

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

COMPUTER SYSTEM AND METHOD FOR OPERATING MULTIPLE OPERATING... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with COMPUTER SYSTEM AND METHOD FOR OPERATING MULTIPLE OPERATING..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and COMPUTER SYSTEM AND METHOD FOR OPERATING MULTIPLE OPERATING... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2587143

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.