Windows 8 Designed To Improve App-level Power Efficiency
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
- Printing
- 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)