5.4 Multiple-processor scheduling


The multiprocessor systems considered in this section is the tightly coupled multiprocessors where there is a set of processors that share a common main memory and are under the integrated control of an operating system. Multiprocessor systems can be classified according to the synchronization granularity or frequency of synchronization, between processes in a system as follows:
Independent parallelism: There is no explicit synchronization among processes. Each represents an
independent application or job.
Coarse and very coarse-grained parallelism: There is synchronization among processes at a very gross
level.
Medium-grained parallelism: In these systems, a single process uses a collection of threads. A high
degree of coordination and interaction among the threads of an application is needed.
Fine-grained parallelism: It represents a much more complex use of parallelism than is found in the use
of threads.

Scheduling on a multiprocessor involves three interrelated issues:
The assignment of processes to processors:
The use of multiprogramming on individual processors
The actual dispatching of a process

5.4 Multiple-processor scheduling


Process scheduling
In most multiprocessor systems, each process is assigned to one of different priority queues. Each available processor chooses a process from these queues. With two processors, a single process with long service time is much less disruptive in the FCFS case; other processes can use the other processor.

Thread scheduling
The full power of threads becomes evident in a multiprocessor system because threads can be used to exploit true parallelism. Dramatic gains in performance are achieved because various threads of an application are simultaneously run on separate processors.