added load balancing to lec 18 notes
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Wed, 8 Jul 2009 14:11:17 +0000 (10:11 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Wed, 8 Jul 2009 14:11:17 +0000 (10:11 -0400)
lec18-0707.tex

index bd7ab54..82f0d42 100644 (file)
@@ -23,16 +23,24 @@ disadvantage is that the queue is a global structure, so there is the overhead
 associated with synchronizing concurrent access to it. Another disadvantage is
 that processes/thread lose processor affinity. All of their associated context,
 stored in the cache, will be lost if they are selected to run on another
-processor.
+processor. The advantage of this approach is that whenever there are processes
+in the ready queue, and idle processor will be able to take on some work. This
+means that the system load gets balanced evenly across all processors. 
 
 The other extreme strategy is to have a ready queue for each processor in the
 system. This gives each process/thread good affinity. However, if the load on
 the system gets too high, processor affinity can still be lost. Processes will
 spend too much time waiting in the queue, and it's context will get flushed or
-otherwise overwriten from the processor's caches.
+otherwise overwriten from the processor's caches. The disadvantage of this
+approach is that the load on the processors can become unbalanced. If too many
+processes get placed in a single processor or a small group of processors
+ready queues, then the remaining processors will sit idle if their own queues
+are empty -- even if there may be lots of work to do in another processor's
+queue.
 
 Most modern schedulers try to strike a balance between these two extremes. The
-keywords to think about are \textbf{affinity} and \textbf{something else}...
+keywords to think about are \textbf{processor affinity} and
+\textbf{load balancing}.
 
 \subsection*{I/O and Device Drivers}
 Devices connect to the CPU through a bus. Each device will have a controller