Multitasking On Mobiles: Cleverly Circumventing Limited-Resource Troubles
Those of us who’ve grown up with computers have long been spoiled by their multitasking capabilities, and younger generations don’t know anything else. Consider that Windows 1.0, released in late 1985, augmented DOS with (among other things) cooperative multitasking, whereas Windows 95 migrated to more robust pre-emptive multitasking. Apple counterparts predated Microsoft’s offerings; the Lisa, released in early 1983, included cooperative multitasking, while 1999’s (server…2001 for the client) Mac OS X delivered pre-emptive multitasking capabilities by virtue of its Unix heritage (strictly speaking, Mac OS 9.x had previously also offered pre-emptive multitasking as an optional API). And they were both pre-empted by Sinclair and Amiga, who respectively implemented pre-emptive multitasking within platforms unveiled in 1984 and 1985.
Key to multitasking’s ability to simultaneously juggle multiple running programs (and the processes and services that comprise them and that they leverage, along with clipboard-swapping information between them) are several key resource requirements:
- Sufficient processing and (in some cases) co-processing capabilities to churn through the incremental code load
- Sufficient system memory to hold the incremental code load, and
- Sufficient power supply resources to deliver adequate system run times in spite of the incremental code load
Real-time operating systems have the added complication of tasks needing to complete within a particular timeframe regardless of what else the system may be asked to coincidentally tackle. And to the second bullet point above, mass storage-based swap space, i.e. ‘virtual memory’, can find use as a means of substantially augmenting RAM-based physical memory, albeit at a notable performance penalty.
Attempt to shrink the computer model down to a cellular handset or other resource-strapped mobile device, however, and you’ll quickly run into substantial hardware limitations driven by form factor and bill-of-materials cost constraints. Mobile CPUs’ focus is on MIPS-per-Watt, after all, not absolute MIPS, for good reason considering that they’re fed by batteries not a wall outlet. System memory is allocated in MBytes, not GBytes, and virtual memory resources are similarly constrained (assuming they even exist at all).
These limitations are fundamentally why, to date, Apple has chosen to restrict multi-tasking to its own built-in applications for the iPhone and iPod touch series, both fueled by an ARM-tailored variant of Mac OS X. They’re why owners of app-unrestricted Microsoft Windows Mobile and RIM BlackBerry systems sometimes struggle with sluggish performance, in spite of the O/S developers’ attempts to intelligently manage resources ‘behind the scenes’. And it’s why Palm’s WebOS and Google’s Android employ elaborate approaches to (attempt, at least, to) address the issue, involving subdividing applications into multiple services, some of which may be suspended or flat-out killed while others (VoIP, audio streaming, network access, etc.) remain running in the background.
Apple’s approach with the upcoming v4 operating system upgrade is conceptually similar to that of Android (ironically so, given the growing animosity between the former partners), albeit with a few tweaks. Instead of providing full access to network and GPS resources for all apps, for example, the O/S will provide most apps with only push-notification ‘hooks’, and otherwise battery-draining social networking programs will only receive rough location-change information in the form of cell tower transition pings.
And here’s the truly ironic bit. At Microsoft’s mid-March MIX conference presentations, the company admitted that Windows Mobile 7 (initially unveiled one month earlier at the Mobile World Conference) would, as previously forecasted, step back from the O/S’s previous no-holds-barred (i.e. O/S-managed) stance and take an Apple iPhone v3-reminiscent approach of initially restricting multi-tasking to Microsoft-controlled programs. Earlier that very same week, rumors had begun circulating that Apple would add limited third-party multitasking to its upcoming v4 O/S. On April 5, invitations to Apple’s press event went out. And on April 8, Apple’s planned enhancements were made public, currently in beta form and due for ‘gold’ release in June (iPhone and iPod touch) and this fall (iPad). Meanwhile, all Microsoft can muster is a feeble ‘later’ when asked when managed multi-tasking will come (back) to Windows Mobile. It’s gotta drive the folks in Redmond, WA nuts…