Penguin
Diff: SymmetricMultiProcessing
EditPageHistoryDiffInfoLikePages

Differences between version 4 and previous revision of SymmetricMultiProcessing.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 4 Last edited on Thursday, April 15, 2004 10:38:38 pm by StuartYeates Revert
Older page: version 1 Last edited on Tuesday, February 25, 2003 10:20:49 am by JohnMcPherson Revert
@@ -1,5 +1,9 @@
-Having multiple identical processors in a machine able to run multiple pieces of code simultaniously
+A system with multiple identical (or at least similar) [CPU]s having equal access to memory and to the [IO] subsytem(s). Contrast [NUMA] and AsymmetricMultiProcessing
  
-Since they are identical and none is treated specially, they are considered "Symmetric ". If for instance one processor was 'reserved' for being the one that dealt out jobs to other processes , it would be asymmetric
+It is an accepted rule of thumb that due to the InterProcessCommunication "friction " required to synchronize tasks across [CPU]s, each additional [CPU] contributes about 1/6 less performance than the previous one. As a result , fitting more than four [CPU]s in a machine tends to cost heaps of money with surprisingly little to show for it. 
  
-Multiprocessing because multiple pieces of code are executed simultaniously
+On the OperatingSystem level, there is a wide span for the degree of symmetry expressed. On a fully symmetric system, any [CPU] may run any userland process, any kernel process, and any interrupt handler. This is rare in practice due to limitations in various platforms -- most of the time, the interrupt handler can only be run by the first [CPU]. In simpler [OperatingSystem]s, this is also the only [CPU] that may kernel tasks. In yet simpler system designs, even user processes are assigned to a fixed [CPU] and cannot move among [CPU]s.  
+  
+In practice, a less symmetric system OperatingSystem design may not be a drawback. It is desirable to tie processes to a certain [CPU] as long the system load is evenly distributed among [CPU]s, because this maximizes the efficiency of [CPU] caches. Even in a completely symmetric system, an intelligently written scheduler will take this into account and try not to shuffle tasks around needlessly.  
+  
+Few normal applications explicitly exploit SymmetricMultiProcessing, [Java] programs being the exception here, with their innate multithreadedness which means things like the [GUI] and GarbageCollection run on sepreate CPUs from the application logic