- One approach to CPU scheduling in a multiprocessor system has all scheduling decisions, I/O processing, and other system activities handled by a single processor - the master server.
- The other processors execute only user code.
- This asymmetric multiprocessing is simple because only one processor accesses the system data structures, reducing the need for data sharing.
- A second approach uses symmetric multiprocessing (SMP), where each processor is self-scheduling.
- All processes may be in a common ready queue, or each processor may have its own private queue of ready processes.
- Regardless, scheduling proceeds by having the scheduler for each processor examine the ready queue and select a process to execute.
- if we have multiple processors trying to access and update a common data structure, the scheduler must be programmed carefully: We must ensure that two processors do not choose the same process and that processes are not lost from the queue.
- Virtually all modern OSs support SMP.