On multiprocessor, the scheduler has to decide which process to run and which central processing unit to run.
On multiprocessor, the simplest scheduling algorithm for dealing with unrelated processes is to have a single system-wide data structure for ready processes possibly just a list, but more likely a set of lists for the processes at different priorities.
Multiprocessor scheduling can be used when processes are related to one another.
Scheduling two or more than two threads at the same time across multiple central processing units is called as space sharing. The big advantage of space sharing is the elimination of multiprogramming which eliminates the context switching overhead.
Gang scheduling has the following three parts: