iPhone OS4 Multitasking: Trade offs and Compromises

Tomorrow Apple will unveil the latest iPhone OS, version 4. The single biggest feature that may be announced tomorrow could be 3rd party application multitasking, something Android and the Palm WebOS have had for sometime now. Let's examine how Apple has gotten away without offering this so far.

iphoneos4-100405.jpg
Life Without Multitasking:
As we all know, the iPhone to date has never allowed developers to distribute apps in the App Store that have a background process. This means each time a user closes a third party app, that app's state is saved and the process is killed. And by killed I mean the memory and cpu resources that app required to run are released back to the iPhones OS and are ready to be reallocated to the next user request.  That user request could be to open another app or check mail or whatever, but at the end of the day, all apps are loaded and run one at a time.

Running the iPhone OS like this ensures that when an app is launched, it has the most resources available to it since it has no competitors for memory or CPU cycles at runtime. In such a configuration, each iPhone app gets the processors full attention (well, almost full).  Running apps in this linear fashion was a critical decision made by Apple early on in the design process to ensure that the User Interface and the phones battery life were within design limits with regards to responsiveness and time between required recharges.

One Is Enough For Now:
With the 1st and 2nd generation iPhones (2G and 3G) the processors used were low powered and Apple saw it fit to dictate that allowing too many simultaneous apps would easily eat up precious system resources and bog the system and user experience down. The introduction of the iPhone 3Gs was no different, Apple stayed the course with "no multitasking" allowed, however, with the introduction of the 3Gs' much more powerful processor, the reason for not allow multitasking was starting to diminish. The 3Gs uses a processor (ARM Cortex-A8 running at ~600MHz) that is almost 4 times faster than the previous 3G model. That is more than enough kick to handle the additional loads multitasking places on the CPU, but while the 3Gs had a new punchy processor, Apple did not substantially increase the battery capacity to match the new processors higher power profile and it is insignificantly larger at 1200mAh, up only 50mAh from the previous model.

No Free Lunch:
The result for the 3Gs was a faster processor, but not a battery that could allow that processor to run at load for extended amounts of time without significantly increased battery consumption. And what with people already complaining about not being able to go a full day on a single charge as is, Apple could not allow anything that would increase power consumption. And running multitasking background processes means the OS is carrying a load more often than a non-multitasking OS as third party apps constantly update themselves and preform their appointed tasks.

Roll Your Own:
Enter Apples new, custom designed, in-house A4 processor, which was just released this past weekend in the new and impressively zippy iPad. The new A4 chip is both high powered (1GHz) and power efficient. And as the exact specifications of the A4 finally become public (a SoC around a 45nm CortexA8 w/ 64bit DRAM) it appears Apple has achieved the right blend of horsepower and fuel economy to finally take the lid off and let third party apps Multitask with the A4.

Not Backwards Compatible:
Rumors are all around about the inclusion of multitasking in the upcoming iPhone OS 4, but if it does finally happen, i don't think it will be available on anything but the new A4 hardware, which means none of the existing iPhones will support multitasking and only new, yet to be announced (4G?) iPhones and iPads with the A4 or similarly efficient processor will be able to unlock the multitasking features. 

UPDATE 4/8/2010: Job announced at the iPhone OS4 event that the 3Gs and the iPod Touch (3rd Gen) will both get the new multitasking features after all, however the the original iPhone and iPhone 3G "technically can't handle it". It should be noted that although the new iPad, iPhone 3Gs and the iPod Touch share the same processor design (ARM CortexA8), the new version in the iPad (A4) is a significant advancement in efficiency and speed and the only thing between the older processor and the A4 is that they both are based on the CortexA8 reference design. 

Design Matters:
Lastly, comes what apple does best, the user interface. The entire iPhone OS is designed arounds using apps in a serial fashion. The closest you can get to seeing how Apple might handle multitasking is when you are on a phone call and then switch to another app, the iPhone always shows you a green notification bar across the top to remind you and give you a quick way to return to the call in progress.  Now I am not sure this would work for multiple apps running simultaneously, but if anyone can nail an interface, it's Apple.

Recent Entries