Method and apparatus for dynamically sharing memory in a multiprocessor system
First Claim
1. A computer system having a plurality of system resources including processors, main memory, and I/O circuitry and a plurality of operating system instances, the computer system comprising:
- an interconnection mechanism for electrically interconnecting the processors, the main memory, and the I/O circuitry so that each processor has electrical access to all of the main memory and at least some of the I/O circuitry;
a software mechanism for dividing the system resources into a plurality of partitions executing the plurality of operating system instances;
at least two of the plurality of partitions forming a community sharing a region of the main memory as shared memory, wherein a segment of the shared memory forms a shared memory database shared by the community; and
wherein the shared memory database indicates whether an operating system instance associated with a partition within the community is active.
3 Assignments
0 Petitions
Accused Products
Abstract
Multiple instances of operating systems execute cooperatively in a single multiprocessor computer wherein all processors and resources are electrically connected together. The single physical machine with multiple physical processors and resources is subdivided by software into multiple partitions, each with the ability to run a distinct copy, or instance, of an operating system. At different times, different operating system instances may be loaded on a given partition. Resources, such as CPUs and memory, can be dynamically assigned to different partitions and used by instances of operating systems running within the machine by modifying the configuration. The partitions themselves can also be changed without rebooting the system by modifying the configuration tree. A grouping of partitions, a community, shares memory. Memory may be private to a particular partition or may be shared by partitions within a community. When a community is formed the creating instance reads a configuration tree and builds management structures for the shared memory owned by the community. A single system may have one or more communities, each with their own representation within the configuration tree.
-
Citations
19 Claims
-
1. A computer system having a plurality of system resources including processors, main memory, and I/O circuitry and a plurality of operating system instances, the computer system comprising:
-
an interconnection mechanism for electrically interconnecting the processors, the main memory, and the I/O circuitry so that each processor has electrical access to all of the main memory and at least some of the I/O circuitry;
a software mechanism for dividing the system resources into a plurality of partitions executing the plurality of operating system instances;
at least two of the plurality of partitions forming a community sharing a region of the main memory as shared memory, wherein a segment of the shared memory forms a shared memory database shared by the community; and
wherein the shared memory database indicates whether an operating system instance associated with a partition within the community is active. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for constructing a computer system having a plurality of system resources including processors, main memory, and I/O circuitry and a plurality of operating system instances, the method comprising the steps of:
-
(a) electrically interconnecting the processors, the main memory, and the I/O circuitry so that each processor has electrical access to all of the main memory and at least some of the I/O circuitry;
(b) dividing the system resources into a plurality of partitions executing the plurality of operating system instances;
(c) forming a community of partitions by sharing a region of the main memory as shared memory among at least two of the plurality of partitions, (d) forming a shared memory database for the community within the shared memory; and
(e) including within the shared memory database an indication of whether an operating system instance associated with the community is active. - View Dependent Claims (10, 11, 12, 13, 14, 15)
(b1) assigning at least some of the main memory to each of the plurality of partitions.
-
-
11. A method according to claim 9 further comprising the step of each operating system instance mapping to the shared memory database as it joins the community.
-
12. A method according to claim 9 further comprising the step of:
(f) each operating system instance examining the shared memory database to determine whether other operating system instances are active and joining the community if the other operating system instances are active.
-
13. A method according to claim 12 wherein step (f) comprises the step of:
(f1) creating the community if no other operating system instance is active.
-
14. A method according to claim 13 wherein step (f) comprises the step of:
(f2) reconfiguring the shared memory database.
-
15. A method according to claim 12 wherein step (f) comprises the step of:
(f3) locking the shared memory database to block access to the shared memory database by another operating system instance as the operating system instance examines the shared memory database.
-
16. A computer program product for constructing a computer system having a plurality of system resources including processors, main memory, and I/O circuitry and hardware for electrically interconnecting the processors, memory and I/O circuitry so that each processor has electrical access to all of the memory and at least some of the I/O circuitry, the computer program product comprising a computer usable medium having computer readable program code thereon including:
-
(a) program code for dividing the system resources into a plurality of partitions configured to execute a plurality of operating system instances;
(b) program code for forming a community of partitions, which shares a region of the main memory as shared memory;
(c) program code for forming a shared memory database for the shared memory of the community; and
(d) program code for accessing said shared memory database to provide an indication of whether an operating system instance associated with a partition within the community is active. - View Dependent Claims (17, 18, 19)
-
Specification