Turning a CPU cluster into a large number of virtual CPUs.
An OS makes running a program easy, using virtualization . Some problems solved are: running many programs, sharing memory, interacting with devices.