View Single Post
  #2 (permalink)  
Old 16th February, 2005, 04:34 PM
Gizmo's Avatar
Gizmo Gizmo is offline
Chief BBS Administrator
Join Date: May 2003
Location: Webb City, Mo
Posts: 16,178
Send a message via ICQ to Gizmo Send a message via AIM to Gizmo Send a message via MSN to Gizmo Send a message via Yahoo to Gizmo Send a message via Skype™ to Gizmo

Basically, Windows load balances across the two CPUs. If one CPU is busy and there is a task that needs to run, Windows will run it on the other CPU. If both CPUs are busy, Windows will try to schedule the task to run on the CPU that task last ran on, in order to take advantage of any caching that the CPU may have done.

It is possible to force a process to run on a particular CPU by setting the process 'affinity'. Normally, this has to be done from within the process, although you can also do it manually from within task manager. This is useful for situations where you are running, say, a database and you want to prevent the database engine from hogging all the CPUs in the system; you set the process affinity for the database engine to a particular processor, and then the database engine will only be able to run on that CPU.

When using dual CPU systems, the general user experience will be much 'smother' than one would expect. However, there will still be times when you will notice the performance slowdown. This will typically come in single-threaded apps. For example, I have a dual PIII-700, and it generally feels pretty snappy, but when I do something like encode a DVD, I can definitely tell that it is running on a PIII-700 because the encoder is single-threaded and so is only able to utilize one CPU. The cool thing is that because I have a dual CPU system, even when I'm encoding a DVD the system doesn't slow down as much as I would expect.
Reply With Quote