|
Symmetric multiprocessing (SMP) enables multiple processors to execute the same kernel-level code concurrently, sharing a single copy of the operating system. Therefore, SMP introduces more complex scheduling. The same single processor scheduling algorithms can be used on SMP machines; however, they do not yield optimal results. For example, all tasks may be scheduled to execute on one processor, leaving other processors idle. This situation can be avoided by implementing a load-balancing policy, which ensures that tasks are spread out as evenly as possible among all the processors. The concepts of fair and best make the situation more complicated. What is fair and best depends on the cost involved in moving a task from processor to processor. Processors today have some amount of onboard cache that can reduce the need for frequent memory accesses. Optimizations must try to enforce fairness without sacrificing the capability to utilize a warm cache (that is, a cache already filled with a working set of the current task). If the cache needs to be flushed for each task as it takes its timeslice, system time will be dominated by measurable delays due to memory fetches. |
|