For most of the 27 years since the first portable computer was announced, computer power use has been treated as a function of the underlying hardware. Even today, OS-level power optimizations are discussed in terms of whether or not the operating system properly supports the low-power operating modes of the CPU. The idea of optimizing the operating system to ensure minimum power consumption isn't something that Microsoft devoted much attention to, at least not until now.
Over at the Building Windows 8 blog, team members Sharif Farag and Ben Srour have posted a discussion on how Windows 8
differs from previous versions in terms of minimizing power consumption. The new data builds on previously disclosed information, such as the fact that Windows 8's Live Tile update system is designed to minimize wireless bandwidth consumption and radio time. The following quote summarizes W8's different focus nicely: " In a world where 75% or more of the PCs sold are battery powered, programmers are, by definition, being asked to rethink how to get work done again."
Part of what's new in Windows 8 is the introduction of background tasks. The company's thinking is that foreground tasks (up to two onscreen apps) should receive nearly all of the available processing power. Apps that aren't currently running in the foreground are suspended. This is different from the current model; Windows 7 and previous operating systems allow a minimized task to consume just as much CPU time as a foreground application.
Microsoft states that by shifting an app into the background "the Windows scheduler (the component that schedules CPU access for processes and threads) does not include it in the CPU scheduling. Since the operating system is not scheduling the app, the app is not using the CPU, and it is possible for the CPU to drop into lower power states. Getting the CPU into low power states can be critical to achieving better battery life."
This is where the de-coupled update service comes into its own. Because apps request data through a single API, Windows 8 can grab updates for a real-time monitoring program like a weather app without needing to initialize the application first. Microsoft claims that this approach obviates the need to differentiate between "running" and not-running programs. Like iOS and Android, Windows 8 will unload programs when it runs low on memory. The OS has been designed to save app states to HDD before closing, however, meaning that if an application is forced out of memory your work / previous position will still be available when you launch it again.
The Future of Multitasking:
Obviously there are certain tasks that users will always want to handle in the background, and Windows 8 is designed to accomodate them. Metro apps are capable of performing the following tasks even when they aren't maximized:
- Playing music
- Downloading a file from or uploading it to a website
- Keeping live tiles alive with fresh content
- Receiving a VoIP call
- Receiving an instant message
- Receiving an email
- Sharing content (like uploading photos to Facebook)
- Synchronizing content with a tethered device (like syncing photos)
Finally, it should be noted that these improvements apply to Metro and apps built using the WinRT framework. Conventional desktop software and the apps associated with it will continue to operate just as they always have. Obviously there are users who need to be able to minimize multiple workflows without preventing them from simultaneously executing, and nothing about Windows 8 is going to disrupt that.