Most people don't know the true definition of multitasking, and the difference between multitasking and backgrounding.
On a phone, you can't multitask with anything except music. On a computer, you can watch a movie, monitor an IM conversation you are having with a friend and type up a document for work/school.
On a phone? NO.
Apple is ONLY calling this multitasking because people are sheep and too stupid to realize that you CAN'T multitask on a mobile device, ESPECIALLY ON A CELL PHONE.
What we are actually doing is backgrounding, and when you get down to the heart of how the backgrounding works, it makes people's heads try to explode. They try to understand it, but those who aren't technically inclined blow up the whole definition out of proportion. Also, developers are the reasons why apps don't multitask, NOT Apple (although Apple shoulda' gotten on the ball with backgrounding sooner).
Pretty much, there are 7 APIs that are available to devs, if they want to keep running a service in the background. This is much more efficient, because if you can't see the application, what is the point of still having it run??? It should ONLY keep the SERVICE open that it needs.
As for the "multitasking", as long as the dev recompiles their app against the new 4.0 SDK (they don't have to change any code, merely open it in the new SDK and recompile it), the app will then "freeze" itself in the state it is in when the end user hits the Home button. Then, when the user goes back the app, it will "unfreeze" itself and to the end user, it will seem as if it was never closed.
As for the system handing this, if an app is opened that needs more memory than is available, it will look at the frozen apps, and will find the one that you used LAST (the "least recently used" algorithm) and will close that one, and thus, the CPU and memory that it needs to run the new app will be obtained.
However, the end user who wants to understand but doesn't, won't understand this. I don't like when I hear people complaining about this issue. ðŸ˜
Here is a link to the 7 backgrounding APIs.
http://www.pcmag.com/article2/0,2817,2362459,00.asp