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. Each instance
keeps track of the CPUs in the system and their respective operational
statuses relative to the instance, such as compatibility with the
instance, control by the instance, and availability to the instance for
SMP processing. Using separate bitvectors for the different categories, a
single bit in each bitvector may be used to represent the membership of a
given CPU in that particular set, and therefore in the category
represented by that set.