Here are some common scheduling methods used in multiprocessors:
Smart scheduling: Smart scheduling is a process of scheduling used in multiprocessors. In this process, whenever a thread acquires a spin lock it sets a flag in the entire process to let other threads know that it has acquired a spin lock. When the lock is released by this thread then the flag is also cleared.
Affinity scheduling: Affinity scheduling is a process of scheduling used in multiprocessors. In this process, it is made sure that a thread which was run on, say CPU X must again run on the same CPU X. To achieve this, whenever a thread is created it is assigned to a particular CPU and whenever it is run it is run on the same CPU. For this purpose a two level scheduling algorithm is used.
Gang scheduling: Gang scheduling is a type of scheduling where related threads are put in a group. This group is known as a gang. Threads in a gang are run at the same time in different CPUs in such a way that they start and end at the same time.
Space sharing: Space sharing refers to scheduling of multiple threads at same time in a multiprocessor environment. Whenever the threads are created they are assigned to CPUs in such a way that each CPU must have same number of threads.