Scheduling and Responsiveness

In a single processor system (without Hyper Threading), the OS can only send one instruction thread to the CPU for execution at a time.  But, you can run two applications at the same time and they can both be using up CPU time.  In order to understand how this is possible, you have to understand a bit about how scheduling works.

As its name implies, the OS' scheduler schedules tasks.  It takes the unlimited number of tasks that are requested of the OS, and schedules them to get done in the quickest way possible (in theory) on limited hardware resources. 

When running a single application, the job of the scheduler is simple - the single active application gets all of the CPU's time for as long as it needs it.  But what happens when you switch away from that active application and try to click on the Start Menu?  Your usage experience would be pretty poor if you had to wait until your active application was done with its tasks before the scheduler would take the time to handle your Start Menu request.  Imagine that your active application was 3ds max and you were rendering a scene that was going to take hours to complete. Would you be willing to wait hours for your Start Menu to appear?

Modern day OSes understand that this linear approach to scheduling isn't very practical, so they support pre-emptive multitasking, meaning that one task can pre-empt another before it is finished executing, and steal CPU time so that it may get some work done as well.  In the previous example, the Start Menu request would pre-empt the 3D rendering process and your menu would pop up and the 3D rendering would resume immediately following that.  Given that microprocessors these days are so fast, this rotation through tasks sent to the CPU occurs seamlessly to the end user, or at least it does most of the time. 

There are times when the scheduler's work is not as transparent as it should be.  In some cases, especially in Windows, processes will not always be able to pre-empt one another.  If you're running two time-consuming, CPU intensive tasks, you may not notice, but if you're running one and trying to open a file or just click on a menu at the same time, then the hiccup is far more noticeable.  The end result is usually a significantly delayed reaction to your input, such as a menu taking multiple seconds to appear instead of being an instantaneous response to your clicking.  Anyone who runs more than one application at a time has undoubtedly encountered this type of a situation. Luckily, there are solutions.

Intel's Hyper Threading was one way around the problem. By fooling the scheduler into thinking that it can dispatch two threads simultaneously, situations like the one above were usually avoided assuming that the CPU had the appropriate resources free.  Dual core is another solution to the problem, a far more robust one, since you literally have twice the processor resources.

The result of using a HT enabled or dual core system is better responsiveness when multitasking, but how do you quantify that?  Unfortunately, it is extremely difficult to quantify response time in these situations.  Even if we could easily quantify the response time improvements, is a snappier system when multitasking worth more than another 15% more performance in single threaded applications?  How about 25%?  It's a very different way of looking at the impact of a CPU to overall system performance, but it is an issue that we will have to tackle a lot more moving forward. 

The Intangible Dual Core Characterizing Dual Core Performance
Comments Locked

141 Comments

View All Comments

  • michaelpatrick33 - Monday, April 4, 2005 - link

    AMD's dualcore will use less power and produce less heat apparently and last I checked an FX-51 (2200) out performs the Intel 3200 in a single core configuration so it will be interesting what a dualcore AMD at 2200 or 2400 will do compared to the Pentium 4 3200 dualcore. AMD is going after the busines market where the money and the desire for dual core will be greatest. Why isn't Intel going for that market? Interesting question.
  • CrazyCurl - Monday, April 4, 2005 - link

    good review! cant wait to see more info. I am particularly interested in heat dissapation as well and would be nice to see the new unreal engine that supports multithreading benchmarks but that would be be a ways off id assume.

    Is the 955X gonna support pressler? is that why it has 1066 fsb and ddr-667?
  • dragonflycms - Monday, April 4, 2005 - link

    How about a web developer test I constantly run these programs

    Dragonflycms 9.1.2
    Apache 1.3.9
    MySql 4.1
    PHP 4.0
    Photoshop 7.0
    Flash MX 2004
    Fireworks MX 2004
    Dreamweaver MX 2004
    Firefox
    Hydra IRC
    Messenger
    Yahoo Messenger

    The web server and mysql drastically effect the runing of the multimedia applications. This would be a great multitask test.

  • cHodAXUK - Monday, April 4, 2005 - link

    #34 You are absolutly right there Anand, to this day I have still not had a single CPU system as responsive as my old dual O/C Celeron 550 machine. I ran it along side a P3/800 for a long time and always much prefered the Celeron box for general day to day tasks, hell my AMD 3500 feels damn fast most of the time but when I try multitask a bit too much it just takes forever to even get menus to pop down. Dual core is definately the way to go for the future, when the apps/games start to catch up with the technology everyone will wonder how they ever did without a multi core/cpu system.
  • stephenbrooks - Monday, April 4, 2005 - link

    If it's any help to y'all asking about thermals, [H]ard|OCP says:

    "Our Intel 840 will have an operating voltage between 1.2V and 1.4V and have a Thermal Power Design of 130W"
  • knitecrow - Monday, April 4, 2005 - link

    thanks Anand... it is the power consumption and power dissipation profiles that I really want to see.


  • Anand Lal Shimpi - Monday, April 4, 2005 - link

    oh and power consumption is coming... :)
  • Anand Lal Shimpi - Monday, April 4, 2005 - link

    Hans Maulwurf

    These usage scenarios were described by AnandTech readers in my recent request for benchmarks, they weren't anything prescribed by any hardware manufacturers.

    Ask anyone who has used a dual processor system, things are just smoother. The reason we've never recommended dual processors systems in the past is mostly because of price. In less than 3 months you should be able to, in theory, purchase a dual core processor for as little as $240. Not since the days of the dual Celeron 300A systems has dual processing been that affordable.

    Take care,
    Anand
  • Slaimus - Monday, April 4, 2005 - link

    The best thing about dual core is that you do not need HT aware OS's anymore. It sucks when you want to run Win2000 with HT and getting slower speeds.
  • Shlong - Monday, April 4, 2005 - link

    Instead of trying to take screenshots, maybe you could've used one of those desktop video capture programs to try to get a better visual representation of what you were trying to explain.

Log in

Don't have an account? Sign up now