Operating system issues
Find out more
Modern operating systems are more complex than they've ever been (hence why your new computer doesn't run your word processor any faster than your old one!). Year on year operating systems are made more complex as more code and functionality is added which in turn makes them slower and more cumbersome which in turn affects millisecond timing accuracy.

Layers and layers of operating system software APIs make it more difficult for application software to interact directly with the actual hardware and obtain accurate timing. The Windows Presentation Foundation (WPF) built into the .NET framework is a classic example of this. In essence the WPF deals with everything that is drawn on screen. Even basic actions take much more processing time than you might imagine.

In a nutshell if you make use of development software such as Microsoft Visual Studio .NET 2010 the application software you write is at such a high level each time you actually do something the code has to be interpreted and drill drown through various layers before being converted into a common runtime language and something happens. Before the .NET framework it was possible to hit the hardware directly and achieve much more reliable and accurate timing. This is why older but slower computers and less complex operating systems are capable of more consistent and accurate timing despite the hardware being on the face of it an order of magnitude slower.

Remember commercial experiment generators will also have to deal with this level of complexity as might any bespoke software you write yourself.

.NET Framework version 3
.NET Framework version 4

Worryingly there is a trend to harmonise operating systems across a range of device and platforms. A classic example of this is Apples iOS on iPhones, iPads and Macs. In short you are always catering for the lowest common denominator and not optimising for each hardware platform. In much the same way Microsoft are extending their frameworks to cover desktop PC and tablets with more complex .NET runtimes.

Modern Apple platforms also suffer from this multilayered approach to development as the schematics below show. This is one reason why one operating system is necessarily better than another.

Cocoa in the architecture of Mac OS X
Cocoa in the architecture of iOS

To read more about these abstraction technologies consult:

Windows Presentation Foundation and .NET

Cocoa and Mac OS X/iOS